1 /* Generated by Cython 0.29.21 */
2 
3 #define PY_SSIZE_T_CLEAN
4 #include "Python.h"
5 #ifndef Py_PYTHON_H
6     #error Python headers needed to compile C extensions, please install development version of Python.
7 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
8     #error Cython requires Python 2.6+ or Python 3.3+.
9 #else
10 #define CYTHON_ABI "0_29_21"
11 #define CYTHON_HEX_VERSION 0x001D15F0
12 #define CYTHON_FUTURE_DIVISION 0
13 #include <stddef.h>
14 #ifndef offsetof
15   #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
16 #endif
17 #if !defined(WIN32) && !defined(MS_WINDOWS)
18   #ifndef __stdcall
19     #define __stdcall
20   #endif
21   #ifndef __cdecl
22     #define __cdecl
23   #endif
24   #ifndef __fastcall
25     #define __fastcall
26   #endif
27 #endif
28 #ifndef DL_IMPORT
29   #define DL_IMPORT(t) t
30 #endif
31 #ifndef DL_EXPORT
32   #define DL_EXPORT(t) t
33 #endif
34 #define __PYX_COMMA ,
35 #ifndef HAVE_LONG_LONG
36   #if PY_VERSION_HEX >= 0x02070000
37     #define HAVE_LONG_LONG
38   #endif
39 #endif
40 #ifndef PY_LONG_LONG
41   #define PY_LONG_LONG LONG_LONG
42 #endif
43 #ifndef Py_HUGE_VAL
44   #define Py_HUGE_VAL HUGE_VAL
45 #endif
46 #ifdef PYPY_VERSION
47   #define CYTHON_COMPILING_IN_PYPY 1
48   #define CYTHON_COMPILING_IN_PYSTON 0
49   #define CYTHON_COMPILING_IN_CPYTHON 0
50   #undef CYTHON_USE_TYPE_SLOTS
51   #define CYTHON_USE_TYPE_SLOTS 0
52   #undef CYTHON_USE_PYTYPE_LOOKUP
53   #define CYTHON_USE_PYTYPE_LOOKUP 0
54   #if PY_VERSION_HEX < 0x03050000
55     #undef CYTHON_USE_ASYNC_SLOTS
56     #define CYTHON_USE_ASYNC_SLOTS 0
57   #elif !defined(CYTHON_USE_ASYNC_SLOTS)
58     #define CYTHON_USE_ASYNC_SLOTS 1
59   #endif
60   #undef CYTHON_USE_PYLIST_INTERNALS
61   #define CYTHON_USE_PYLIST_INTERNALS 0
62   #undef CYTHON_USE_UNICODE_INTERNALS
63   #define CYTHON_USE_UNICODE_INTERNALS 0
64   #undef CYTHON_USE_UNICODE_WRITER
65   #define CYTHON_USE_UNICODE_WRITER 0
66   #undef CYTHON_USE_PYLONG_INTERNALS
67   #define CYTHON_USE_PYLONG_INTERNALS 0
68   #undef CYTHON_AVOID_BORROWED_REFS
69   #define CYTHON_AVOID_BORROWED_REFS 1
70   #undef CYTHON_ASSUME_SAFE_MACROS
71   #define CYTHON_ASSUME_SAFE_MACROS 0
72   #undef CYTHON_UNPACK_METHODS
73   #define CYTHON_UNPACK_METHODS 0
74   #undef CYTHON_FAST_THREAD_STATE
75   #define CYTHON_FAST_THREAD_STATE 0
76   #undef CYTHON_FAST_PYCALL
77   #define CYTHON_FAST_PYCALL 0
78   #undef CYTHON_PEP489_MULTI_PHASE_INIT
79   #define CYTHON_PEP489_MULTI_PHASE_INIT 0
80   #undef CYTHON_USE_TP_FINALIZE
81   #define CYTHON_USE_TP_FINALIZE 0
82   #undef CYTHON_USE_DICT_VERSIONS
83   #define CYTHON_USE_DICT_VERSIONS 0
84   #undef CYTHON_USE_EXC_INFO_STACK
85   #define CYTHON_USE_EXC_INFO_STACK 0
86 #elif defined(PYSTON_VERSION)
87   #define CYTHON_COMPILING_IN_PYPY 0
88   #define CYTHON_COMPILING_IN_PYSTON 1
89   #define CYTHON_COMPILING_IN_CPYTHON 0
90   #ifndef CYTHON_USE_TYPE_SLOTS
91     #define CYTHON_USE_TYPE_SLOTS 1
92   #endif
93   #undef CYTHON_USE_PYTYPE_LOOKUP
94   #define CYTHON_USE_PYTYPE_LOOKUP 0
95   #undef CYTHON_USE_ASYNC_SLOTS
96   #define CYTHON_USE_ASYNC_SLOTS 0
97   #undef CYTHON_USE_PYLIST_INTERNALS
98   #define CYTHON_USE_PYLIST_INTERNALS 0
99   #ifndef CYTHON_USE_UNICODE_INTERNALS
100     #define CYTHON_USE_UNICODE_INTERNALS 1
101   #endif
102   #undef CYTHON_USE_UNICODE_WRITER
103   #define CYTHON_USE_UNICODE_WRITER 0
104   #undef CYTHON_USE_PYLONG_INTERNALS
105   #define CYTHON_USE_PYLONG_INTERNALS 0
106   #ifndef CYTHON_AVOID_BORROWED_REFS
107     #define CYTHON_AVOID_BORROWED_REFS 0
108   #endif
109   #ifndef CYTHON_ASSUME_SAFE_MACROS
110     #define CYTHON_ASSUME_SAFE_MACROS 1
111   #endif
112   #ifndef CYTHON_UNPACK_METHODS
113     #define CYTHON_UNPACK_METHODS 1
114   #endif
115   #undef CYTHON_FAST_THREAD_STATE
116   #define CYTHON_FAST_THREAD_STATE 0
117   #undef CYTHON_FAST_PYCALL
118   #define CYTHON_FAST_PYCALL 0
119   #undef CYTHON_PEP489_MULTI_PHASE_INIT
120   #define CYTHON_PEP489_MULTI_PHASE_INIT 0
121   #undef CYTHON_USE_TP_FINALIZE
122   #define CYTHON_USE_TP_FINALIZE 0
123   #undef CYTHON_USE_DICT_VERSIONS
124   #define CYTHON_USE_DICT_VERSIONS 0
125   #undef CYTHON_USE_EXC_INFO_STACK
126   #define CYTHON_USE_EXC_INFO_STACK 0
127 #else
128   #define CYTHON_COMPILING_IN_PYPY 0
129   #define CYTHON_COMPILING_IN_PYSTON 0
130   #define CYTHON_COMPILING_IN_CPYTHON 1
131   #ifndef CYTHON_USE_TYPE_SLOTS
132     #define CYTHON_USE_TYPE_SLOTS 1
133   #endif
134   #if PY_VERSION_HEX < 0x02070000
135     #undef CYTHON_USE_PYTYPE_LOOKUP
136     #define CYTHON_USE_PYTYPE_LOOKUP 0
137   #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
138     #define CYTHON_USE_PYTYPE_LOOKUP 1
139   #endif
140   #if PY_MAJOR_VERSION < 3
141     #undef CYTHON_USE_ASYNC_SLOTS
142     #define CYTHON_USE_ASYNC_SLOTS 0
143   #elif !defined(CYTHON_USE_ASYNC_SLOTS)
144     #define CYTHON_USE_ASYNC_SLOTS 1
145   #endif
146   #if PY_VERSION_HEX < 0x02070000
147     #undef CYTHON_USE_PYLONG_INTERNALS
148     #define CYTHON_USE_PYLONG_INTERNALS 0
149   #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
150     #define CYTHON_USE_PYLONG_INTERNALS 1
151   #endif
152   #ifndef CYTHON_USE_PYLIST_INTERNALS
153     #define CYTHON_USE_PYLIST_INTERNALS 1
154   #endif
155   #ifndef CYTHON_USE_UNICODE_INTERNALS
156     #define CYTHON_USE_UNICODE_INTERNALS 1
157   #endif
158   #if PY_VERSION_HEX < 0x030300F0
159     #undef CYTHON_USE_UNICODE_WRITER
160     #define CYTHON_USE_UNICODE_WRITER 0
161   #elif !defined(CYTHON_USE_UNICODE_WRITER)
162     #define CYTHON_USE_UNICODE_WRITER 1
163   #endif
164   #ifndef CYTHON_AVOID_BORROWED_REFS
165     #define CYTHON_AVOID_BORROWED_REFS 0
166   #endif
167   #ifndef CYTHON_ASSUME_SAFE_MACROS
168     #define CYTHON_ASSUME_SAFE_MACROS 1
169   #endif
170   #ifndef CYTHON_UNPACK_METHODS
171     #define CYTHON_UNPACK_METHODS 1
172   #endif
173   #ifndef CYTHON_FAST_THREAD_STATE
174     #define CYTHON_FAST_THREAD_STATE 1
175   #endif
176   #ifndef CYTHON_FAST_PYCALL
177     #define CYTHON_FAST_PYCALL 1
178   #endif
179   #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
180     #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
181   #endif
182   #ifndef CYTHON_USE_TP_FINALIZE
183     #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
184   #endif
185   #ifndef CYTHON_USE_DICT_VERSIONS
186     #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
187   #endif
188   #ifndef CYTHON_USE_EXC_INFO_STACK
189     #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
190   #endif
191 #endif
192 #if !defined(CYTHON_FAST_PYCCALL)
193 #define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
194 #endif
195 #if CYTHON_USE_PYLONG_INTERNALS
196   #include "longintrepr.h"
197   #undef SHIFT
198   #undef BASE
199   #undef MASK
200   #ifdef SIZEOF_VOID_P
201     enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
202   #endif
203 #endif
204 #ifndef __has_attribute
205   #define __has_attribute(x) 0
206 #endif
207 #ifndef __has_cpp_attribute
208   #define __has_cpp_attribute(x) 0
209 #endif
210 #ifndef CYTHON_RESTRICT
211   #if defined(__GNUC__)
212     #define CYTHON_RESTRICT __restrict__
213   #elif defined(_MSC_VER) && _MSC_VER >= 1400
214     #define CYTHON_RESTRICT __restrict
215   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
216     #define CYTHON_RESTRICT restrict
217   #else
218     #define CYTHON_RESTRICT
219   #endif
220 #endif
221 #ifndef CYTHON_UNUSED
222 # if defined(__GNUC__)
223 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
224 #     define CYTHON_UNUSED __attribute__ ((__unused__))
225 #   else
226 #     define CYTHON_UNUSED
227 #   endif
228 # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
229 #   define CYTHON_UNUSED __attribute__ ((__unused__))
230 # else
231 #   define CYTHON_UNUSED
232 # endif
233 #endif
234 #ifndef CYTHON_MAYBE_UNUSED_VAR
235 #  if defined(__cplusplus)
236      template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
237 #  else
238 #    define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
239 #  endif
240 #endif
241 #ifndef CYTHON_NCP_UNUSED
242 # if CYTHON_COMPILING_IN_CPYTHON
243 #  define CYTHON_NCP_UNUSED
244 # else
245 #  define CYTHON_NCP_UNUSED CYTHON_UNUSED
246 # endif
247 #endif
248 #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
249 #ifdef _MSC_VER
250     #ifndef _MSC_STDINT_H_
251         #if _MSC_VER < 1300
252            typedef unsigned char     uint8_t;
253            typedef unsigned int      uint32_t;
254         #else
255            typedef unsigned __int8   uint8_t;
256            typedef unsigned __int32  uint32_t;
257         #endif
258     #endif
259 #else
260    #include <stdint.h>
261 #endif
262 #ifndef CYTHON_FALLTHROUGH
263   #if defined(__cplusplus) && __cplusplus >= 201103L
264     #if __has_cpp_attribute(fallthrough)
265       #define CYTHON_FALLTHROUGH [[fallthrough]]
266     #elif __has_cpp_attribute(clang::fallthrough)
267       #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
268     #elif __has_cpp_attribute(gnu::fallthrough)
269       #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
270     #endif
271   #endif
272   #ifndef CYTHON_FALLTHROUGH
273     #if __has_attribute(fallthrough)
274       #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
275     #else
276       #define CYTHON_FALLTHROUGH
277     #endif
278   #endif
279   #if defined(__clang__ ) && defined(__apple_build_version__)
280     #if __apple_build_version__ < 7000000
281       #undef  CYTHON_FALLTHROUGH
282       #define CYTHON_FALLTHROUGH
283     #endif
284   #endif
285 #endif
286 
287 #ifndef __cplusplus
288   #error "Cython files generated with the C++ option must be compiled with a C++ compiler."
289 #endif
290 #ifndef CYTHON_INLINE
291   #if defined(__clang__)
292     #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
293   #else
294     #define CYTHON_INLINE inline
295   #endif
296 #endif
297 template<typename T>
298 void __Pyx_call_destructor(T& x) {
299     x.~T();
300 }
301 template<typename T>
302 class __Pyx_FakeReference {
303   public:
304     __Pyx_FakeReference() : ptr(NULL) { }
305     __Pyx_FakeReference(const T& ref) : ptr(const_cast<T*>(&ref)) { }
306     T *operator->() { return ptr; }
307     T *operator&() { return ptr; }
308     operator T&() { return *ptr; }
309     template<typename U> bool operator ==(U other) { return *ptr == other; }
310     template<typename U> bool operator !=(U other) { return *ptr != other; }
311   private:
312     T *ptr;
313 };
314 
315 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
316   #define Py_OptimizeFlag 0
317 #endif
318 #define __PYX_BUILD_PY_SSIZE_T "n"
319 #define CYTHON_FORMAT_SSIZE_T "z"
320 #if PY_MAJOR_VERSION < 3
321   #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
322   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
323           PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
324   #define __Pyx_DefaultClassType PyClass_Type
325 #else
326   #define __Pyx_BUILTIN_MODULE_NAME "builtins"
327 #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
328   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
329           PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
330 #else
331   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
332           PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
333 #endif
334   #define __Pyx_DefaultClassType PyType_Type
335 #endif
336 #ifndef Py_TPFLAGS_CHECKTYPES
337   #define Py_TPFLAGS_CHECKTYPES 0
338 #endif
339 #ifndef Py_TPFLAGS_HAVE_INDEX
340   #define Py_TPFLAGS_HAVE_INDEX 0
341 #endif
342 #ifndef Py_TPFLAGS_HAVE_NEWBUFFER
343   #define Py_TPFLAGS_HAVE_NEWBUFFER 0
344 #endif
345 #ifndef Py_TPFLAGS_HAVE_FINALIZE
346   #define Py_TPFLAGS_HAVE_FINALIZE 0
347 #endif
348 #ifndef METH_STACKLESS
349   #define METH_STACKLESS 0
350 #endif
351 #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
352   #ifndef METH_FASTCALL
353      #define METH_FASTCALL 0x80
354   #endif
355   typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
356   typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
357                                                           Py_ssize_t nargs, PyObject *kwnames);
358 #else
359   #define __Pyx_PyCFunctionFast _PyCFunctionFast
360   #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
361 #endif
362 #if CYTHON_FAST_PYCCALL
363 #define __Pyx_PyFastCFunction_Check(func)\
364     ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
365 #else
366 #define __Pyx_PyFastCFunction_Check(func) 0
367 #endif
368 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
369   #define PyObject_Malloc(s)   PyMem_Malloc(s)
370   #define PyObject_Free(p)     PyMem_Free(p)
371   #define PyObject_Realloc(p)  PyMem_Realloc(p)
372 #endif
373 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
374   #define PyMem_RawMalloc(n)           PyMem_Malloc(n)
375   #define PyMem_RawRealloc(p, n)       PyMem_Realloc(p, n)
376   #define PyMem_RawFree(p)             PyMem_Free(p)
377 #endif
378 #if CYTHON_COMPILING_IN_PYSTON
379   #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
380   #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
381 #else
382   #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
383   #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
384 #endif
385 #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
386   #define __Pyx_PyThreadState_Current PyThreadState_GET()
387 #elif PY_VERSION_HEX >= 0x03060000
388   #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
389 #elif PY_VERSION_HEX >= 0x03000000
390   #define __Pyx_PyThreadState_Current PyThreadState_GET()
391 #else
392   #define __Pyx_PyThreadState_Current _PyThreadState_Current
393 #endif
394 #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
395 #include "pythread.h"
396 #define Py_tss_NEEDS_INIT 0
397 typedef int Py_tss_t;
398 static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
399   *key = PyThread_create_key();
400   return 0;
401 }
402 static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
403   Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
404   *key = Py_tss_NEEDS_INIT;
405   return key;
406 }
407 static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
408   PyObject_Free(key);
409 }
410 static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
411   return *key != Py_tss_NEEDS_INIT;
412 }
413 static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
414   PyThread_delete_key(*key);
415   *key = Py_tss_NEEDS_INIT;
416 }
417 static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
418   return PyThread_set_key_value(*key, value);
419 }
420 static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
421   return PyThread_get_key_value(*key);
422 }
423 #endif
424 #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
425 #define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
426 #else
427 #define __Pyx_PyDict_NewPresized(n)  PyDict_New()
428 #endif
429 #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
430   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
431   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
432 #else
433   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
434   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
435 #endif
436 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
437 #define __Pyx_PyDict_GetItemStr(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
438 #else
439 #define __Pyx_PyDict_GetItemStr(dict, name)  PyDict_GetItem(dict, name)
440 #endif
441 #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
442   #define CYTHON_PEP393_ENABLED 1
443   #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
444                                               0 : _PyUnicode_Ready((PyObject *)(op)))
445   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
446   #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
447   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
448   #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
449   #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
450   #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
451   #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
452   #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
453   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
454   #else
455   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
456   #endif
457 #else
458   #define CYTHON_PEP393_ENABLED 0
459   #define PyUnicode_1BYTE_KIND  1
460   #define PyUnicode_2BYTE_KIND  2
461   #define PyUnicode_4BYTE_KIND  4
462   #define __Pyx_PyUnicode_READY(op)       (0)
463   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
464   #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
465   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
466   #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
467   #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
468   #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
469   #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
470   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
471 #endif
472 #if CYTHON_COMPILING_IN_PYPY
473   #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
474   #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
475 #else
476   #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
477   #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
478       PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
479 #endif
480 #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
481   #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
482 #endif
483 #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
484   #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
485 #endif
486 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
487   #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
488 #endif
489 #define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
490 #define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
491 #if PY_MAJOR_VERSION >= 3
492   #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
493 #else
494   #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
495 #endif
496 #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
497   #define PyObject_ASCII(o)            PyObject_Repr(o)
498 #endif
499 #if PY_MAJOR_VERSION >= 3
500   #define PyBaseString_Type            PyUnicode_Type
501   #define PyStringObject               PyUnicodeObject
502   #define PyString_Type                PyUnicode_Type
503   #define PyString_Check               PyUnicode_Check
504   #define PyString_CheckExact          PyUnicode_CheckExact
505 #ifndef PyObject_Unicode
506   #define PyObject_Unicode             PyObject_Str
507 #endif
508 #endif
509 #if PY_MAJOR_VERSION >= 3
510   #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
511   #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
512 #else
513   #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
514   #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
515 #endif
516 #ifndef PySet_CheckExact
517   #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
518 #endif
519 #if PY_VERSION_HEX >= 0x030900A4
520   #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
521   #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
522 #else
523   #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
524   #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
525 #endif
526 #if CYTHON_ASSUME_SAFE_MACROS
527   #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
528 #else
529   #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
530 #endif
531 #if PY_MAJOR_VERSION >= 3
532   #define PyIntObject                  PyLongObject
533   #define PyInt_Type                   PyLong_Type
534   #define PyInt_Check(op)              PyLong_Check(op)
535   #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
536   #define PyInt_FromString             PyLong_FromString
537   #define PyInt_FromUnicode            PyLong_FromUnicode
538   #define PyInt_FromLong               PyLong_FromLong
539   #define PyInt_FromSize_t             PyLong_FromSize_t
540   #define PyInt_FromSsize_t            PyLong_FromSsize_t
541   #define PyInt_AsLong                 PyLong_AsLong
542   #define PyInt_AS_LONG                PyLong_AS_LONG
543   #define PyInt_AsSsize_t              PyLong_AsSsize_t
544   #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
545   #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
546   #define PyNumber_Int                 PyNumber_Long
547 #endif
548 #if PY_MAJOR_VERSION >= 3
549   #define PyBoolObject                 PyLongObject
550 #endif
551 #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
552   #ifndef PyUnicode_InternFromString
553     #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
554   #endif
555 #endif
556 #if PY_VERSION_HEX < 0x030200A4
557   typedef long Py_hash_t;
558   #define __Pyx_PyInt_FromHash_t PyInt_FromLong
559   #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
560 #else
561   #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
562   #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
563 #endif
564 #if PY_MAJOR_VERSION >= 3
565   #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
566 #else
567   #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
568 #endif
569 #if CYTHON_USE_ASYNC_SLOTS
570   #if PY_VERSION_HEX >= 0x030500B1
571     #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
572     #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
573   #else
574     #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
575   #endif
576 #else
577   #define __Pyx_PyType_AsAsync(obj) NULL
578 #endif
579 #ifndef __Pyx_PyAsyncMethodsStruct
580     typedef struct {
581         unaryfunc am_await;
582         unaryfunc am_aiter;
583         unaryfunc am_anext;
584     } __Pyx_PyAsyncMethodsStruct;
585 #endif
586 
587 #if defined(WIN32) || defined(MS_WINDOWS)
588   #define _USE_MATH_DEFINES
589 #endif
590 #include <math.h>
591 #ifdef NAN
592 #define __PYX_NAN() ((float) NAN)
593 #else
594 static CYTHON_INLINE float __PYX_NAN() {
595   float value;
596   memset(&value, 0xFF, sizeof(value));
597   return value;
598 }
599 #endif
600 #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
601 #define __Pyx_truncl trunc
602 #else
603 #define __Pyx_truncl truncl
604 #endif
605 
606 #define __PYX_MARK_ERR_POS(f_index, lineno) \
607     { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
608 #define __PYX_ERR(f_index, lineno, Ln_error) \
609     { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
610 
611 #ifndef __PYX_EXTERN_C
612   #ifdef __cplusplus
613     #define __PYX_EXTERN_C extern "C"
614   #else
615     #define __PYX_EXTERN_C extern
616   #endif
617 #endif
618 
619 #define __PYX_HAVE__cylp__cy__CyClpSimplex
620 #define __PYX_HAVE_API__cylp__cy__CyClpSimplex
621 /* Early includes */
622 #include <string.h>
623 #include <stdio.h>
624 #include "pythread.h"
625 #include "ICoinIndexedVector.hpp"
626 #include "ClpPrimalColumnPivot.hpp"
627 #include "ClpFactorization.hpp"
628 #include "IClpPrimalColumnPivotBase.h"
629 #include "numpy/arrayobject.h"
630 #include "numpy/ufuncobject.h"
631 #include "ClpDualRowPivot.hpp"
632 #include "IClpDualRowPivotBase.h"
633 #include "CoinModel.hpp"
634 #include "ICoinPackedMatrix.hpp"
635 #include "CglAllDifferent.hpp"
636 #include "CglClique.hpp"
637 #include "CglKnapsackCover.hpp"
638 #include "CglOddHole.hpp"
639 #include "CglFlowCover.hpp"
640 #include "CglGomory.hpp"
641 #include "CglRedSplit.hpp"
642 #include "CglLiftAndProject.hpp"
643 #include "CglLandP.hpp"
644 #include "CglMixedIntegerRounding.hpp"
645 #include "CglMixedIntegerRounding2.hpp"
646 #include "CglTwomir.hpp"
647 #include "CglResidualCapacity.hpp"
648 #include "CglPreProcess.hpp"
649 #include "CglProbing.hpp"
650 #include "CglSimpleRounding.hpp"
651 #include "CglCutGenerator.hpp"
652 #include "ICbcNode.hpp"
653 #include "ClpSimplex.hpp"
654 #include "OsiClpSolverInterface.hpp"
655 #include "OsiSolverInterface.hpp"
656 #include "CbcCompareUser.hpp"
657 #include "ICbcModel.hpp"
658 #include "ios"
659 #include "new"
660 #include "stdexcept"
661 #include "typeinfo"
662 #include <string>
663 #include <vector>
664 #include "IClpSimplex.hpp"
665 #include "ICoinMpsIO.hpp"
666 #ifdef _OPENMP
667 #include <omp.h>
668 #endif /* _OPENMP */
669 
670 #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
671 #define CYTHON_WITHOUT_ASSERTIONS
672 #endif
673 
674 typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
675                 const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
676 
677 #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 1
678 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
679 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
680 #define __PYX_DEFAULT_STRING_ENCODING "ascii"
681 #define __Pyx_PyObject_FromString __Pyx_PyStr_FromString
682 #define __Pyx_PyObject_FromStringAndSize __Pyx_PyStr_FromStringAndSize
683 #define __Pyx_uchar_cast(c) ((unsigned char)c)
684 #define __Pyx_long_cast(x) ((long)x)
685 #define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
686     (sizeof(type) < sizeof(Py_ssize_t))  ||\
687     (sizeof(type) > sizeof(Py_ssize_t) &&\
688           likely(v < (type)PY_SSIZE_T_MAX ||\
689                  v == (type)PY_SSIZE_T_MAX)  &&\
690           (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
691                                 v == (type)PY_SSIZE_T_MIN)))  ||\
692     (sizeof(type) == sizeof(Py_ssize_t) &&\
693           (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
694                                v == (type)PY_SSIZE_T_MAX)))  )
695 static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
696     return (size_t) i < (size_t) limit;
697 }
698 #if defined (__cplusplus) && __cplusplus >= 201103L
699     #include <cstdlib>
700     #define __Pyx_sst_abs(value) std::abs(value)
701 #elif SIZEOF_INT >= SIZEOF_SIZE_T
702     #define __Pyx_sst_abs(value) abs(value)
703 #elif SIZEOF_LONG >= SIZEOF_SIZE_T
704     #define __Pyx_sst_abs(value) labs(value)
705 #elif defined (_MSC_VER)
706     #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
707 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
708     #define __Pyx_sst_abs(value) llabs(value)
709 #elif defined (__GNUC__)
710     #define __Pyx_sst_abs(value) __builtin_llabs(value)
711 #else
712     #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
713 #endif
714 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
715 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
716 #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
717 #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
718 #define __Pyx_PyBytes_FromString        PyBytes_FromString
719 #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
720 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
721 #if PY_MAJOR_VERSION < 3
722     #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
723     #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
724 #else
725     #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
726     #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
727 #endif
728 #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
729 #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
730 #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
731 #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
732 #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
733 #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
734 #define __Pyx_PyObject_AsWritableString(s)    ((char*) __Pyx_PyObject_AsString(s))
735 #define __Pyx_PyObject_AsWritableSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
736 #define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
737 #define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
738 #define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
739 #define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
740 #define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
741 #define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
742 #define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
743 #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
744 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
745     const Py_UNICODE *u_end = u;
746     while (*u_end++) ;
747     return (size_t)(u_end - u - 1);
748 }
749 #define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
750 #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
751 #define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
752 #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
753 #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
754 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
755 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
756 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
757 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
758 #define __Pyx_PySequence_Tuple(obj)\
759     (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
760 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
761 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
762 #if CYTHON_ASSUME_SAFE_MACROS
763 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
764 #else
765 #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
766 #endif
767 #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
768 #if PY_MAJOR_VERSION >= 3
769 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
770 #else
771 #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
772 #endif
773 #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
774 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
775 static int __Pyx_sys_getdefaultencoding_not_ascii;
776 static int __Pyx_init_sys_getdefaultencoding_params(void) {
777     PyObject* sys;
778     PyObject* default_encoding = NULL;
779     PyObject* ascii_chars_u = NULL;
780     PyObject* ascii_chars_b = NULL;
781     const char* default_encoding_c;
782     sys = PyImport_ImportModule("sys");
783     if (!sys) goto bad;
784     default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
785     Py_DECREF(sys);
786     if (!default_encoding) goto bad;
787     default_encoding_c = PyBytes_AsString(default_encoding);
788     if (!default_encoding_c) goto bad;
789     if (strcmp(default_encoding_c, "ascii") == 0) {
790         __Pyx_sys_getdefaultencoding_not_ascii = 0;
791     } else {
792         char ascii_chars[128];
793         int c;
794         for (c = 0; c < 128; c++) {
795             ascii_chars[c] = c;
796         }
797         __Pyx_sys_getdefaultencoding_not_ascii = 1;
798         ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
799         if (!ascii_chars_u) goto bad;
800         ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
801         if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
802             PyErr_Format(
803                 PyExc_ValueError,
804                 "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
805                 default_encoding_c);
806             goto bad;
807         }
808         Py_DECREF(ascii_chars_u);
809         Py_DECREF(ascii_chars_b);
810     }
811     Py_DECREF(default_encoding);
812     return 0;
813 bad:
814     Py_XDECREF(default_encoding);
815     Py_XDECREF(ascii_chars_u);
816     Py_XDECREF(ascii_chars_b);
817     return -1;
818 }
819 #endif
820 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
821 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
822 #else
823 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
824 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
825 static char* __PYX_DEFAULT_STRING_ENCODING;
826 static int __Pyx_init_sys_getdefaultencoding_params(void) {
827     PyObject* sys;
828     PyObject* default_encoding = NULL;
829     char* default_encoding_c;
830     sys = PyImport_ImportModule("sys");
831     if (!sys) goto bad;
832     default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
833     Py_DECREF(sys);
834     if (!default_encoding) goto bad;
835     default_encoding_c = PyBytes_AsString(default_encoding);
836     if (!default_encoding_c) goto bad;
837     __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
838     if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
839     strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
840     Py_DECREF(default_encoding);
841     return 0;
842 bad:
843     Py_XDECREF(default_encoding);
844     return -1;
845 }
846 #endif
847 #endif
848 
849 
850 /* Test for GCC > 2.95 */
851 #if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
852   #define likely(x)   __builtin_expect(!!(x), 1)
853   #define unlikely(x) __builtin_expect(!!(x), 0)
854 #else /* !__GNUC__ or GCC < 2.95 */
855   #define likely(x)   (x)
856   #define unlikely(x) (x)
857 #endif /* __GNUC__ */
858 static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
859 
860 static PyObject *__pyx_m = NULL;
861 static PyObject *__pyx_d;
862 static PyObject *__pyx_b;
863 static PyObject *__pyx_cython_runtime = NULL;
864 static PyObject *__pyx_empty_tuple;
865 static PyObject *__pyx_empty_bytes;
866 static PyObject *__pyx_empty_unicode;
867 static int __pyx_lineno;
868 static int __pyx_clineno = 0;
869 static const char * __pyx_cfilenm= __FILE__;
870 static const char *__pyx_filename;
871 
872 /* Header.proto */
873 #if !defined(CYTHON_CCOMPLEX)
874   #if defined(__cplusplus)
875     #define CYTHON_CCOMPLEX 1
876   #elif defined(_Complex_I)
877     #define CYTHON_CCOMPLEX 1
878   #else
879     #define CYTHON_CCOMPLEX 0
880   #endif
881 #endif
882 #if CYTHON_CCOMPLEX
883   #ifdef __cplusplus
884     #include <complex>
885   #else
886     #include <complex.h>
887   #endif
888 #endif
889 #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
890   #undef _Complex_I
891   #define _Complex_I 1.0fj
892 #endif
893 
894 
895 static const char *__pyx_f[] = {
896   "cylp/cy/CyClpSimplex.pyx",
897   "stringsource",
898   "__init__.pxd",
899   "type.pxd",
900   "bool.pxd",
901   "complex.pxd",
902   "cylp/cy/CyCoinIndexedVector.pxd",
903   "cylp/cy/CyClpPrimalColumnPivotBase.pxd",
904   "cylp/cy/CyClpDualRowPivotBase.pxd",
905   "cylp/cy/CyCoinModel.pxd",
906   "cylp/cy/CyCoinPackedMatrix.pxd",
907   "cylp/cy/CyCgl.pxd",
908   "cylp/cy/CyCbcNode.pxd",
909   "cylp/cy/CyOsiSolverInterface.pxd",
910   "cylp/cy/CyCbcModel.pxd",
911   "cylp/cy/CyWolfePivot.pxd",
912   "cylp/cy/CyPEPivot.pxd",
913   "cylp/cy/CyPivotPythonBase.pxd",
914   "cylp/cy/CyDualPivotPythonBase.pxd",
915   "cylp/cy/CyCoinMpsIO.pxd",
916 };
917 /* BufferFormatStructs.proto */
918 #define IS_UNSIGNED(type) (((type) -1) > 0)
919 struct __Pyx_StructField_;
920 #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0)
921 typedef struct {
922   const char* name;
923   struct __Pyx_StructField_* fields;
924   size_t size;
925   size_t arraysize[8];
926   int ndim;
927   char typegroup;
928   char is_unsigned;
929   int flags;
930 } __Pyx_TypeInfo;
931 typedef struct __Pyx_StructField_ {
932   __Pyx_TypeInfo* type;
933   const char* name;
934   size_t offset;
935 } __Pyx_StructField;
936 typedef struct {
937   __Pyx_StructField* field;
938   size_t parent_offset;
939 } __Pyx_BufFmt_StackElem;
940 typedef struct {
941   __Pyx_StructField root;
942   __Pyx_BufFmt_StackElem* head;
943   size_t fmt_offset;
944   size_t new_count, enc_count;
945   size_t struct_alignment;
946   int is_complex;
947   char enc_type;
948   char new_packmode;
949   char enc_packmode;
950   char is_valid_array;
951 } __Pyx_BufFmt_Context;
952 
953 
954 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":775
955  * # in Cython to enable them only on the right systems.
956  *
957  * ctypedef npy_int8       int8_t             # <<<<<<<<<<<<<<
958  * ctypedef npy_int16      int16_t
959  * ctypedef npy_int32      int32_t
960  */
961 typedef npy_int8 __pyx_t_5numpy_int8_t;
962 
963 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":776
964  *
965  * ctypedef npy_int8       int8_t
966  * ctypedef npy_int16      int16_t             # <<<<<<<<<<<<<<
967  * ctypedef npy_int32      int32_t
968  * ctypedef npy_int64      int64_t
969  */
970 typedef npy_int16 __pyx_t_5numpy_int16_t;
971 
972 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":777
973  * ctypedef npy_int8       int8_t
974  * ctypedef npy_int16      int16_t
975  * ctypedef npy_int32      int32_t             # <<<<<<<<<<<<<<
976  * ctypedef npy_int64      int64_t
977  * #ctypedef npy_int96      int96_t
978  */
979 typedef npy_int32 __pyx_t_5numpy_int32_t;
980 
981 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":778
982  * ctypedef npy_int16      int16_t
983  * ctypedef npy_int32      int32_t
984  * ctypedef npy_int64      int64_t             # <<<<<<<<<<<<<<
985  * #ctypedef npy_int96      int96_t
986  * #ctypedef npy_int128     int128_t
987  */
988 typedef npy_int64 __pyx_t_5numpy_int64_t;
989 
990 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":782
991  * #ctypedef npy_int128     int128_t
992  *
993  * ctypedef npy_uint8      uint8_t             # <<<<<<<<<<<<<<
994  * ctypedef npy_uint16     uint16_t
995  * ctypedef npy_uint32     uint32_t
996  */
997 typedef npy_uint8 __pyx_t_5numpy_uint8_t;
998 
999 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":783
1000  *
1001  * ctypedef npy_uint8      uint8_t
1002  * ctypedef npy_uint16     uint16_t             # <<<<<<<<<<<<<<
1003  * ctypedef npy_uint32     uint32_t
1004  * ctypedef npy_uint64     uint64_t
1005  */
1006 typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1007 
1008 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":784
1009  * ctypedef npy_uint8      uint8_t
1010  * ctypedef npy_uint16     uint16_t
1011  * ctypedef npy_uint32     uint32_t             # <<<<<<<<<<<<<<
1012  * ctypedef npy_uint64     uint64_t
1013  * #ctypedef npy_uint96     uint96_t
1014  */
1015 typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1016 
1017 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":785
1018  * ctypedef npy_uint16     uint16_t
1019  * ctypedef npy_uint32     uint32_t
1020  * ctypedef npy_uint64     uint64_t             # <<<<<<<<<<<<<<
1021  * #ctypedef npy_uint96     uint96_t
1022  * #ctypedef npy_uint128    uint128_t
1023  */
1024 typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1025 
1026 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":789
1027  * #ctypedef npy_uint128    uint128_t
1028  *
1029  * ctypedef npy_float32    float32_t             # <<<<<<<<<<<<<<
1030  * ctypedef npy_float64    float64_t
1031  * #ctypedef npy_float80    float80_t
1032  */
1033 typedef npy_float32 __pyx_t_5numpy_float32_t;
1034 
1035 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":790
1036  *
1037  * ctypedef npy_float32    float32_t
1038  * ctypedef npy_float64    float64_t             # <<<<<<<<<<<<<<
1039  * #ctypedef npy_float80    float80_t
1040  * #ctypedef npy_float128   float128_t
1041  */
1042 typedef npy_float64 __pyx_t_5numpy_float64_t;
1043 
1044 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":799
1045  * # The int types are mapped a bit surprising --
1046  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1047  * ctypedef npy_long       int_t             # <<<<<<<<<<<<<<
1048  * ctypedef npy_longlong   long_t
1049  * ctypedef npy_longlong   longlong_t
1050  */
1051 typedef npy_long __pyx_t_5numpy_int_t;
1052 
1053 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":800
1054  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1055  * ctypedef npy_long       int_t
1056  * ctypedef npy_longlong   long_t             # <<<<<<<<<<<<<<
1057  * ctypedef npy_longlong   longlong_t
1058  *
1059  */
1060 typedef npy_longlong __pyx_t_5numpy_long_t;
1061 
1062 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":801
1063  * ctypedef npy_long       int_t
1064  * ctypedef npy_longlong   long_t
1065  * ctypedef npy_longlong   longlong_t             # <<<<<<<<<<<<<<
1066  *
1067  * ctypedef npy_ulong      uint_t
1068  */
1069 typedef npy_longlong __pyx_t_5numpy_longlong_t;
1070 
1071 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":803
1072  * ctypedef npy_longlong   longlong_t
1073  *
1074  * ctypedef npy_ulong      uint_t             # <<<<<<<<<<<<<<
1075  * ctypedef npy_ulonglong  ulong_t
1076  * ctypedef npy_ulonglong  ulonglong_t
1077  */
1078 typedef npy_ulong __pyx_t_5numpy_uint_t;
1079 
1080 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":804
1081  *
1082  * ctypedef npy_ulong      uint_t
1083  * ctypedef npy_ulonglong  ulong_t             # <<<<<<<<<<<<<<
1084  * ctypedef npy_ulonglong  ulonglong_t
1085  *
1086  */
1087 typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
1088 
1089 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":805
1090  * ctypedef npy_ulong      uint_t
1091  * ctypedef npy_ulonglong  ulong_t
1092  * ctypedef npy_ulonglong  ulonglong_t             # <<<<<<<<<<<<<<
1093  *
1094  * ctypedef npy_intp       intp_t
1095  */
1096 typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1097 
1098 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":807
1099  * ctypedef npy_ulonglong  ulonglong_t
1100  *
1101  * ctypedef npy_intp       intp_t             # <<<<<<<<<<<<<<
1102  * ctypedef npy_uintp      uintp_t
1103  *
1104  */
1105 typedef npy_intp __pyx_t_5numpy_intp_t;
1106 
1107 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":808
1108  *
1109  * ctypedef npy_intp       intp_t
1110  * ctypedef npy_uintp      uintp_t             # <<<<<<<<<<<<<<
1111  *
1112  * ctypedef npy_double     float_t
1113  */
1114 typedef npy_uintp __pyx_t_5numpy_uintp_t;
1115 
1116 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":810
1117  * ctypedef npy_uintp      uintp_t
1118  *
1119  * ctypedef npy_double     float_t             # <<<<<<<<<<<<<<
1120  * ctypedef npy_double     double_t
1121  * ctypedef npy_longdouble longdouble_t
1122  */
1123 typedef npy_double __pyx_t_5numpy_float_t;
1124 
1125 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":811
1126  *
1127  * ctypedef npy_double     float_t
1128  * ctypedef npy_double     double_t             # <<<<<<<<<<<<<<
1129  * ctypedef npy_longdouble longdouble_t
1130  *
1131  */
1132 typedef npy_double __pyx_t_5numpy_double_t;
1133 
1134 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":812
1135  * ctypedef npy_double     float_t
1136  * ctypedef npy_double     double_t
1137  * ctypedef npy_longdouble longdouble_t             # <<<<<<<<<<<<<<
1138  *
1139  * ctypedef npy_cfloat      cfloat_t
1140  */
1141 typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
1142 /* Declarations.proto */
1143 #if CYTHON_CCOMPLEX
1144   #ifdef __cplusplus
1145     typedef ::std::complex< float > __pyx_t_float_complex;
1146   #else
1147     typedef float _Complex __pyx_t_float_complex;
1148   #endif
1149 #else
1150     typedef struct { float real, imag; } __pyx_t_float_complex;
1151 #endif
1152 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
1153 
1154 /* Declarations.proto */
1155 #if CYTHON_CCOMPLEX
1156   #ifdef __cplusplus
1157     typedef ::std::complex< double > __pyx_t_double_complex;
1158   #else
1159     typedef double _Complex __pyx_t_double_complex;
1160   #endif
1161 #else
1162     typedef struct { double real, imag; } __pyx_t_double_complex;
1163 #endif
1164 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
1165 
1166 
1167 /*--- Type declarations ---*/
1168 struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector;
1169 struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase;
1170 struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase;
1171 struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel;
1172 struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix;
1173 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator;
1174 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglAllDifferent;
1175 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglClique;
1176 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglKnapsackCover;
1177 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglOddHole;
1178 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglFlowCover;
1179 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglGomory;
1180 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglRedSplit;
1181 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLiftAndProject;
1182 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLandP;
1183 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding;
1184 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2;
1185 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglTwomir;
1186 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglResidualCapacity;
1187 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglPreProcess;
1188 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglProbing;
1189 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding;
1190 struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode;
1191 struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface;
1192 struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel;
1193 struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot;
1194 struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot;
1195 struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase;
1196 struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase;
1197 struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO;
1198 struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
1199 struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus;
1200 
1201 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":814
1202  * ctypedef npy_longdouble longdouble_t
1203  *
1204  * ctypedef npy_cfloat      cfloat_t             # <<<<<<<<<<<<<<
1205  * ctypedef npy_cdouble     cdouble_t
1206  * ctypedef npy_clongdouble clongdouble_t
1207  */
1208 typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
1209 
1210 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":815
1211  *
1212  * ctypedef npy_cfloat      cfloat_t
1213  * ctypedef npy_cdouble     cdouble_t             # <<<<<<<<<<<<<<
1214  * ctypedef npy_clongdouble clongdouble_t
1215  *
1216  */
1217 typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
1218 
1219 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":816
1220  * ctypedef npy_cfloat      cfloat_t
1221  * ctypedef npy_cdouble     cdouble_t
1222  * ctypedef npy_clongdouble clongdouble_t             # <<<<<<<<<<<<<<
1223  *
1224  * ctypedef npy_cdouble     complex_t
1225  */
1226 typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
1227 
1228 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":818
1229  * ctypedef npy_clongdouble clongdouble_t
1230  *
1231  * ctypedef npy_cdouble     complex_t             # <<<<<<<<<<<<<<
1232  *
1233  * cdef inline object PyArray_MultiIterNew1(a):
1234  */
1235 typedef npy_cdouble __pyx_t_5numpy_complex_t;
1236 struct __pyx_opt_args_4cylp_2cy_10CyCbcModel_10CyCbcModel_addCutGenerator;
1237 
1238 /* "cylp/cy/CyCbcModel.pxd":89
1239  *     cdef setCppSelf(self, CppICbcModel* cppmodel)
1240  *     cdef setClpModel(self, clpmodel)
1241  *     cpdef addCutGenerator(self, CyCglCutGenerator generator,             # <<<<<<<<<<<<<<
1242  *                         howOften=*, name=*, normal=*, atSolution=*,
1243  *                         infeasible=*, howOftenInSub=*, whatDepth=*,
1244  */
1245 struct __pyx_opt_args_4cylp_2cy_10CyCbcModel_10CyCbcModel_addCutGenerator {
1246   int __pyx_n;
1247   PyObject *howOften;
1248   PyObject *name;
1249   PyObject *normal;
1250   PyObject *atSolution;
1251   PyObject *infeasible;
1252   PyObject *howOftenInSub;
1253   PyObject *whatDepth;
1254   PyObject *whatDepthInSub;
1255 };
1256 struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps;
1257 
1258 /* "cylp/cy/CyClpSimplex.pxd":326
1259  *     #cdef object isPivotAcceptable_func
1260  *
1261  *     cpdef int readMps(self, filename, int keepNames=*,             # <<<<<<<<<<<<<<
1262  *                 int ignoreErrors=*) except *
1263  *
1264  */
1265 struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps {
1266   int __pyx_n;
1267   int keepNames;
1268   int ignoreErrors;
1269 };
1270 
1271 /* "cylp/cy/CyCoinIndexedVector.pxd":22
1272  *
1273  *
1274  * cdef class CyCoinIndexedVector:             # <<<<<<<<<<<<<<
1275  *     cpdef CppCoinIndexedVector *CppSelf
1276  *     cpdef reserve(self, n)
1277  */
1278 struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector {
1279   PyObject_HEAD
1280   struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_vtab;
1281   ICoinIndexedVector *CppSelf;
1282 };
1283 
1284 
1285 /* "cylp/cy/CyClpPrimalColumnPivotBase.pxd":67
1286  *
1287  *
1288  * cdef class CyClpPrimalColumnPivotBase:             # <<<<<<<<<<<<<<
1289  *     cdef CppClpPrimalColumnPivotBase* CppSelf
1290  *     cdef CyClpSimplex.CyClpSimplex cyModel
1291  */
1292 struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase {
1293   PyObject_HEAD
1294   struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_vtab;
1295   CppClpPrimalColumnPivotBase *CppSelf;
1296   struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *cyModel;
1297 };
1298 
1299 
1300 /* "cylp/cy/CyClpDualRowPivotBase.pxd":72
1301  *
1302  *
1303  * cdef class CyClpDualRowPivotBase:             # <<<<<<<<<<<<<<
1304  *     cdef CppClpDualRowPivotBase* CppSelf
1305  *     cdef CyClpSimplex.CyClpSimplex cyModel
1306  */
1307 struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase {
1308   PyObject_HEAD
1309   struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__pyx_vtab;
1310   CppClpDualRowPivotBase *CppSelf;
1311   struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *cyModel;
1312 };
1313 
1314 
1315 /* "cylp/cy/CyCoinModel.pxd":34
1316  *
1317  *
1318  * cdef class CyCoinModel:             # <<<<<<<<<<<<<<
1319  *     cdef CppCoinModel* CppSelf
1320  *
1321  */
1322 struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel {
1323   PyObject_HEAD
1324   struct __pyx_vtabstruct_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_vtab;
1325   CoinModel *CppSelf;
1326 };
1327 
1328 
1329 /* "cylp/cy/CyCoinPackedMatrix.pxd":27
1330  *
1331  *
1332  * cdef class CyCoinPackedMatrix:             # <<<<<<<<<<<<<<
1333  *     cpdef CppCoinPackedMatrix* CppSelf
1334  *     #cpdef getIndices(self)
1335  */
1336 struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix {
1337   PyObject_HEAD
1338   ICoinPackedMatrix *CppSelf;
1339 };
1340 
1341 
1342 /* "cylp/cy/CyCgl.pxd":103
1343  *
1344  *
1345  * cdef class CyCglCutGenerator:             # <<<<<<<<<<<<<<
1346  *     cdef CppCglCutGenerator* CppSelf
1347  *
1348  */
1349 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator {
1350   PyObject_HEAD
1351   CglCutGenerator *CppSelf;
1352 };
1353 
1354 
1355 /* "cylp/cy/CyCgl.pxd":108
1356  * ###########
1357  *
1358  * cdef class CyCglAllDifferent(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1359  *     pass
1360  *
1361  */
1362 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglAllDifferent {
1363   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1364 };
1365 
1366 
1367 /* "cylp/cy/CyCgl.pxd":111
1368  *     pass
1369  *
1370  * cdef class CyCglClique(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1371  *     pass
1372  *
1373  */
1374 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglClique {
1375   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1376 };
1377 
1378 
1379 /* "cylp/cy/CyCgl.pxd":114
1380  *     pass
1381  *
1382  * cdef class CyCglKnapsackCover(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1383  *     cdef CppCglKnapsackCover* realCppSelf(self)
1384  *
1385  */
1386 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglKnapsackCover {
1387   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1388   struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglKnapsackCover *__pyx_vtab;
1389 };
1390 
1391 
1392 /* "cylp/cy/CyCgl.pxd":117
1393  *     cdef CppCglKnapsackCover* realCppSelf(self)
1394  *
1395  * cdef class CyCglOddHole(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1396  *     pass
1397  *
1398  */
1399 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglOddHole {
1400   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1401 };
1402 
1403 
1404 /* "cylp/cy/CyCgl.pxd":122
1405  * ##################
1406  *
1407  * cdef class CyCglFlowCover(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1408  *     pass
1409  *
1410  */
1411 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglFlowCover {
1412   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1413 };
1414 
1415 
1416 /* "cylp/cy/CyCgl.pxd":127
1417  * ##################
1418  *
1419  * cdef class CyCglGomory(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1420  *     cdef CppCglGomory* realCppSelf(self)
1421  *     #cdef CppCglGomory* CppSelf
1422  */
1423 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglGomory {
1424   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1425   struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglGomory *__pyx_vtab;
1426 };
1427 
1428 
1429 /* "cylp/cy/CyCgl.pxd":132
1430  *     #cdef CppCglCutGenerator* CppSelf
1431  *
1432  * cdef class CyCglRedSplit(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1433  *     pass
1434  *
1435  */
1436 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglRedSplit {
1437   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1438 };
1439 
1440 
1441 /* "cylp/cy/CyCgl.pxd":137
1442  * ###################
1443  *
1444  * cdef class CyCglLiftAndProject(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1445  *     pass
1446  *
1447  */
1448 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLiftAndProject {
1449   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1450 };
1451 
1452 
1453 /* "cylp/cy/CyCgl.pxd":140
1454  *     pass
1455  *
1456  * cdef class CyCglLandP(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1457  *     pass
1458  *
1459  */
1460 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLandP {
1461   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1462 };
1463 
1464 
1465 /* "cylp/cy/CyCgl.pxd":145
1466  * ###################
1467  *
1468  * cdef class CyCglMixedIntegerRounding(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1469  *     pass
1470  *
1471  */
1472 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding {
1473   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1474 };
1475 
1476 
1477 /* "cylp/cy/CyCgl.pxd":148
1478  *     pass
1479  *
1480  * cdef class CyCglMixedIntegerRounding2(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1481  *     pass
1482  *
1483  */
1484 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2 {
1485   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1486 };
1487 
1488 
1489 /* "cylp/cy/CyCgl.pxd":151
1490  *     pass
1491  *
1492  * cdef class CyCglTwomir(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1493  *     pass
1494  *
1495  */
1496 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglTwomir {
1497   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1498 };
1499 
1500 
1501 /* "cylp/cy/CyCgl.pxd":154
1502  *     pass
1503  *
1504  * cdef class CyCglResidualCapacity(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1505  *     pass
1506  *
1507  */
1508 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglResidualCapacity {
1509   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1510 };
1511 
1512 
1513 /* "cylp/cy/CyCgl.pxd":162
1514  * #    pass
1515  *
1516  * cdef class CyCglPreProcess(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1517  *     pass
1518  *
1519  */
1520 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglPreProcess {
1521   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1522 };
1523 
1524 
1525 /* "cylp/cy/CyCgl.pxd":165
1526  *     pass
1527  *
1528  * cdef class CyCglProbing(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1529  *     pass
1530  *
1531  */
1532 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglProbing {
1533   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1534 };
1535 
1536 
1537 /* "cylp/cy/CyCgl.pxd":168
1538  *     pass
1539  *
1540  * cdef class CyCglSimpleRounding(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1541  *     pass
1542  *
1543  */
1544 struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding {
1545   struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
1546 };
1547 
1548 
1549 /* "cylp/cy/CyCbcNode.pxd":13
1550  *         bint breakTie(CppICbcNode* y)
1551  *
1552  * cdef class CyCbcNode:             # <<<<<<<<<<<<<<
1553  *     cdef CppICbcNode* CppSelf
1554  *     cdef setCppSelf(self, CppICbcNode* cbcnode)
1555  */
1556 struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode {
1557   PyObject_HEAD
1558   struct __pyx_vtabstruct_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_vtab;
1559   ICbcNode *CppSelf;
1560 };
1561 
1562 
1563 /* "cylp/cy/CyOsiSolverInterface.pxd":15
1564  *         pass
1565  *
1566  * cdef class CyOsiSolverInterface:             # <<<<<<<<<<<<<<
1567  *     cdef CppOsiSolverInterface* CppSelf
1568  *     cdef setCppSelf(self, CppOsiSolverInterface* s)
1569  */
1570 struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface {
1571   PyObject_HEAD
1572   struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *__pyx_vtab;
1573   OsiSolverInterface *CppSelf;
1574 };
1575 
1576 
1577 /* "cylp/cy/CyCbcModel.pxd":82
1578  *         CppOsiSolverInterface* solver()
1579  *
1580  * cdef class CyCbcModel:             # <<<<<<<<<<<<<<
1581  *     cdef CppICbcModel* CppSelf
1582  *     cdef object cyLPModel
1583  */
1584 struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel {
1585   PyObject_HEAD
1586   struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_vtab;
1587   ICbcModel *CppSelf;
1588   PyObject *cyLPModel;
1589   PyObject *clpModel;
1590   PyObject *cutGenerators;
1591 };
1592 
1593 
1594 /* "CyWolfePivot.pxd":6
1595  *
1596  *
1597  * cdef class CyWolfePivot(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
1598  *     cdef pivotColumn(self, CppCoinIndexedVector* v1,
1599  *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
1600  */
1601 struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot {
1602   struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
1603 };
1604 
1605 
1606 /* "CyPEPivot.pxd":7
1607  *
1608  *
1609  * cdef class CyPEPivot(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
1610  *     cdef pivotColumn(self, CppCoinIndexedVector* v1,
1611  *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
1612  */
1613 struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot {
1614   struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
1615 };
1616 
1617 
1618 /* "CyPivotPythonBase.pxd":7
1619  * from cpython cimport Py_INCREF, Py_DECREF
1620  *
1621  * cdef class CyPivotPythonBase(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
1622  * 	cdef pivotColumn(self, CppCoinIndexedVector* v1,
1623  *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
1624  */
1625 struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase {
1626   struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
1627   PyObject *pivotMethodObject;
1628 };
1629 
1630 
1631 /* "CyDualPivotPythonBase.pxd":9
1632  * from cpython cimport Py_INCREF, Py_DECREF
1633  *
1634  * cdef class CyDualPivotPythonBase(CyClpDualRowPivotBase):             # <<<<<<<<<<<<<<
1635  *     cdef pivotRow(self)
1636  *     cdef CyClpDualRowPivot * clone(self, bint copyData)
1637  */
1638 struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase {
1639   struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase __pyx_base;
1640   PyObject *dualPivotMethodObject;
1641 };
1642 
1643 
1644 /* "CyCoinMpsIO.pxd":46
1645  *
1646  *
1647  * cdef class CyCoinMpsIO:             # <<<<<<<<<<<<<<
1648  *     cdef CppICoinMpsIO *CppSelf
1649  *     cpdef Hessian
1650  */
1651 struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO {
1652   PyObject_HEAD
1653   ICoinMpsIO *CppSelf;
1654   PyObject *Hessian;
1655 };
1656 
1657 
1658 /* "cylp/cy/CyClpSimplex.pxd":302
1659  *         void setOptimizationDirection(double value)
1660  *
1661  * cdef class CyClpSimplex:             # <<<<<<<<<<<<<<
1662  *     '''
1663  *     This is the documentation of CyClpSimpelx in the pyx class
1664  */
1665 struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex {
1666   PyObject_HEAD
1667   struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_vtab;
1668   IClpSimplex *CppSelf;
1669   PyObject *vars;
1670   PyObject *varSelCriteria;
1671   struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *coinModel;
1672   PyObject *cyLPModel;
1673   struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *cbcModel;
1674   PyObject *_Hessian;
1675   struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *cyPivot;
1676   struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *cyDualPivot;
1677 };
1678 
1679 
1680 /* "cylp/cy/CyClpSimplex.pxd":377
1681  *     cpdef setConstraintName(self, constInd, name)
1682  *
1683  * cdef class VarStatus:             # <<<<<<<<<<<<<<
1684  *     pass
1685  * cpdef cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2)
1686  */
1687 struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus {
1688   PyObject_HEAD
1689 };
1690 
1691 
1692 
1693 /* "cylp/cy/CyCoinIndexedVector.pxd":22
1694  *
1695  *
1696  * cdef class CyCoinIndexedVector:             # <<<<<<<<<<<<<<
1697  *     cpdef CppCoinIndexedVector *CppSelf
1698  *     cpdef reserve(self, n)
1699  */
1700 
1701 struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector {
1702   PyObject *(*reserve)(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, PyObject *, int __pyx_skip_dispatch);
1703   PyObject *(*assign)(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, PyObject *, PyObject *, int __pyx_skip_dispatch);
1704   PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, ICoinIndexedVector *);
1705 };
1706 static struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector;
1707 
1708 
1709 /* "cylp/cy/CyClpPrimalColumnPivotBase.pxd":67
1710  *
1711  *
1712  * cdef class CyClpPrimalColumnPivotBase:             # <<<<<<<<<<<<<<
1713  *     cdef CppClpPrimalColumnPivotBase* CppSelf
1714  *     cdef CyClpSimplex.CyClpSimplex cyModel
1715  */
1716 
1717 struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase {
1718   PyObject *(*pivotColumn)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *);
1719   ClpPrimalColumnPivot *(*clone)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *, int);
1720   void (*saveWeights)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *, IClpSimplex *, int);
1721   IClpSimplex *(*model)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *);
1722   void (*setModel)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *, IClpSimplex *);
1723   double *(*getReducedCosts)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *);
1724 };
1725 static struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase;
1726 
1727 
1728 /* "cylp/cy/CyClpDualRowPivotBase.pxd":72
1729  *
1730  *
1731  * cdef class CyClpDualRowPivotBase:             # <<<<<<<<<<<<<<
1732  *     cdef CppClpDualRowPivotBase* CppSelf
1733  *     cdef CyClpSimplex.CyClpSimplex cyModel
1734  */
1735 
1736 struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase {
1737   PyObject *(*pivotRow)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *);
1738   ClpDualRowPivot *(*clone)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *, int);
1739   double (*updateWeights)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *);
1740   void (*updatePrimalSolution)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *, ICoinIndexedVector *, double, PyArrayObject *);
1741   IClpSimplex *(*model)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *);
1742   void (*setModel)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *, IClpSimplex *);
1743   double *(*getReducedCosts)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *);
1744 };
1745 static struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__pyx_vtabptr_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase;
1746 
1747 
1748 /* "cylp/cy/CyCoinModel.pxd":34
1749  *
1750  *
1751  * cdef class CyCoinModel:             # <<<<<<<<<<<<<<
1752  *     cdef CppCoinModel* CppSelf
1753  *
1754  */
1755 
1756 struct __pyx_vtabstruct_4cylp_2cy_11CyCoinModel_CyCoinModel {
1757   void (*CLP_addColumn)(struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *, int, int *, double *, double, double, double);
1758   void (*CLP_addRow)(struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *, int, int *, double *, double, double);
1759 };
1760 static struct __pyx_vtabstruct_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_vtabptr_4cylp_2cy_11CyCoinModel_CyCoinModel;
1761 
1762 
1763 /* "cylp/cy/CyCgl.pxd":114
1764  *     pass
1765  *
1766  * cdef class CyCglKnapsackCover(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1767  *     cdef CppCglKnapsackCover* realCppSelf(self)
1768  *
1769  */
1770 
1771 struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglKnapsackCover {
1772   CglKnapsackCover *(*realCppSelf)(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglKnapsackCover *);
1773 };
1774 static struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglKnapsackCover *__pyx_vtabptr_4cylp_2cy_5CyCgl_CyCglKnapsackCover;
1775 
1776 
1777 /* "cylp/cy/CyCgl.pxd":127
1778  * ##################
1779  *
1780  * cdef class CyCglGomory(CyCglCutGenerator):             # <<<<<<<<<<<<<<
1781  *     cdef CppCglGomory* realCppSelf(self)
1782  *     #cdef CppCglGomory* CppSelf
1783  */
1784 
1785 struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglGomory {
1786   CglGomory *(*realCppSelf)(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglGomory *);
1787 };
1788 static struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglGomory *__pyx_vtabptr_4cylp_2cy_5CyCgl_CyCglGomory;
1789 
1790 
1791 /* "cylp/cy/CyCbcNode.pxd":13
1792  *         bint breakTie(CppICbcNode* y)
1793  *
1794  * cdef class CyCbcNode:             # <<<<<<<<<<<<<<
1795  *     cdef CppICbcNode* CppSelf
1796  *     cdef setCppSelf(self, CppICbcNode* cbcnode)
1797  */
1798 
1799 struct __pyx_vtabstruct_4cylp_2cy_9CyCbcNode_CyCbcNode {
1800   PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode *, ICbcNode *);
1801 };
1802 static struct __pyx_vtabstruct_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_vtabptr_4cylp_2cy_9CyCbcNode_CyCbcNode;
1803 
1804 
1805 /* "cylp/cy/CyOsiSolverInterface.pxd":15
1806  *         pass
1807  *
1808  * cdef class CyOsiSolverInterface:             # <<<<<<<<<<<<<<
1809  *     cdef CppOsiSolverInterface* CppSelf
1810  *     cdef setCppSelf(self, CppOsiSolverInterface* s)
1811  */
1812 
1813 struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface {
1814   PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *, OsiSolverInterface *);
1815 };
1816 static struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *__pyx_vtabptr_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface;
1817 
1818 
1819 /* "cylp/cy/CyCbcModel.pxd":82
1820  *         CppOsiSolverInterface* solver()
1821  *
1822  * cdef class CyCbcModel:             # <<<<<<<<<<<<<<
1823  *     cdef CppICbcModel* CppSelf
1824  *     cdef object cyLPModel
1825  */
1826 
1827 struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel {
1828   PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *, ICbcModel *);
1829   PyObject *(*setClpModel)(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *, PyObject *);
1830   PyObject *(*addCutGenerator)(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *, struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_4cylp_2cy_10CyCbcModel_10CyCbcModel_addCutGenerator *__pyx_optional_args);
1831 };
1832 static struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_vtabptr_4cylp_2cy_10CyCbcModel_CyCbcModel;
1833 
1834 
1835 /* "CyWolfePivot.pxd":6
1836  *
1837  *
1838  * cdef class CyWolfePivot(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
1839  *     cdef pivotColumn(self, CppCoinIndexedVector* v1,
1840  *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
1841  */
1842 
1843 struct __pyx_vtabstruct_4cylp_2cy_12CyWolfePivot_CyWolfePivot {
1844   struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
1845 };
1846 static struct __pyx_vtabstruct_4cylp_2cy_12CyWolfePivot_CyWolfePivot *__pyx_vtabptr_4cylp_2cy_12CyWolfePivot_CyWolfePivot;
1847 
1848 
1849 /* "CyPEPivot.pxd":7
1850  *
1851  *
1852  * cdef class CyPEPivot(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
1853  *     cdef pivotColumn(self, CppCoinIndexedVector* v1,
1854  *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
1855  */
1856 
1857 struct __pyx_vtabstruct_4cylp_2cy_9CyPEPivot_CyPEPivot {
1858   struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
1859 };
1860 static struct __pyx_vtabstruct_4cylp_2cy_9CyPEPivot_CyPEPivot *__pyx_vtabptr_4cylp_2cy_9CyPEPivot_CyPEPivot;
1861 
1862 
1863 /* "CyPivotPythonBase.pxd":7
1864  * from cpython cimport Py_INCREF, Py_DECREF
1865  *
1866  * cdef class CyPivotPythonBase(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
1867  * 	cdef pivotColumn(self, CppCoinIndexedVector* v1,
1868  *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
1869  */
1870 
1871 struct __pyx_vtabstruct_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase {
1872   struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
1873 };
1874 static struct __pyx_vtabstruct_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *__pyx_vtabptr_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase;
1875 
1876 
1877 /* "CyDualPivotPythonBase.pxd":9
1878  * from cpython cimport Py_INCREF, Py_DECREF
1879  *
1880  * cdef class CyDualPivotPythonBase(CyClpDualRowPivotBase):             # <<<<<<<<<<<<<<
1881  *     cdef pivotRow(self)
1882  *     cdef CyClpDualRowPivot * clone(self, bint copyData)
1883  */
1884 
1885 struct __pyx_vtabstruct_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase {
1886   struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase __pyx_base;
1887 };
1888 static struct __pyx_vtabstruct_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase *__pyx_vtabptr_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase;
1889 
1890 
1891 /* "cylp/cy/CyClpSimplex.pyx":50
1892  *                       's' : 4} #skip initialization of work areas
1893  *
1894  * cdef class CyClpSimplex:             # <<<<<<<<<<<<<<
1895  *     '''
1896  *     CyClpSimplex is a Cython interface to CLP.
1897  */
1898 
1899 struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex {
1900   PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, IClpSimplex *);
1901   int (*readMps)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps *__pyx_optional_args);
1902   PyObject *(*setPrimalColumnPivotAlgorithm)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, void *);
1903   PyObject *(*setDualRowPivotAlgorithm)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, void *);
1904   double *(*primalColumnSolution)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
1905   double *(*dualColumnSolution)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
1906   double *(*primalRowSolution)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
1907   double *(*dualRowSolution)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
1908   double *(*rowLower)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
1909   double *(*rowUpper)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
1910   PyObject *(*getReducedCosts)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch);
1911   PyObject *(*getStatusArray)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch);
1912   PyObject *(*getComplementarityList)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch);
1913   PyObject *(*getPivotVariable)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch);
1914   PyObject *(*filterVars)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, int __pyx_skip_dispatch);
1915   PyObject *(*CLP_getVarStatus)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int, int __pyx_skip_dispatch);
1916   PyObject *(*CLP_setVarStatus)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int, int, int __pyx_skip_dispatch);
1917   PyObject *(*primalRow)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, int);
1918   PyObject *(*getACol)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, int __pyx_skip_dispatch);
1919   int *(*ComplementarityList)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
1920   int *(*pivotVariable)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
1921   PyObject *(*vectorTimesB_1)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, int __pyx_skip_dispatch);
1922   PyObject *(*setVariableName)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, PyObject *, int __pyx_skip_dispatch);
1923   PyObject *(*setConstraintName)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, PyObject *, int __pyx_skip_dispatch);
1924 };
1925 static struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_vtabptr_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
1926 
1927 /* --- Runtime support code (head) --- */
1928 /* Refnanny.proto */
1929 #ifndef CYTHON_REFNANNY
1930   #define CYTHON_REFNANNY 0
1931 #endif
1932 #if CYTHON_REFNANNY
1933   typedef struct {
1934     void (*INCREF)(void*, PyObject*, int);
1935     void (*DECREF)(void*, PyObject*, int);
1936     void (*GOTREF)(void*, PyObject*, int);
1937     void (*GIVEREF)(void*, PyObject*, int);
1938     void* (*SetupContext)(const char*, int, const char*);
1939     void (*FinishContext)(void**);
1940   } __Pyx_RefNannyAPIStruct;
1941   static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
1942   static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
1943   #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
1944 #ifdef WITH_THREAD
1945   #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1946           if (acquire_gil) {\
1947               PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
1948               __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1949               PyGILState_Release(__pyx_gilstate_save);\
1950           } else {\
1951               __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1952           }
1953 #else
1954   #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1955           __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
1956 #endif
1957   #define __Pyx_RefNannyFinishContext()\
1958           __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
1959   #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1960   #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1961   #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1962   #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1963   #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
1964   #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
1965   #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
1966   #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
1967 #else
1968   #define __Pyx_RefNannyDeclarations
1969   #define __Pyx_RefNannySetupContext(name, acquire_gil)
1970   #define __Pyx_RefNannyFinishContext()
1971   #define __Pyx_INCREF(r) Py_INCREF(r)
1972   #define __Pyx_DECREF(r) Py_DECREF(r)
1973   #define __Pyx_GOTREF(r)
1974   #define __Pyx_GIVEREF(r)
1975   #define __Pyx_XINCREF(r) Py_XINCREF(r)
1976   #define __Pyx_XDECREF(r) Py_XDECREF(r)
1977   #define __Pyx_XGOTREF(r)
1978   #define __Pyx_XGIVEREF(r)
1979 #endif
1980 #define __Pyx_XDECREF_SET(r, v) do {\
1981         PyObject *tmp = (PyObject *) r;\
1982         r = v; __Pyx_XDECREF(tmp);\
1983     } while (0)
1984 #define __Pyx_DECREF_SET(r, v) do {\
1985         PyObject *tmp = (PyObject *) r;\
1986         r = v; __Pyx_DECREF(tmp);\
1987     } while (0)
1988 #define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
1989 #define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
1990 
1991 /* PyObjectGetAttrStr.proto */
1992 #if CYTHON_USE_TYPE_SLOTS
1993 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
1994 #else
1995 #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
1996 #endif
1997 
1998 /* GetBuiltinName.proto */
1999 static PyObject *__Pyx_GetBuiltinName(PyObject *name);
2000 
2001 /* RaiseDoubleKeywords.proto */
2002 static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
2003 
2004 /* ParseKeywords.proto */
2005 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
2006     PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
2007     const char* function_name);
2008 
2009 /* RaiseArgTupleInvalid.proto */
2010 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
2011     Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
2012 
2013 /* PyThreadStateGet.proto */
2014 #if CYTHON_FAST_THREAD_STATE
2015 #define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
2016 #define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
2017 #define __Pyx_PyErr_Occurred()  __pyx_tstate->curexc_type
2018 #else
2019 #define __Pyx_PyThreadState_declare
2020 #define __Pyx_PyThreadState_assign
2021 #define __Pyx_PyErr_Occurred()  PyErr_Occurred()
2022 #endif
2023 
2024 /* PyErrFetchRestore.proto */
2025 #if CYTHON_FAST_THREAD_STATE
2026 #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
2027 #define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
2028 #define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
2029 #define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
2030 #define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
2031 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2032 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2033 #if CYTHON_COMPILING_IN_CPYTHON
2034 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
2035 #else
2036 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2037 #endif
2038 #else
2039 #define __Pyx_PyErr_Clear() PyErr_Clear()
2040 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2041 #define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
2042 #define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
2043 #define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
2044 #define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
2045 #define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
2046 #define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
2047 #endif
2048 
2049 /* Profile.proto */
2050 #ifndef CYTHON_PROFILE
2051 #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
2052   #define CYTHON_PROFILE 0
2053 #else
2054   #define CYTHON_PROFILE 1
2055 #endif
2056 #endif
2057 #ifndef CYTHON_TRACE_NOGIL
2058   #define CYTHON_TRACE_NOGIL 0
2059 #else
2060   #if CYTHON_TRACE_NOGIL && !defined(CYTHON_TRACE)
2061     #define CYTHON_TRACE 1
2062   #endif
2063 #endif
2064 #ifndef CYTHON_TRACE
2065   #define CYTHON_TRACE 0
2066 #endif
2067 #if CYTHON_TRACE
2068   #undef CYTHON_PROFILE_REUSE_FRAME
2069 #endif
2070 #ifndef CYTHON_PROFILE_REUSE_FRAME
2071   #define CYTHON_PROFILE_REUSE_FRAME 0
2072 #endif
2073 #if CYTHON_PROFILE || CYTHON_TRACE
2074   #include "compile.h"
2075   #include "frameobject.h"
2076   #include "traceback.h"
2077   #if CYTHON_PROFILE_REUSE_FRAME
2078     #define CYTHON_FRAME_MODIFIER static
2079     #define CYTHON_FRAME_DEL(frame)
2080   #else
2081     #define CYTHON_FRAME_MODIFIER
2082     #define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame)
2083   #endif
2084   #define __Pyx_TraceDeclarations\
2085   static PyCodeObject *__pyx_frame_code = NULL;\
2086   CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\
2087   int __Pyx_use_tracing = 0;
2088   #define __Pyx_TraceFrameInit(codeobj)\
2089   if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj;
2090   #ifdef WITH_THREAD
2091   #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\
2092   if (nogil) {\
2093       if (CYTHON_TRACE_NOGIL) {\
2094           PyThreadState *tstate;\
2095           PyGILState_STATE state = PyGILState_Ensure();\
2096           tstate = __Pyx_PyThreadState_Current;\
2097           if (unlikely(tstate->use_tracing) && !tstate->tracing &&\
2098                   (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\
2099               __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
2100           }\
2101           PyGILState_Release(state);\
2102           if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
2103       }\
2104   } else {\
2105       PyThreadState* tstate = PyThreadState_GET();\
2106       if (unlikely(tstate->use_tracing) && !tstate->tracing &&\
2107               (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\
2108           __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
2109           if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
2110       }\
2111   }
2112   #else
2113   #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\
2114   {   PyThreadState* tstate = PyThreadState_GET();\
2115       if (unlikely(tstate->use_tracing) && !tstate->tracing &&\
2116               (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\
2117           __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
2118           if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
2119       }\
2120   }
2121   #endif
2122   #define __Pyx_TraceException()\
2123   if (likely(!__Pyx_use_tracing)); else {\
2124       PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2125       if (tstate->use_tracing &&\
2126               (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\
2127           tstate->tracing++;\
2128           tstate->use_tracing = 0;\
2129           PyObject *exc_info = __Pyx_GetExceptionTuple(tstate);\
2130           if (exc_info) {\
2131               if (CYTHON_TRACE && tstate->c_tracefunc)\
2132                   tstate->c_tracefunc(\
2133                       tstate->c_traceobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\
2134               tstate->c_profilefunc(\
2135                   tstate->c_profileobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\
2136               Py_DECREF(exc_info);\
2137           }\
2138           tstate->use_tracing = 1;\
2139           tstate->tracing--;\
2140       }\
2141   }
2142   static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) {
2143       PyObject *type, *value, *traceback;
2144       __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
2145       tstate->tracing++;
2146       tstate->use_tracing = 0;
2147       if (CYTHON_TRACE && tstate->c_tracefunc)
2148           tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result);
2149       if (tstate->c_profilefunc)
2150           tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result);
2151       CYTHON_FRAME_DEL(frame);
2152       tstate->use_tracing = 1;
2153       tstate->tracing--;
2154       __Pyx_ErrRestoreInState(tstate, type, value, traceback);
2155   }
2156   #ifdef WITH_THREAD
2157   #define __Pyx_TraceReturn(result, nogil)\
2158   if (likely(!__Pyx_use_tracing)); else {\
2159       if (nogil) {\
2160           if (CYTHON_TRACE_NOGIL) {\
2161               PyThreadState *tstate;\
2162               PyGILState_STATE state = PyGILState_Ensure();\
2163               tstate = __Pyx_PyThreadState_Current;\
2164               if (tstate->use_tracing) {\
2165                   __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
2166               }\
2167               PyGILState_Release(state);\
2168           }\
2169       } else {\
2170           PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2171           if (tstate->use_tracing) {\
2172               __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
2173           }\
2174       }\
2175   }
2176   #else
2177   #define __Pyx_TraceReturn(result, nogil)\
2178   if (likely(!__Pyx_use_tracing)); else {\
2179       PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2180       if (tstate->use_tracing) {\
2181           __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
2182       }\
2183   }
2184   #endif
2185   static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno);
2186   static int __Pyx_TraceSetupAndCall(PyCodeObject** code, PyFrameObject** frame, PyThreadState* tstate, const char *funcname, const char *srcfile, int firstlineno);
2187 #else
2188   #define __Pyx_TraceDeclarations
2189   #define __Pyx_TraceFrameInit(codeobj)
2190   #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)   if ((1)); else goto_error;
2191   #define __Pyx_TraceException()
2192   #define __Pyx_TraceReturn(result, nogil)
2193 #endif
2194 #if CYTHON_TRACE
2195   static int __Pyx_call_line_trace_func(PyThreadState *tstate, PyFrameObject *frame, int lineno) {
2196       int ret;
2197       PyObject *type, *value, *traceback;
2198       __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
2199       __Pyx_PyFrame_SetLineNumber(frame, lineno);
2200       tstate->tracing++;
2201       tstate->use_tracing = 0;
2202       ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL);
2203       tstate->use_tracing = 1;
2204       tstate->tracing--;
2205       if (likely(!ret)) {
2206           __Pyx_ErrRestoreInState(tstate, type, value, traceback);
2207       } else {
2208           Py_XDECREF(type);
2209           Py_XDECREF(value);
2210           Py_XDECREF(traceback);
2211       }
2212       return ret;
2213   }
2214   #ifdef WITH_THREAD
2215   #define __Pyx_TraceLine(lineno, nogil, goto_error)\
2216   if (likely(!__Pyx_use_tracing)); else {\
2217       if (nogil) {\
2218           if (CYTHON_TRACE_NOGIL) {\
2219               int ret = 0;\
2220               PyThreadState *tstate;\
2221               PyGILState_STATE state = PyGILState_Ensure();\
2222               tstate = __Pyx_PyThreadState_Current;\
2223               if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\
2224                   ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
2225               }\
2226               PyGILState_Release(state);\
2227               if (unlikely(ret)) goto_error;\
2228           }\
2229       } else {\
2230           PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2231           if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\
2232               int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
2233               if (unlikely(ret)) goto_error;\
2234           }\
2235       }\
2236   }
2237   #else
2238   #define __Pyx_TraceLine(lineno, nogil, goto_error)\
2239   if (likely(!__Pyx_use_tracing)); else {\
2240       PyThreadState* tstate = __Pyx_PyThreadState_Current;\
2241       if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\
2242           int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
2243           if (unlikely(ret)) goto_error;\
2244       }\
2245   }
2246   #endif
2247 #else
2248   #define __Pyx_TraceLine(lineno, nogil, goto_error)   if ((1)); else goto_error;
2249 #endif
2250 
2251 /* PyFunctionFastCall.proto */
2252 #if CYTHON_FAST_PYCALL
2253 #define __Pyx_PyFunction_FastCall(func, args, nargs)\
2254     __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
2255 #if 1 || PY_VERSION_HEX < 0x030600B1
2256 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
2257 #else
2258 #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
2259 #endif
2260 #define __Pyx_BUILD_ASSERT_EXPR(cond)\
2261     (sizeof(char [1 - 2*!(cond)]) - 1)
2262 #ifndef Py_MEMBER_SIZE
2263 #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
2264 #endif
2265   static size_t __pyx_pyframe_localsplus_offset = 0;
2266   #include "frameobject.h"
2267   #define __Pxy_PyFrame_Initialize_Offsets()\
2268     ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
2269      (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
2270   #define __Pyx_PyFrame_GetLocalsplus(frame)\
2271     (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
2272 #endif
2273 
2274 /* PyObjectCall.proto */
2275 #if CYTHON_COMPILING_IN_CPYTHON
2276 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
2277 #else
2278 #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
2279 #endif
2280 
2281 /* PyObjectCallMethO.proto */
2282 #if CYTHON_COMPILING_IN_CPYTHON
2283 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
2284 #endif
2285 
2286 /* PyObjectCallNoArg.proto */
2287 #if CYTHON_COMPILING_IN_CPYTHON
2288 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
2289 #else
2290 #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
2291 #endif
2292 
2293 /* PyDictVersioning.proto */
2294 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
2295 #define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
2296 #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
2297 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
2298     (version_var) = __PYX_GET_DICT_VERSION(dict);\
2299     (cache_var) = (value);
2300 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
2301     static PY_UINT64_T __pyx_dict_version = 0;\
2302     static PyObject *__pyx_dict_cached_value = NULL;\
2303     if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
2304         (VAR) = __pyx_dict_cached_value;\
2305     } else {\
2306         (VAR) = __pyx_dict_cached_value = (LOOKUP);\
2307         __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
2308     }\
2309 }
2310 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
2311 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
2312 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
2313 #else
2314 #define __PYX_GET_DICT_VERSION(dict)  (0)
2315 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
2316 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
2317 #endif
2318 
2319 /* GetModuleGlobalName.proto */
2320 #if CYTHON_USE_DICT_VERSIONS
2321 #define __Pyx_GetModuleGlobalName(var, name)  {\
2322     static PY_UINT64_T __pyx_dict_version = 0;\
2323     static PyObject *__pyx_dict_cached_value = NULL;\
2324     (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
2325         (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
2326         __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
2327 }
2328 #define __Pyx_GetModuleGlobalNameUncached(var, name)  {\
2329     PY_UINT64_T __pyx_dict_version;\
2330     PyObject *__pyx_dict_cached_value;\
2331     (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
2332 }
2333 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
2334 #else
2335 #define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
2336 #define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
2337 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
2338 #endif
2339 
2340 /* PyCFunctionFastCall.proto */
2341 #if CYTHON_FAST_PYCCALL
2342 static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
2343 #else
2344 #define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
2345 #endif
2346 
2347 /* PyObjectCall2Args.proto */
2348 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);
2349 
2350 /* PyObjectCallOneArg.proto */
2351 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
2352 
2353 /* RaiseException.proto */
2354 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
2355 
2356 /* WriteUnraisableException.proto */
2357 static void __Pyx_WriteUnraisable(const char *name, int clineno,
2358                                   int lineno, const char *filename,
2359                                   int full_traceback, int nogil);
2360 
2361 /* ExtTypeTest.proto */
2362 static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
2363 
2364 /* IsLittleEndian.proto */
2365 static CYTHON_INLINE int __Pyx_Is_Little_Endian(void);
2366 
2367 /* BufferFormatCheck.proto */
2368 static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts);
2369 static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
2370                               __Pyx_BufFmt_StackElem* stack,
2371                               __Pyx_TypeInfo* type);
2372 
2373 /* BufferGetAndValidate.proto */
2374 #define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\
2375     ((obj == Py_None || obj == NULL) ?\
2376     (__Pyx_ZeroBuffer(buf), 0) :\
2377     __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack))
2378 static int  __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj,
2379     __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
2380 static void __Pyx_ZeroBuffer(Py_buffer* buf);
2381 static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info);
2382 static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 };
2383 static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
2384 
2385 /* PyObjectSetAttrStr.proto */
2386 #if CYTHON_USE_TYPE_SLOTS
2387 #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
2388 static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
2389 #else
2390 #define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
2391 #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
2392 #endif
2393 
2394 /* GetItemInt.proto */
2395 #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2396     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2397     __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
2398     (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
2399                __Pyx_GetItemInt_Generic(o, to_py_func(i))))
2400 #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2401     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2402     __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
2403     (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
2404 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
2405                                                               int wraparound, int boundscheck);
2406 #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2407     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2408     __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
2409     (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
2410 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
2411                                                               int wraparound, int boundscheck);
2412 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
2413 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
2414                                                      int is_list, int wraparound, int boundscheck);
2415 
2416 /* GetTopmostException.proto */
2417 #if CYTHON_USE_EXC_INFO_STACK
2418 static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
2419 #endif
2420 
2421 /* SaveResetException.proto */
2422 #if CYTHON_FAST_THREAD_STATE
2423 #define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
2424 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2425 #define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
2426 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2427 #else
2428 #define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
2429 #define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
2430 #endif
2431 
2432 /* GetException.proto */
2433 #if CYTHON_FAST_THREAD_STATE
2434 #define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
2435 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2436 #else
2437 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
2438 #endif
2439 
2440 /* ObjectGetItem.proto */
2441 #if CYTHON_USE_TYPE_SLOTS
2442 static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
2443 #else
2444 #define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
2445 #endif
2446 
2447 /* ListCompAppend.proto */
2448 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
2449 static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
2450     PyListObject* L = (PyListObject*) list;
2451     Py_ssize_t len = Py_SIZE(list);
2452     if (likely(L->allocated > len)) {
2453         Py_INCREF(x);
2454         PyList_SET_ITEM(list, len, x);
2455         __Pyx_SET_SIZE(list, len + 1);
2456         return 0;
2457     }
2458     return PyList_Append(list, x);
2459 }
2460 #else
2461 #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
2462 #endif
2463 
2464 /* ArgTypeTest.proto */
2465 #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
2466     ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
2467         __Pyx__ArgTypeTest(obj, type, name, exact))
2468 static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);
2469 
2470 /* PyIntCompare.proto */
2471 static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);
2472 
2473 /* PyIntBinop.proto */
2474 #if !CYTHON_COMPILING_IN_PYPY
2475 static PyObject* __Pyx_PyInt_AndObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
2476 #else
2477 #define __Pyx_PyInt_AndObjC(op1, op2, intval, inplace, zerodivision_check)\
2478     (inplace ? PyNumber_InPlaceAnd(op1, op2) : PyNumber_And(op1, op2))
2479 #endif
2480 
2481 /* PyIntCompare.proto */
2482 static CYTHON_INLINE PyObject* __Pyx_PyInt_NeObjC(PyObject *op1, PyObject *op2, long intval, long inplace);
2483 
2484 /* None.proto */
2485 static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
2486 
2487 /* PyIntFromDouble.proto */
2488 #if PY_MAJOR_VERSION < 3
2489 static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value);
2490 #else
2491 #define __Pyx_PyInt_FromDouble(value) PyLong_FromDouble(value)
2492 #endif
2493 
2494 /* DictGetItem.proto */
2495 #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
2496 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
2497 #define __Pyx_PyObject_Dict_GetItem(obj, name)\
2498     (likely(PyDict_CheckExact(obj)) ?\
2499      __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
2500 #else
2501 #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
2502 #define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
2503 #endif
2504 
2505 /* ListAppend.proto */
2506 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
2507 static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
2508     PyListObject* L = (PyListObject*) list;
2509     Py_ssize_t len = Py_SIZE(list);
2510     if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
2511         Py_INCREF(x);
2512         PyList_SET_ITEM(list, len, x);
2513         __Pyx_SET_SIZE(list, len + 1);
2514         return 0;
2515     }
2516     return PyList_Append(list, x);
2517 }
2518 #else
2519 #define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
2520 #endif
2521 
2522 /* IncludeStringH.proto */
2523 #include <string.h>
2524 
2525 /* BytesEquals.proto */
2526 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);
2527 
2528 /* UnicodeEquals.proto */
2529 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);
2530 
2531 /* StrEquals.proto */
2532 #if PY_MAJOR_VERSION >= 3
2533 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
2534 #else
2535 #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
2536 #endif
2537 
2538 /* RaiseTooManyValuesToUnpack.proto */
2539 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
2540 
2541 /* RaiseNeedMoreValuesToUnpack.proto */
2542 static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
2543 
2544 /* IterFinish.proto */
2545 static CYTHON_INLINE int __Pyx_IterFinish(void);
2546 
2547 /* UnpackItemEndCheck.proto */
2548 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);
2549 
2550 /* Import.proto */
2551 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
2552 
2553 /* ImportFrom.proto */
2554 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
2555 
2556 /* SliceObject.proto */
2557 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
2558         PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
2559         PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
2560         int has_cstart, int has_cstop, int wraparound);
2561 
2562 /* PatchModuleWithCoroutine.proto */
2563 static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);
2564 
2565 /* PatchInspect.proto */
2566 static PyObject* __Pyx_patch_inspect(PyObject* module);
2567 
2568 /* PyErrExceptionMatches.proto */
2569 #if CYTHON_FAST_THREAD_STATE
2570 #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
2571 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
2572 #else
2573 #define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
2574 #endif
2575 
2576 /* GetAttr.proto */
2577 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);
2578 
2579 /* GetAttr3.proto */
2580 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);
2581 
2582 /* HasAttr.proto */
2583 static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
2584 
2585 /* RaiseNoneIterError.proto */
2586 static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
2587 
2588 /* PyObject_GenericGetAttrNoDict.proto */
2589 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
2590 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
2591 #else
2592 #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
2593 #endif
2594 
2595 /* PyObject_GenericGetAttr.proto */
2596 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
2597 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
2598 #else
2599 #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
2600 #endif
2601 
2602 /* SetVTable.proto */
2603 static int __Pyx_SetVtable(PyObject *dict, void *vtable);
2604 
2605 /* PyObjectGetAttrStrNoError.proto */
2606 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
2607 
2608 /* SetupReduce.proto */
2609 static int __Pyx_setup_reduce(PyObject* type_obj);
2610 
2611 /* TypeImport.proto */
2612 #ifndef __PYX_HAVE_RT_ImportType_proto
2613 #define __PYX_HAVE_RT_ImportType_proto
2614 enum __Pyx_ImportType_CheckSize {
2615    __Pyx_ImportType_CheckSize_Error = 0,
2616    __Pyx_ImportType_CheckSize_Warn = 1,
2617    __Pyx_ImportType_CheckSize_Ignore = 2
2618 };
2619 static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
2620 #endif
2621 
2622 /* GetVTable.proto */
2623 static void* __Pyx_GetVtable(PyObject *dict);
2624 
2625 /* GetNameInClass.proto */
2626 #define __Pyx_GetNameInClass(var, nmspace, name)  (var) = __Pyx__GetNameInClass(nmspace, name)
2627 static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name);
2628 
2629 /* CLineInTraceback.proto */
2630 #ifdef CYTHON_CLINE_IN_TRACEBACK
2631 #define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
2632 #else
2633 static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
2634 #endif
2635 
2636 /* CodeObjectCache.proto */
2637 typedef struct {
2638     PyCodeObject* code_object;
2639     int code_line;
2640 } __Pyx_CodeObjectCacheEntry;
2641 struct __Pyx_CodeObjectCache {
2642     int count;
2643     int max_count;
2644     __Pyx_CodeObjectCacheEntry* entries;
2645 };
2646 static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
2647 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
2648 static PyCodeObject *__pyx_find_code_object(int code_line);
2649 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
2650 
2651 /* AddTraceback.proto */
2652 static void __Pyx_AddTraceback(const char *funcname, int c_line,
2653                                int py_line, const char *filename);
2654 
2655 /* BufferStructDeclare.proto */
2656 typedef struct {
2657   Py_ssize_t shape, strides, suboffsets;
2658 } __Pyx_Buf_DimInfo;
2659 typedef struct {
2660   size_t refcount;
2661   Py_buffer pybuffer;
2662 } __Pyx_Buffer;
2663 typedef struct {
2664   __Pyx_Buffer *rcbuffer;
2665   char *data;
2666   __Pyx_Buf_DimInfo diminfo[8];
2667 } __Pyx_LocalBuf_ND;
2668 
2669 #if PY_MAJOR_VERSION < 3
2670     static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags);
2671     static void __Pyx_ReleaseBuffer(Py_buffer *view);
2672 #else
2673     #define __Pyx_GetBuffer PyObject_GetBuffer
2674     #define __Pyx_ReleaseBuffer PyBuffer_Release
2675 #endif
2676 
2677 
2678 /* None.proto */
2679 static CYTHON_INLINE long __Pyx_pow_long(long, long);
2680 
2681 /* CIntToPy.proto */
2682 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
2683 
2684 /* CIntToPy.proto */
2685 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
2686 
2687 /* CIntToPy.proto */
2688 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value);
2689 
2690 /* RealImag.proto */
2691 #if CYTHON_CCOMPLEX
2692   #ifdef __cplusplus
2693     #define __Pyx_CREAL(z) ((z).real())
2694     #define __Pyx_CIMAG(z) ((z).imag())
2695   #else
2696     #define __Pyx_CREAL(z) (__real__(z))
2697     #define __Pyx_CIMAG(z) (__imag__(z))
2698   #endif
2699 #else
2700     #define __Pyx_CREAL(z) ((z).real)
2701     #define __Pyx_CIMAG(z) ((z).imag)
2702 #endif
2703 #if defined(__cplusplus) && CYTHON_CCOMPLEX\
2704         && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
2705     #define __Pyx_SET_CREAL(z,x) ((z).real(x))
2706     #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
2707 #else
2708     #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
2709     #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
2710 #endif
2711 
2712 /* Arithmetic.proto */
2713 #if CYTHON_CCOMPLEX
2714     #define __Pyx_c_eq_float(a, b)   ((a)==(b))
2715     #define __Pyx_c_sum_float(a, b)  ((a)+(b))
2716     #define __Pyx_c_diff_float(a, b) ((a)-(b))
2717     #define __Pyx_c_prod_float(a, b) ((a)*(b))
2718     #define __Pyx_c_quot_float(a, b) ((a)/(b))
2719     #define __Pyx_c_neg_float(a)     (-(a))
2720   #ifdef __cplusplus
2721     #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
2722     #define __Pyx_c_conj_float(z)    (::std::conj(z))
2723     #if 1
2724         #define __Pyx_c_abs_float(z)     (::std::abs(z))
2725         #define __Pyx_c_pow_float(a, b)  (::std::pow(a, b))
2726     #endif
2727   #else
2728     #define __Pyx_c_is_zero_float(z) ((z)==0)
2729     #define __Pyx_c_conj_float(z)    (conjf(z))
2730     #if 1
2731         #define __Pyx_c_abs_float(z)     (cabsf(z))
2732         #define __Pyx_c_pow_float(a, b)  (cpowf(a, b))
2733     #endif
2734  #endif
2735 #else
2736     static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
2737     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
2738     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
2739     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
2740     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
2741     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
2742     static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
2743     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
2744     #if 1
2745         static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
2746         static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
2747     #endif
2748 #endif
2749 
2750 /* Arithmetic.proto */
2751 #if CYTHON_CCOMPLEX
2752     #define __Pyx_c_eq_double(a, b)   ((a)==(b))
2753     #define __Pyx_c_sum_double(a, b)  ((a)+(b))
2754     #define __Pyx_c_diff_double(a, b) ((a)-(b))
2755     #define __Pyx_c_prod_double(a, b) ((a)*(b))
2756     #define __Pyx_c_quot_double(a, b) ((a)/(b))
2757     #define __Pyx_c_neg_double(a)     (-(a))
2758   #ifdef __cplusplus
2759     #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
2760     #define __Pyx_c_conj_double(z)    (::std::conj(z))
2761     #if 1
2762         #define __Pyx_c_abs_double(z)     (::std::abs(z))
2763         #define __Pyx_c_pow_double(a, b)  (::std::pow(a, b))
2764     #endif
2765   #else
2766     #define __Pyx_c_is_zero_double(z) ((z)==0)
2767     #define __Pyx_c_conj_double(z)    (conj(z))
2768     #if 1
2769         #define __Pyx_c_abs_double(z)     (cabs(z))
2770         #define __Pyx_c_pow_double(a, b)  (cpow(a, b))
2771     #endif
2772  #endif
2773 #else
2774     static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
2775     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
2776     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
2777     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
2778     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
2779     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
2780     static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
2781     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
2782     #if 1
2783         static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
2784         static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
2785     #endif
2786 #endif
2787 
2788 /* CIntToPy.proto */
2789 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value);
2790 
2791 /* CIntFromPy.proto */
2792 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
2793 
2794 /* CIntFromPy.proto */
2795 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
2796 
2797 /* CIntFromPy.proto */
2798 static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);
2799 
2800 /* CIntFromPy.proto */
2801 static CYTHON_INLINE enum IClpSimplex::Status __Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(PyObject *);
2802 
2803 /* CIntFromPy.proto */
2804 static CYTHON_INLINE Py_intptr_t __Pyx_PyInt_As_Py_intptr_t(PyObject *);
2805 
2806 /* FastTypeChecks.proto */
2807 #if CYTHON_COMPILING_IN_CPYTHON
2808 #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
2809 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
2810 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
2811 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
2812 #else
2813 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
2814 #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
2815 #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
2816 #endif
2817 #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
2818 
2819 /* CheckBinaryVersion.proto */
2820 static int __Pyx_check_binary_version(void);
2821 
2822 /* FunctionExport.proto */
2823 static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig);
2824 
2825 /* InitStrings.proto */
2826 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
2827 
2828 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setCppSelf(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, IClpSimplex *__pyx_v_s); /* proto*/
2829 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getReducedCosts(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
2830 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getStatusArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
2831 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowLower(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
2832 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowUpper(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
2833 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setVariableName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd, PyObject *__pyx_v_name, int __pyx_skip_dispatch); /* proto*/
2834 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setConstraintName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_constInd, PyObject *__pyx_v_name, int __pyx_skip_dispatch); /* proto*/
2835 static int *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_pivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
2836 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getPivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
2837 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_CLP_getVarStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_sequence, int __pyx_skip_dispatch); /* proto*/
2838 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_CLP_setVarStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_sequence, int __pyx_v_status, int __pyx_skip_dispatch); /* proto*/
2839 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalColumnSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
2840 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualColumnSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
2841 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalRowSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
2842 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualRowSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
2843 static int __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_filename, int __pyx_skip_dispatch, struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps *__pyx_optional_args); /* proto*/
2844 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setPrimalColumnPivotAlgorithm(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, void *__pyx_v_choice); /* proto*/
2845 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setDualRowPivotAlgorithm(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, void *__pyx_v_choice); /* proto*/
2846 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_filterVars(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_inds, int __pyx_skip_dispatch); /* proto*/
2847 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getACol(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_ncol, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_colArray, int __pyx_skip_dispatch); /* proto*/
2848 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_vectorTimesB_1(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_vec, int __pyx_skip_dispatch); /* proto*/
2849 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalRow(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, CYTHON_UNUSED ICoinIndexedVector *__pyx_v_rowArray, CYTHON_UNUSED ICoinIndexedVector *__pyx_v_rhsArray, CYTHON_UNUSED ICoinIndexedVector *__pyx_v_spareArray, CYTHON_UNUSED ICoinIndexedVector *__pyx_v_spareArray2, CYTHON_UNUSED int __pyx_v_valuesPass); /* proto*/
2850 static int *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_ComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
2851 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
2852 
2853 /* Module declarations from 'libc.string' */
2854 
2855 /* Module declarations from 'libc.stdio' */
2856 
2857 /* Module declarations from '__builtin__' */
2858 
2859 /* Module declarations from 'cpython.type' */
2860 static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
2861 
2862 /* Module declarations from 'cpython.version' */
2863 
2864 /* Module declarations from 'cpython.exc' */
2865 
2866 /* Module declarations from 'cpython.module' */
2867 
2868 /* Module declarations from 'cpython.mem' */
2869 
2870 /* Module declarations from 'cpython.tuple' */
2871 
2872 /* Module declarations from 'cpython.list' */
2873 
2874 /* Module declarations from 'cpython.sequence' */
2875 
2876 /* Module declarations from 'cpython.mapping' */
2877 
2878 /* Module declarations from 'cpython.iterator' */
2879 
2880 /* Module declarations from 'cpython.number' */
2881 
2882 /* Module declarations from 'cpython.int' */
2883 
2884 /* Module declarations from '__builtin__' */
2885 
2886 /* Module declarations from 'cpython.bool' */
2887 static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0;
2888 
2889 /* Module declarations from 'cpython.long' */
2890 
2891 /* Module declarations from 'cpython.float' */
2892 
2893 /* Module declarations from '__builtin__' */
2894 
2895 /* Module declarations from 'cpython.complex' */
2896 static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0;
2897 
2898 /* Module declarations from 'cpython.string' */
2899 
2900 /* Module declarations from 'cpython.unicode' */
2901 
2902 /* Module declarations from 'cpython.dict' */
2903 
2904 /* Module declarations from 'cpython.instance' */
2905 
2906 /* Module declarations from 'cpython.function' */
2907 
2908 /* Module declarations from 'cpython.method' */
2909 
2910 /* Module declarations from 'cpython.weakref' */
2911 
2912 /* Module declarations from 'cpython.getargs' */
2913 
2914 /* Module declarations from 'cpython.pythread' */
2915 
2916 /* Module declarations from 'cpython.pystate' */
2917 
2918 /* Module declarations from 'cpython.cobject' */
2919 
2920 /* Module declarations from 'cpython.oldbuffer' */
2921 
2922 /* Module declarations from 'cpython.set' */
2923 
2924 /* Module declarations from 'cpython.buffer' */
2925 
2926 /* Module declarations from 'cpython.bytes' */
2927 
2928 /* Module declarations from 'cpython.pycapsule' */
2929 
2930 /* Module declarations from 'cpython' */
2931 
2932 /* Module declarations from 'cpython.object' */
2933 
2934 /* Module declarations from 'cpython.ref' */
2935 
2936 /* Module declarations from 'cylp.cy' */
2937 
2938 /* Module declarations from 'cylp.cy.CyCoinIndexedVector' */
2939 static PyTypeObject *__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = 0;
2940 
2941 /* Module declarations from 'cylp.cy.CyClpPrimalColumnPivotBase' */
2942 static PyTypeObject *__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = 0;
2943 
2944 /* Module declarations from 'numpy' */
2945 
2946 /* Module declarations from 'numpy' */
2947 static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
2948 static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
2949 static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
2950 static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
2951 static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
2952 static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/
2953 static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/
2954 
2955 /* Module declarations from 'cylp.cy.CyClpDualRowPivotBase' */
2956 static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0;
2957 
2958 /* Module declarations from 'cylp.cy.CyCoinModel' */
2959 static PyTypeObject *__pyx_ptype_4cylp_2cy_11CyCoinModel_CyCoinModel = 0;
2960 
2961 /* Module declarations from 'cylp.cy.CyCoinPackedMatrix' */
2962 static PyTypeObject *__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix = 0;
2963 
2964 /* Module declarations from 'cylp.cy.CyCgl' */
2965 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglCutGenerator = 0;
2966 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglAllDifferent = 0;
2967 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglClique = 0;
2968 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglKnapsackCover = 0;
2969 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglOddHole = 0;
2970 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglFlowCover = 0;
2971 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglGomory = 0;
2972 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglRedSplit = 0;
2973 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglLiftAndProject = 0;
2974 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglLandP = 0;
2975 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding = 0;
2976 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2 = 0;
2977 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglTwomir = 0;
2978 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglResidualCapacity = 0;
2979 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglPreProcess = 0;
2980 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglProbing = 0;
2981 static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglSimpleRounding = 0;
2982 
2983 /* Module declarations from 'cylp.cy.CyCbcNode' */
2984 static PyTypeObject *__pyx_ptype_4cylp_2cy_9CyCbcNode_CyCbcNode = 0;
2985 
2986 /* Module declarations from 'cylp.cy.CyOsiSolverInterface' */
2987 static PyTypeObject *__pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface = 0;
2988 
2989 /* Module declarations from 'cylp.cy.CyCbcModel' */
2990 static PyTypeObject *__pyx_ptype_4cylp_2cy_10CyCbcModel_CyCbcModel = 0;
2991 
2992 /* Module declarations from 'libcpp.string' */
2993 
2994 /* Module declarations from 'libcpp.vector' */
2995 
2996 /* Module declarations from 'cylp.cy.CyWolfePivot' */
2997 static PyTypeObject *__pyx_ptype_4cylp_2cy_12CyWolfePivot_CyWolfePivot = 0;
2998 
2999 /* Module declarations from 'cylp.cy.CyPEPivot' */
3000 static PyTypeObject *__pyx_ptype_4cylp_2cy_9CyPEPivot_CyPEPivot = 0;
3001 
3002 /* Module declarations from 'cylp.cy.CyPivotPythonBase' */
3003 static PyTypeObject *__pyx_ptype_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase = 0;
3004 
3005 /* Module declarations from 'cylp.cy.CyDualPivotPythonBase' */
3006 static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase = 0;
3007 
3008 /* Module declarations from 'cylp.cy.CyCoinMpsIO' */
3009 static PyTypeObject *__pyx_ptype_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO = 0;
3010 
3011 /* Module declarations from 'cylp.cy.CyClpSimplex' */
3012 static PyTypeObject *__pyx_ptype_4cylp_2cy_12CyClpSimplex_CyClpSimplex = 0;
3013 static PyTypeObject *__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus = 0;
3014 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_cydot(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, int __pyx_skip_dispatch); /*proto*/
3015 static int __pyx_f_4cylp_2cy_12CyClpSimplex_RunIsPivotAcceptable(void *); /*proto*/
3016 static int __pyx_f_4cylp_2cy_12CyClpSimplex_RunVarSelCriteria(void *, int); /*proto*/
3017 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex___pyx_unpickle_VarStatus__set_state(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *, PyObject *); /*proto*/
3018 static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t = { "int32_t", NULL, sizeof(__pyx_t_5numpy_int32_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_int32_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_int32_t), 0 };
3019 static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_double_t = { "double_t", NULL, sizeof(__pyx_t_5numpy_double_t), { 0 }, 0, 'R', 0, 0 };
3020 static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t = { "int64_t", NULL, sizeof(__pyx_t_5numpy_int64_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_int64_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_int64_t), 0 };
3021 static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t = { "uint8_t", NULL, sizeof(__pyx_t_5numpy_uint8_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_uint8_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_uint8_t), 0 };
3022 #define __Pyx_MODULE_NAME "cylp.cy.CyClpSimplex"
3023 extern int __pyx_module_is_main_cylp__cy__CyClpSimplex;
3024 int __pyx_module_is_main_cylp__cy__CyClpSimplex = 0;
3025 
3026 /* Implementation of 'cylp.cy.CyClpSimplex' */
3027 static PyObject *__pyx_builtin_ImportError;
3028 static PyObject *__pyx_builtin_zip;
3029 static PyObject *__pyx_builtin_TypeError;
3030 static PyObject *__pyx_builtin_xrange;
3031 static PyObject *__pyx_builtin_range;
3032 static PyObject *__pyx_builtin_print;
3033 static PyObject *__pyx_builtin_open;
3034 static PyObject *__pyx_builtin_ValueError;
3035 static PyObject *__pyx_builtin_RuntimeError;
3036 static const char __pyx_k_A[] = "A";
3037 static const char __pyx_k_B[] = "B";
3038 static const char __pyx_k_D[] = "D";
3039 static const char __pyx_k_a[] = "a";
3040 static const char __pyx_k_b[] = "b";
3041 static const char __pyx_k_c[] = "c";
3042 static const char __pyx_k_f[] = "f";
3043 static const char __pyx_k_h[] = "h";
3044 static const char __pyx_k_s[] = "s";
3045 static const char __pyx_k_w[] = "w";
3046 static const char __pyx_k_x[] = "x";
3047 static const char __pyx_k_y[] = "y";
3048 static const char __pyx_k_z[] = "z";
3049 static const char __pyx_k__8[] = "";
3050 static const char __pyx_k_cl[] = "cl";
3051 static const char __pyx_k_np[] = "np";
3052 static const char __pyx_k_on[] = "on";
3053 static const char __pyx_k_os[] = "os";
3054 static const char __pyx_k_pi[] = "pi";
3055 static const char __pyx_k_v1[] = "v1";
3056 static const char __pyx_k_v2[] = "v2";
3057 static const char __pyx_k_any[] = "any";
3058 static const char __pyx_k_arg[] = "arg";
3059 static const char __pyx_k_arr[] = "arr";
3060 static const char __pyx_k_col[] = "col";
3061 static const char __pyx_k_dim[] = "dim";
3062 static const char __pyx_k_dot[] = "dot";
3063 static const char __pyx_k_end[] = "end";
3064 static const char __pyx_k_ind[] = "ind";
3065 static const char __pyx_k_max[] = "max";
3066 static const char __pyx_k_min[] = "min";
3067 static const char __pyx_k_mps[] = ".mps";
3068 static const char __pyx_k_new[] = "__new__";
3069 static const char __pyx_k_obj[] = "obj";
3070 static const char __pyx_k_qps[] = ".qps";
3071 static const char __pyx_k_row[] = "row";
3072 static const char __pyx_k_sum[] = "sum";
3073 static const char __pyx_k_val[] = "val";
3074 static const char __pyx_k_x_u[] = "x_u";
3075 static const char __pyx_k_zip[] = "zip";
3076 static const char __pyx_k_cons[] = "cons";
3077 static const char __pyx_k_copy[] = "copy";
3078 static const char __pyx_k_data[] = "data";
3079 static const char __pyx_k_dict[] = "__dict__";
3080 static const char __pyx_k_dims[] = "dims";
3081 static const char __pyx_k_free[] = "free";
3082 static const char __pyx_k_inds[] = "inds";
3083 static const char __pyx_k_izip[] = "izip";
3084 static const char __pyx_k_join[] = "join";
3085 static const char __pyx_k_keys[] = "keys";
3086 static const char __pyx_k_main[] = "__main__";
3087 static const char __pyx_k_name[] = "name";
3088 static const char __pyx_k_ncol[] = "ncol";
3089 static const char __pyx_k_open[] = "open";
3090 static const char __pyx_k_path[] = "path";
3091 static const char __pyx_k_rows[] = "rows";
3092 static const char __pyx_k_test[] = "__test__";
3093 static const char __pyx_k_var1[] = "var1";
3094 static const char __pyx_k_var2[] = "var2";
3095 static const char __pyx_k_array[] = "array";
3096 static const char __pyx_k_ascii[] = "ascii";
3097 static const char __pyx_k_basic[] = "basic";
3098 static const char __pyx_k_class[] = "__class__";
3099 static const char __pyx_k_close[] = "close";
3100 static const char __pyx_k_collb[] = "collb";
3101 static const char __pyx_k_colub[] = "colub";
3102 static const char __pyx_k_cstat[] = "cstat";
3103 static const char __pyx_k_dtype[] = "dtype";
3104 static const char __pyx_k_empty[] = "empty";
3105 static const char __pyx_k_fixed[] = "fixed";
3106 static const char __pyx_k_int32[] = "int32";
3107 static const char __pyx_k_isInt[] = "isInt";
3108 static const char __pyx_k_lower[] = "lower";
3109 static const char __pyx_k_model[] = "model";
3110 static const char __pyx_k_nCons[] = "nCons";
3111 static const char __pyx_k_nRows[] = "nRows";
3112 static const char __pyx_k_nVars[] = "nVars";
3113 static const char __pyx_k_numpy[] = "numpy";
3114 static const char __pyx_k_print[] = "print";
3115 static const char __pyx_k_range[] = "range";
3116 static const char __pyx_k_rowlb[] = "rowlb";
3117 static const char __pyx_k_rowub[] = "rowub";
3118 static const char __pyx_k_rstat[] = "rstat";
3119 static const char __pyx_k_scipy[] = "scipy";
3120 static const char __pyx_k_shape[] = "shape";
3121 static const char __pyx_k_spare[] = "spare";
3122 static const char __pyx_k_start[] = "start";
3123 static const char __pyx_k_tocoo[] = "tocoo";
3124 static const char __pyx_k_upper[] = "upper";
3125 static const char __pyx_k_w_ind[] = "w_ind";
3126 static const char __pyx_k_where[] = "where";
3127 static const char __pyx_k_which[] = "which";
3128 static const char __pyx_k_zeros[] = "zeros";
3129 static const char __pyx_k_astype[] = "astype";
3130 static const char __pyx_k_double[] = "double";
3131 static const char __pyx_k_encode[] = "encode";
3132 static const char __pyx_k_hasVar[] = "hasVar";
3133 static const char __pyx_k_ignore[] = "ignore";
3134 static const char __pyx_k_import[] = "__import__";
3135 static const char __pyx_k_indptr[] = "indptr";
3136 static const char __pyx_k_matrix[] = "matrix";
3137 static const char __pyx_k_name_2[] = "__name__";
3138 static const char __pyx_k_number[] = "number";
3139 static const char __pyx_k_parent[] = "parent";
3140 static const char __pyx_k_pickle[] = "pickle";
3141 static const char __pyx_k_pvdims[] = "pvdims";
3142 static const char __pyx_k_reduce[] = "__reduce__";
3143 static const char __pyx_k_resize[] = "resize";
3144 static const char __pyx_k_scalar[] = "scalar";
3145 static const char __pyx_k_sparse[] = "sparse";
3146 static const char __pyx_k_status[] = "status";
3147 static const char __pyx_k_update[] = "update";
3148 static const char __pyx_k_varInd[] = "varInd";
3149 static const char __pyx_k_xrange[] = "xrange";
3150 static const char __pyx_k_CyLPVar[] = "CyLPVar";
3151 static const char __pyx_k_Hessian[] = "Hessian";
3152 static const char __pyx_k_arr_ind[] = "arr_ind";
3153 static const char __pyx_k_columns[] = "columns";
3154 static const char __pyx_k_curpath[] = "curpath";
3155 static const char __pyx_k_cylp_cy[] = "cylp.cy";
3156 static const char __pyx_k_dirname[] = "dirname";
3157 static const char __pyx_k_epsilon[] = "epsilon";
3158 static const char __pyx_k_fromInd[] = "fromInd";
3159 static const char __pyx_k_getACol[] = "getACol";
3160 static const char __pyx_k_getfile[] = "getfile";
3161 static const char __pyx_k_getitem[] = "__getitem__";
3162 static const char __pyx_k_hasGaps[] = "hasGaps";
3163 static const char __pyx_k_indices[] = "indices";
3164 static const char __pyx_k_inspect[] = "inspect";
3165 static const char __pyx_k_isRange[] = "isRange";
3166 static const char __pyx_k_optimal[] = "optimal";
3167 static const char __pyx_k_os_path[] = "os.path";
3168 static const char __pyx_k_product[] = "product";
3169 static const char __pyx_k_readMps[] = "readMps";
3170 static const char __pyx_k_toarray[] = "toarray";
3171 static const char __pyx_k_varname[] = "varname";
3172 static const char __pyx_k_checkVar[] = "checkVar";
3173 static const char __pyx_k_colArray[] = "colArray";
3174 static const char __pyx_k_constInd[] = "constInd";
3175 static const char __pyx_k_decimals[] = "decimals";
3176 static const char __pyx_k_elements[] = "elements";
3177 static const char __pyx_k_fileName[] = "fileName";
3178 static const char __pyx_k_filename[] = "filename";
3179 static const char __pyx_k_getstate[] = "__getstate__";
3180 static const char __pyx_k_hasConst[] = "hasConst";
3181 static const char __pyx_k_majorDim[] = "majorDim";
3182 static const char __pyx_k_minorDim[] = "minorDim";
3183 static const char __pyx_k_mpsNames[] = "mpsNames";
3184 static const char __pyx_k_objSense[] = "objSense";
3185 static const char __pyx_k_presolve[] = "presolve";
3186 static const char __pyx_k_pyx_type[] = "__pyx_type";
3187 static const char __pyx_k_rowLower[] = "rowLower";
3188 static const char __pyx_k_rowUpper[] = "rowUpper";
3189 static const char __pyx_k_sequence[] = "sequence";
3190 static const char __pyx_k_setstate[] = "__setstate__";
3191 static const char __pyx_k_splitext[] = "splitext";
3192 static const char __pyx_k_status_2[] = "status_";
3193 static const char __pyx_k_varCoefs[] = "varCoefs";
3194 static const char __pyx_k_varIndex[] = "varIndex";
3195 static const char __pyx_k_varNames[] = "varNames";
3196 static const char __pyx_k_CyLPArray[] = "CyLPArray";
3197 static const char __pyx_k_CyLPModel[] = "CyLPModel";
3198 static const char __pyx_k_TypeError[] = "TypeError";
3199 static const char __pyx_k_VarStatus[] = "VarStatus";
3200 static const char __pyx_k_appendCol[] = "appendCol";
3201 static const char __pyx_k_appendRow[] = "appendRow";
3202 static const char __pyx_k_cyLPModel[] = "cyLPModel";
3203 static const char __pyx_k_dropNames[] = "dropNames";
3204 static const char __pyx_k_extension[] = "extension";
3205 static const char __pyx_k_itertools[] = "itertools";
3206 static const char __pyx_k_keepNames[] = "keepNames";
3207 static const char __pyx_k_objective[] = "objective";
3208 static const char __pyx_k_parentDim[] = "parentDim";
3209 static const char __pyx_k_pyx_state[] = "__pyx_state";
3210 static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
3211 static const char __pyx_k_rowStarts[] = "rowStarts";
3212 static const char __pyx_k_variables[] = "variables";
3213 static const char __pyx_k_ValueError[] = "ValueError";
3214 static const char __pyx_k_constIndex[] = "constIndex";
3215 static const char __pyx_k_coo_matrix[] = "coo_matrix";
3216 static const char __pyx_k_filterVars[] = "filterVars";
3217 static const char __pyx_k_formatType[] = "formatType";
3218 static const char __pyx_k_getBInvCol[] = "getBInvCol";
3219 static const char __pyx_k_nVariables[] = "nVariables";
3220 static const char __pyx_k_pyx_result[] = "__pyx_result";
3221 static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
3222 static const char __pyx_k_removeGaps[] = "removeGaps";
3223 static const char __pyx_k_setInteger[] = "setInteger";
3224 static const char __pyx_k_superBasic[] = "superBasic";
3225 static const char __pyx_k_ImportError[] = "ImportError";
3226 static const char __pyx_k_IntToStatus[] = "IntToStatus";
3227 static const char __pyx_k_PickleError[] = "PickleError";
3228 static const char __pyx_k_StatusToInt[] = "StatusToInt";
3229 static const char __pyx_k_addMpsNames[] = "addMpsNames";
3230 static const char __pyx_k_addVariable[] = "addVariable";
3231 static const char __pyx_k_columnLower[] = "columnLower";
3232 static const char __pyx_k_columnUpper[] = "columnUpper";
3233 static const char __pyx_k_constraints[] = "constraints";
3234 static const char __pyx_k_getBInvACol[] = "getBInvACol";
3235 static const char __pyx_k_modelObject[] = "modelObject";
3236 static const char __pyx_k_numberInRow[] = "numberInRow";
3237 static const char __pyx_k_setRowLower[] = "setRowLower";
3238 static const char __pyx_k_setRowUpper[] = "setRowUpper";
3239 static const char __pyx_k_useRowNames[] = "useRowNames";
3240 static const char __pyx_k_CyClpSimplex[] = "CyClpSimplex";
3241 static const char __pyx_k_CyLPSolution[] = "CyLPSolution";
3242 static const char __pyx_k_RuntimeError[] = "RuntimeError";
3243 static const char __pyx_k_atLowerBound[] = "atLowerBound";
3244 static const char __pyx_k_atUpperBound[] = "atUpperBound";
3245 static const char __pyx_k_columnStarts[] = "columnStarts";
3246 static const char __pyx_k_currentframe[] = "currentframe";
3247 static const char __pyx_k_elementIndex[] = "elementIndex";
3248 static const char __pyx_k_elementValue[] = "elementValue";
3249 static const char __pyx_k_getVarByName[] = "getVarByName";
3250 static const char __pyx_k_ifValuesPass[] = "ifValuesPass";
3251 static const char __pyx_k_ignoreErrors[] = "ignoreErrors";
3252 static const char __pyx_k_keepIntegers[] = "keepIntegers";
3253 static const char __pyx_k_makeMatrices[] = "makeMatrices";
3254 static const char __pyx_k_nConstraints[] = "nConstraints";
3255 static const char __pyx_k_numberAcross[] = "numberAcross";
3256 static const char __pyx_k_numberPasses[] = "numberPasses";
3257 static const char __pyx_k_numberWanted[] = "numberWanted";
3258 static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
3259 static const char __pyx_k_rowObjective[] = "rowObjective";
3260 static const char __pyx_k_sparseConcat[] = "sparseConcat";
3261 static const char __pyx_k_stringsource[] = "stringsource";
3262 static const char __pyx_k_updateStatus[] = "updateStatus";
3263 static const char __pyx_k_vectorStarts[] = "vectorStarts";
3264 static const char __pyx_k_addConstraint[] = "addConstraint";
3265 static const char __pyx_k_deleteCurrent[] = "deleteCurrent";
3266 static const char __pyx_k_getMpsExample[] = "getMpsExample";
3267 static const char __pyx_k_getStatusCode[] = "getStatusCode";
3268 static const char __pyx_k_newNumberRows[] = "newNumberRows";
3269 static const char __pyx_k_problemStatus[] = "problemStatus";
3270 static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
3271 static const char __pyx_k_regionSparse1[] = "regionSparse1";
3272 static const char __pyx_k_regionSparse2[] = "regionSparse2";
3273 static const char __pyx_k_replaceMatrix[] = "replaceMatrix";
3274 static const char __pyx_k_updatedColumn[] = "updatedColumn";
3275 static const char __pyx_k_variableNames[] = "variableNames";
3276 static const char __pyx_k_addConstraints[] = "addConstraints";
3277 static const char __pyx_k_csc_matrixPlus[] = "csc_matrixPlus";
3278 static const char __pyx_k_doRowObjective[] = "doRowObjective";
3279 static const char __pyx_k_getStatusArray[] = "getStatusArray";
3280 static const char __pyx_k_numberInColumn[] = "numberInColumn";
3281 static const char __pyx_k_removeVariable[] = "removeVariable";
3282 static const char __pyx_k_setColumnLower[] = "setColumnLower";
3283 static const char __pyx_k_setColumnUpper[] = "setColumnUpper";
3284 static const char __pyx_k_variablesLower[] = "variablesLower";
3285 static const char __pyx_k_variablesUpper[] = "variablesUpper";
3286 static const char __pyx_k_vectorTimesB_1[] = "vectorTimesB_1";
3287 static const char __pyx_k_PivotPythonBase[] = "PivotPythonBase";
3288 static const char __pyx_k_dual_infeasible[] = "dual infeasible";
3289 static const char __pyx_k_getModelExample[] = "getModelExample";
3290 static const char __pyx_k_getReducedCosts[] = "getReducedCosts";
3291 static const char __pyx_k_input_p0033_mps[] = "../input/p0033.mps";
3292 static const char __pyx_k_objectiveOffset[] = "objectiveOffset";
3293 static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
3294 static const char __pyx_k_setVariableName[] = "setVariableName";
3295 static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
3296 static const char __pyx_k_tryPlusMinusOne[] = "tryPlusMinusOne";
3297 static const char __pyx_k_CLP_getVarStatus[] = "CLP_getVarStatus";
3298 static const char __pyx_k_CLP_setVarStatus[] = "CLP_setVarStatus";
3299 static const char __pyx_k_constraintsLower[] = "constraintsLower";
3300 static const char __pyx_k_constraintsUpper[] = "constraintsUpper";
3301 static const char __pyx_k_dualWithPresolve[] = "dualWithPresolve";
3302 static const char __pyx_k_getPivotVariable[] = "getPivotVariable";
3303 static const char __pyx_k_getRightHandSide[] = "getRightHandSide";
3304 static const char __pyx_k_getVariableNames[] = "getVariableNames";
3305 static const char __pyx_k_indicesOfIndices[] = "indicesOfIndices";
3306 static const char __pyx_k_newNumberColumns[] = "newNumberColumns";
3307 static const char __pyx_k_removeConstraint[] = "removeConstraint";
3308 static const char __pyx_k_reverseVarSearch[] = "reverseVarSearch";
3309 static const char __pyx_k_setRowLowerArray[] = "setRowLowerArray";
3310 static const char __pyx_k_setRowUpperArray[] = "setRowUpperArray";
3311 static const char __pyx_k_isPivotAcceptable[] = "isPivotAcceptable";
3312 static const char __pyx_k_loadFromCyLPModel[] = "loadFromCyLPModel";
3313 static const char __pyx_k_primal_infeasible[] = "primal infeasible";
3314 static const char __pyx_k_setConstraintName[] = "setConstraintName";
3315 static const char __pyx_k_setObjectiveArray[] = "setObjectiveArray";
3316 static const char __pyx_k_No_such_variable_s[] = "No such variable: %s";
3317 static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
3318 static const char __pyx_k_extractStartFinish[] = "_extractStartFinish";
3319 static const char __pyx_k_primalWithPresolve[] = "primalWithPresolve";
3320 static const char __pyx_k_startFinishOptions[] = "startFinishOptions";
3321 static const char __pyx_k_DualPivotPythonBase[] = "DualPivotPythonBase";
3322 static const char __pyx_k_No_such_constraint_s[] = "No such constraint: %s";
3323 static const char __pyx_k_cylp_cy_CyClpSimplex[] = "cylp.cy.CyClpSimplex";
3324 static const char __pyx_k_feasibilityTolerance[] = "feasibilityTolerance";
3325 static const char __pyx_k_setColumnLowerSubset[] = "setColumnLowerSubset";
3326 static const char __pyx_k_setColumnUpperSubset[] = "setColumnUpperSubset";
3327 static const char __pyx_k_CLP_deleteConstraints[] = "CLP_deleteConstraints";
3328 static const char __pyx_k_objectiveCoefficients[] = "objectiveCoefficients";
3329 static const char __pyx_k_startFinishOptionsDic[] = "startFinishOptionsDic";
3330 static const char __pyx_k_stopped_due_to_errors[] = "stopped due to errors";
3331 static const char __pyx_k_CLP_variableStatusEnum[] = "CLP_variableStatusEnum";
3332 static const char __pyx_k_getComplementarityList[] = "getComplementarityList";
3333 static const char __pyx_k_loadQuadraticObjective[] = "loadQuadraticObjective";
3334 static const char __pyx_k_pyx_unpickle_VarStatus[] = "__pyx_unpickle_VarStatus";
3335 static const char __pyx_k_cylp_cy_CyClpSimplex_pyx[] = "cylp/cy/CyClpSimplex.pyx";
3336 static const char __pyx_k_cylp_py_utils_sparseUtil[] = "cylp.py.utils.sparseUtil";
3337 static const char __pyx_k_unrecognised_extension_s[] = "unrecognised extension %s";
3338 static const char __pyx_k_No_CyClpSimplex_cyLPModel[] = "No CyClpSimplex cyLPModel.";
3339 static const char __pyx_k_cylp_py_modeling_CyLPModel[] = "cylp.py.modeling.CyLPModel";
3340 static const char __pyx_k_CyClpSimplex_dual_line_1577[] = "CyClpSimplex.dual (line 1577)";
3341 static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous";
3342 static const char __pyx_k_setColumnLowerFirstElements[] = "setColumnLowerFirstElements";
3343 static const char __pyx_k_setColumnUpperFirstElements[] = "setColumnUpperFirstElements";
3344 static const char __pyx_k_stopped_on_iterations_or_time[] = "stopped on iterations or time";
3345 static const char __pyx_k_Run_CLP_s_initialSolve_It_does[] = "\n        Run CLP's initialSolve. It does a presolve and uses primal or dual\n        Simplex to solve a problem.\n\n        **Usage example**\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n        >>> s = CyClpSimplex()\n        >>> f = getMpsExample()\n        >>> s.readMps(f)\n        0\n        >>> s.initialSolve()\n        'optimal'\n        >>> round(s.objectiveValue, 4)\n        2520.5717\n\n        ";
3346 static const char __pyx_k_Set_the_status_of_a_constraint[] = "\n        Set the status of a constraint.\n\n        :arg arg: Specifies the constraint to change (name or index)\n        :type status: string,int\n        :arg status: 'basic', 'atUpperBound', 'atLowerBound', 'superBasic', 'fixed'\n        :type status: string\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex\n        >>> s = CyClpSimplex()\n        >>> x = s.addVariable('x', 4)\n        >>> s.addConstraint(0 <= x[0] + x[1] <= 1, 'const1')\n        >>> # Using constraint name:\n        >>> s.setConstraintStatus('const1', 'atUpperBound')\n        >>> s.getConstraintStatus('const1')\n        'atUpperBound'\n        >>> # Using constraint index directly\n        >>> s.setConstraintStatus(0, 'atLowerBound')\n        >>> s.getConstraintStatus('const1')\n        'atLowerBound'\n        ";
3347 static const char __pyx_k_cylp_py_pivots_PivotPythonBase[] = "cylp.py.pivots.PivotPythonBase";
3348 static const char __pyx_k_CyClpSimplex_initialPrimalSolve[] = "CyClpSimplex.initialPrimalSolve (line 1254)";
3349 static const char __pyx_k_No_cylpSimplex_cyLPModel_is_set[] = "No cylpSimplex.cyLPModel is set.";
3350 static const char __pyx_k_Run_CLP_s_initalPrimalSolve_The[] = "\n        Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force\n        the use of primal Simplex.\n\n        **Usage example**\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n        >>> s = CyClpSimplex()\n        >>> f = getMpsExample()\n        >>> s.readMps(f)\n        0\n        >>> s.initialPrimalSolve()\n        'optimal'\n        >>> round(s.objectiveValue, 4)\n        2520.5717\n\n        ";
3351 static const char __pyx_k_Runs_CLP_dual_simplex_Usage_Exa[] = "\n        Runs CLP dual simplex.\n\n        **Usage Example**\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n        >>> s = CyClpSimplex()\n        >>> f = getMpsExample()\n        >>> s.readMps(f)\n        0\n        >>> s.dual()\n        'optimal'\n\n        ";
3352 static const char __pyx_k_Set_the_coefficient_matrix_cons[] = "\n        Set the coefficient matrix, constraint bounds, and variable\n        bounds based on the data in *cyLPModel* which should be and object\n        of *CyLPModel* class.\n\n        This method is usually called from CyClpSimplex's constructor.\n        But in a case that the CyClpSimplex instance is created before\n        we have the CyLPModel we use this method to load the LP,\n        for example:\n\n        >>> import numpy as np\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getModelExample\n        >>>\n        >>> s = CyClpSimplex()\n        >>> model = getModelExample()\n        >>> s.loadFromCyLPModel(model)\n        >>>\n        >>> s.primal()\n        'optimal'\n        >>> sol_x = s.primalVariableSolution['x']\n        >>> (abs(sol_x -\n        ...     np.array([0.2, 2, 1.1]) ) <= 10**-6).all()\n        True\n\n        ";
3353 static const char __pyx_k_Set_the_status_of_a_variable_ar[] = "\n        Set the status of a variable.\n\n        :arg arg: Specifies the variable to change (a CyLPVar, or an index)\n        :type status: CyLPVar, int\n        :arg status: 'basic', 'atUpperBound', 'atLowerBound', 'superBasic', 'fixed'\n        :type status: string\n\n\n        Example:\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex\n        >>> s = CyClpSimplex()\n        >>> x = s.addVariable('x', 4)\n        >>> # Using CyLPVars:\n        >>> s.setVariableStatus(x[1:3], 'basic')\n        >>> s.getVariableStatus(x[1])\n        'basic'\n        >>> # Using a variable index directly\n        >>> s.setVariableStatus(1, 'atLowerBound')\n        >>> s.getVariableStatus(x[1])\n        'atLowerBound'\n\n        ";
3354 static const char __pyx_k_To_remove_a_constraint_you_must[] = "To remove a constraint you must set cylpSimplex.cyLPModel first.";
3355 static const char __pyx_k_dualPivotMethodObject_should_be[] = "dualPivotMethodObject should be of a                             class derived from DualPivotPythonBase";
3356 static const char __pyx_k_if_arg_is_an_integer_mark_varia[] = "\n        if ``arg`` is an integer: mark variable index ``arg`` as integer.\n        if ``arg`` is a :class:`CyLPVar` object: mark variable\n        ``arg`` as integer. Here is an example of the latter:\n\n        >>> import numpy as np\n        >>> from cylp.cy import CyClpSimplex\n        >>> from cylp.py.modeling.CyLPModel import CyLPModel, CyLPArray\n        >>> model = CyLPModel()\n        >>>\n        >>> x = model.addVariable('x', 3)\n        >>> y = model.addVariable('y', 2)\n        >>>\n        >>> A = np.matrix([[1., 2., 0],[1., 0, 1.]])\n        >>> B = np.matrix([[1., 0, 0], [0, 0, 1.]])\n        >>> D = np.matrix([[1., 2.],[0, 1]])\n        >>> a = CyLPArray([5, 2.5])\n        >>> b = CyLPArray([4.2, 3])\n        >>> x_u= CyLPArray([2., 3.5])\n        >>>\n        >>> model += A*x <= a\n        >>> model += 2 <= B * x + D * y <= b\n        >>> model += y >= 0\n        >>> model += 1.1 <= x[1:3] <= x_u\n        >>>\n        >>> c = CyLPArray([1., -2., 3.])\n        >>> model.objective = c * x + 2 * y.sum()\n        >>>\n        >>>\n        >>> s = CyClpSimplex(model)\n        >>> s.setInteger(x[1:3])\n        >>>\n        >>> cbcModel = s.getCbcModel()\n        >>> cbcModel.solve()\n        0\n        >>> print(cbcModel.status)\n        'solution'\n        >>>\n        >>> sol_x = cbcModel.primalVariableSolution['x']\n        >>> (abs(sol_x -\n        ...     np.array([0.5, 2, 2]) ) <= 10**-6).all()\n        True\n        >>> sol_y = cbcModel.primalVariableSolution['y']\n        >>> (abs(sol_y -\n        ...     np.array([0, 0.75]) ) <= 10**-6).all()\n        True\n\n        ";
3357 static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
3358 static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)";
3359 static const char __pyx_k_CyClpPrimalColumnPivotBase_pyx_p[] = "CyClpPrimalColumnPivotBase.pyx: pivot column should be implemented.";
3360 static const char __pyx_k_CyClpSimplex_initialDualSolve_li[] = "CyClpSimplex.initialDualSolve (line 1274)";
3361 static const char __pyx_k_CyClpSimplex_initialSolve_line_1[] = "CyClpSimplex.initialSolve (line 1233)";
3362 static const char __pyx_k_CyClpSimplex_loadFromCyLPModel_l[] = "CyClpSimplex.loadFromCyLPModel (line 1865)";
3363 static const char __pyx_k_CyClpSimplex_pyx_addColumn_Row_i[] = "CyClpSimplex.pyx:addColumn: Row index out of range (number of rows:  %d)";
3364 static const char __pyx_k_CyClpSimplex_pyx_addConstraint_C[] = "CyClpSimplex.pyx:addConstraint: Column index out of range (number of columns: %d)";
3365 static const char __pyx_k_CyClpSimplex_pyx_deleteConstrain[] = "CyClpSimplex.pyx:deleteConstraints: Constraint index out of range (number of constraints: %d)";
3366 static const char __pyx_k_CyClpSimplex_pyx_deleteVariables[] = "CyClpSimplex.pyx:deleteVariables: variable index out of range (number of variables: %d)";
3367 static const char __pyx_k_CyClpSimplex_setConstraintStatus[] = "CyClpSimplex.setConstraintStatus (line 1083)";
3368 static const char __pyx_k_CyClpSimplex_setInteger_line_167[] = "CyClpSimplex.setInteger (line 1678)";
3369 static const char __pyx_k_CyClpSimplex_setVariableStatus_l[] = "CyClpSimplex.setVariableStatus (line 1006)";
3370 static const char __pyx_k_Expected_a_CyLPModel_as_an_argum[] = "Expected a CyLPModel as an argument to cylpSimplex constructor. Got %s";
3371 static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd";
3372 static const char __pyx_k_Hessian_can_be_set_to_a_matrix_t[] = "Hessian can be set to a matrix that implements *tocoo* method";
3373 static const char __pyx_k_Incompatible_checksums_s_vs_0xd4[] = "Incompatible checksums (%s vs 0xd41d8cd = ())";
3374 static const char __pyx_k_No_write_access_for_s_or_an_inte[] = "No write access for %s or an intermediate                             directory does not exist.";
3375 static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported";
3376 static const char __pyx_k_Presolve_says_problem_infeasible[] = "Presolve says problem infeasible.";
3377 static const char __pyx_k_The_argument_of_getVarStatus_can[] = "The argument of getVarStatus can be a CyLPVar only if the object is built using a CyLPModel.";
3378 static const char __pyx_k_The_argument_of_setInteger_can_b[] = "The argument of setInteger can be a CyLPVar only if the object is built using a CyLPModel.";
3379 static const char __pyx_k_The_argument_of_setVarStatus_can[] = "The argument of setVarStatus can be a CyLPVar only if the object is built using a CyLPModel.";
3380 static const char __pyx_k_To_add_a_constraint_you_must_set[] = "To add a constraint you must set cylpSimplex.cyLPModel first.";
3381 static const char __pyx_k_To_remove_a_variable_you_must_se[] = "To remove a variable you must set cylpSimplex.cyLPModel first.";
3382 static const char __pyx_k_To_set_the_objective_function_of[] = "To set the objective function of CyClpSimplex set cylpSimplex.cyLPModel first.";
3383 static const char __pyx_k_Variables_should_have_the_same_d[] = "Variables should have the same  dimensions to be complements. Got %s: %g and %s: %g";
3384 static const char __pyx_k_coefMatrix_must_be_a_scipy_spars[] = "coefMatrix must be a scipy sparse matrix.";
3385 static const char __pyx_k_cylp_py_pivots_DualPivotPythonBa[] = "cylp.py.pivots.DualPivotPythonBase";
3386 static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous";
3387 static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
3388 static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
3389 static const char __pyx_k_pivotMethodObject_should_be_of_a[] = "pivotMethodObject should be of a                             class derived from PivotPythonBase";
3390 static const char __pyx_k_stopped_by_event_handler_virtual[] = "stopped by event handler (virtual int ClpEventHandler::event())";
3391 static const char __pyx_k_Run_CLP_s_initalPrimalSolve_The_2[] = "\n        Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force\n        the use of dual Simplex.\n\n        **Usage example**\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n        >>> s = CyClpSimplex()\n        >>> f = getMpsExample()\n        >>> s.readMps(f)\n        0\n        >>> s.initialDualSolve()\n        'optimal'\n        >>> round(s.objectiveValue, 4)\n        2520.5717\n\n        ";
3392 static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short.";
3393 static PyObject *__pyx_n_s_A;
3394 static PyObject *__pyx_n_s_B;
3395 static PyObject *__pyx_n_s_CLP_deleteConstraints;
3396 static PyObject *__pyx_n_s_CLP_getVarStatus;
3397 static PyObject *__pyx_n_s_CLP_setVarStatus;
3398 static PyObject *__pyx_n_s_CLP_variableStatusEnum;
3399 static PyObject *__pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_p;
3400 static PyObject *__pyx_n_s_CyClpSimplex;
3401 static PyObject *__pyx_kp_u_CyClpSimplex_dual_line_1577;
3402 static PyObject *__pyx_kp_u_CyClpSimplex_initialDualSolve_li;
3403 static PyObject *__pyx_kp_u_CyClpSimplex_initialPrimalSolve;
3404 static PyObject *__pyx_kp_u_CyClpSimplex_initialSolve_line_1;
3405 static PyObject *__pyx_kp_u_CyClpSimplex_loadFromCyLPModel_l;
3406 static PyObject *__pyx_kp_s_CyClpSimplex_pyx_addColumn_Row_i;
3407 static PyObject *__pyx_kp_s_CyClpSimplex_pyx_addConstraint_C;
3408 static PyObject *__pyx_kp_s_CyClpSimplex_pyx_deleteConstrain;
3409 static PyObject *__pyx_kp_s_CyClpSimplex_pyx_deleteVariables;
3410 static PyObject *__pyx_kp_u_CyClpSimplex_setConstraintStatus;
3411 static PyObject *__pyx_kp_u_CyClpSimplex_setInteger_line_167;
3412 static PyObject *__pyx_kp_u_CyClpSimplex_setVariableStatus_l;
3413 static PyObject *__pyx_n_s_CyLPArray;
3414 static PyObject *__pyx_n_s_CyLPModel;
3415 static PyObject *__pyx_n_s_CyLPSolution;
3416 static PyObject *__pyx_n_s_CyLPVar;
3417 static PyObject *__pyx_n_s_D;
3418 static PyObject *__pyx_n_s_DualPivotPythonBase;
3419 static PyObject *__pyx_kp_s_Expected_a_CyLPModel_as_an_argum;
3420 static PyObject *__pyx_kp_u_Format_string_allocated_too_shor;
3421 static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2;
3422 static PyObject *__pyx_n_s_Hessian;
3423 static PyObject *__pyx_kp_s_Hessian_can_be_set_to_a_matrix_t;
3424 static PyObject *__pyx_n_s_ImportError;
3425 static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xd4;
3426 static PyObject *__pyx_n_s_IntToStatus;
3427 static PyObject *__pyx_kp_s_No_CyClpSimplex_cyLPModel;
3428 static PyObject *__pyx_kp_s_No_cylpSimplex_cyLPModel_is_set;
3429 static PyObject *__pyx_kp_s_No_such_constraint_s;
3430 static PyObject *__pyx_kp_s_No_such_variable_s;
3431 static PyObject *__pyx_kp_s_No_write_access_for_s_or_an_inte;
3432 static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor;
3433 static PyObject *__pyx_n_s_PickleError;
3434 static PyObject *__pyx_n_s_PivotPythonBase;
3435 static PyObject *__pyx_kp_s_Presolve_says_problem_infeasible;
3436 static PyObject *__pyx_kp_u_Run_CLP_s_initalPrimalSolve_The;
3437 static PyObject *__pyx_kp_u_Run_CLP_s_initalPrimalSolve_The_2;
3438 static PyObject *__pyx_kp_u_Run_CLP_s_initialSolve_It_does;
3439 static PyObject *__pyx_kp_u_Runs_CLP_dual_simplex_Usage_Exa;
3440 static PyObject *__pyx_n_s_RuntimeError;
3441 static PyObject *__pyx_kp_u_Set_the_coefficient_matrix_cons;
3442 static PyObject *__pyx_kp_u_Set_the_status_of_a_constraint;
3443 static PyObject *__pyx_kp_u_Set_the_status_of_a_variable_ar;
3444 static PyObject *__pyx_n_s_StatusToInt;
3445 static PyObject *__pyx_kp_s_The_argument_of_getVarStatus_can;
3446 static PyObject *__pyx_kp_s_The_argument_of_setInteger_can_b;
3447 static PyObject *__pyx_kp_s_The_argument_of_setVarStatus_can;
3448 static PyObject *__pyx_kp_s_To_add_a_constraint_you_must_set;
3449 static PyObject *__pyx_kp_s_To_remove_a_constraint_you_must;
3450 static PyObject *__pyx_kp_s_To_remove_a_variable_you_must_se;
3451 static PyObject *__pyx_kp_s_To_set_the_objective_function_of;
3452 static PyObject *__pyx_n_s_TypeError;
3453 static PyObject *__pyx_n_s_ValueError;
3454 static PyObject *__pyx_n_s_VarStatus;
3455 static PyObject *__pyx_kp_s_Variables_should_have_the_same_d;
3456 static PyObject *__pyx_kp_s__8;
3457 static PyObject *__pyx_n_s_a;
3458 static PyObject *__pyx_n_s_addConstraint;
3459 static PyObject *__pyx_n_s_addConstraints;
3460 static PyObject *__pyx_n_s_addMpsNames;
3461 static PyObject *__pyx_n_s_addVariable;
3462 static PyObject *__pyx_n_s_any;
3463 static PyObject *__pyx_n_s_appendCol;
3464 static PyObject *__pyx_n_s_appendRow;
3465 static PyObject *__pyx_n_s_arg;
3466 static PyObject *__pyx_n_s_arr;
3467 static PyObject *__pyx_n_s_arr_ind;
3468 static PyObject *__pyx_n_s_array;
3469 static PyObject *__pyx_n_s_ascii;
3470 static PyObject *__pyx_n_s_astype;
3471 static PyObject *__pyx_n_s_atLowerBound;
3472 static PyObject *__pyx_n_s_atUpperBound;
3473 static PyObject *__pyx_n_s_b;
3474 static PyObject *__pyx_n_s_basic;
3475 static PyObject *__pyx_n_s_c;
3476 static PyObject *__pyx_n_s_checkVar;
3477 static PyObject *__pyx_n_s_cl;
3478 static PyObject *__pyx_n_s_class;
3479 static PyObject *__pyx_n_s_cline_in_traceback;
3480 static PyObject *__pyx_n_s_close;
3481 static PyObject *__pyx_kp_s_coefMatrix_must_be_a_scipy_spars;
3482 static PyObject *__pyx_n_s_col;
3483 static PyObject *__pyx_n_s_colArray;
3484 static PyObject *__pyx_n_s_collb;
3485 static PyObject *__pyx_n_s_colub;
3486 static PyObject *__pyx_n_s_columnLower;
3487 static PyObject *__pyx_n_s_columnStarts;
3488 static PyObject *__pyx_n_s_columnUpper;
3489 static PyObject *__pyx_n_s_columns;
3490 static PyObject *__pyx_n_s_cons;
3491 static PyObject *__pyx_n_s_constInd;
3492 static PyObject *__pyx_n_s_constIndex;
3493 static PyObject *__pyx_n_s_constraints;
3494 static PyObject *__pyx_n_s_constraintsLower;
3495 static PyObject *__pyx_n_s_constraintsUpper;
3496 static PyObject *__pyx_n_s_coo_matrix;
3497 static PyObject *__pyx_n_s_copy;
3498 static PyObject *__pyx_n_s_csc_matrixPlus;
3499 static PyObject *__pyx_n_s_cstat;
3500 static PyObject *__pyx_n_s_curpath;
3501 static PyObject *__pyx_n_s_currentframe;
3502 static PyObject *__pyx_n_s_cyLPModel;
3503 static PyObject *__pyx_n_s_cylp_cy;
3504 static PyObject *__pyx_n_s_cylp_cy_CyClpSimplex;
3505 static PyObject *__pyx_kp_s_cylp_cy_CyClpSimplex_pyx;
3506 static PyObject *__pyx_n_s_cylp_py_modeling_CyLPModel;
3507 static PyObject *__pyx_n_s_cylp_py_pivots_DualPivotPythonBa;
3508 static PyObject *__pyx_n_s_cylp_py_pivots_PivotPythonBase;
3509 static PyObject *__pyx_n_s_cylp_py_utils_sparseUtil;
3510 static PyObject *__pyx_n_s_data;
3511 static PyObject *__pyx_n_s_decimals;
3512 static PyObject *__pyx_n_s_deleteCurrent;
3513 static PyObject *__pyx_n_s_dict;
3514 static PyObject *__pyx_n_s_dim;
3515 static PyObject *__pyx_n_s_dims;
3516 static PyObject *__pyx_n_s_dirname;
3517 static PyObject *__pyx_n_s_doRowObjective;
3518 static PyObject *__pyx_n_s_dot;
3519 static PyObject *__pyx_n_s_double;
3520 static PyObject *__pyx_n_s_dropNames;
3521 static PyObject *__pyx_n_s_dtype;
3522 static PyObject *__pyx_kp_s_dualPivotMethodObject_should_be;
3523 static PyObject *__pyx_n_s_dualWithPresolve;
3524 static PyObject *__pyx_kp_s_dual_infeasible;
3525 static PyObject *__pyx_n_s_elementIndex;
3526 static PyObject *__pyx_n_s_elementValue;
3527 static PyObject *__pyx_n_s_elements;
3528 static PyObject *__pyx_n_s_empty;
3529 static PyObject *__pyx_n_s_encode;
3530 static PyObject *__pyx_n_s_end;
3531 static PyObject *__pyx_n_s_epsilon;
3532 static PyObject *__pyx_n_s_extension;
3533 static PyObject *__pyx_n_s_extractStartFinish;
3534 static PyObject *__pyx_n_s_f;
3535 static PyObject *__pyx_n_s_feasibilityTolerance;
3536 static PyObject *__pyx_n_s_fileName;
3537 static PyObject *__pyx_n_s_filename;
3538 static PyObject *__pyx_n_s_filterVars;
3539 static PyObject *__pyx_n_s_fixed;
3540 static PyObject *__pyx_n_s_formatType;
3541 static PyObject *__pyx_n_s_free;
3542 static PyObject *__pyx_n_s_fromInd;
3543 static PyObject *__pyx_n_s_getACol;
3544 static PyObject *__pyx_n_s_getBInvACol;
3545 static PyObject *__pyx_n_s_getBInvCol;
3546 static PyObject *__pyx_n_s_getComplementarityList;
3547 static PyObject *__pyx_n_s_getModelExample;
3548 static PyObject *__pyx_n_s_getMpsExample;
3549 static PyObject *__pyx_n_s_getPivotVariable;
3550 static PyObject *__pyx_n_s_getReducedCosts;
3551 static PyObject *__pyx_n_s_getRightHandSide;
3552 static PyObject *__pyx_n_s_getStatusArray;
3553 static PyObject *__pyx_n_s_getStatusCode;
3554 static PyObject *__pyx_n_s_getVarByName;
3555 static PyObject *__pyx_n_s_getVariableNames;
3556 static PyObject *__pyx_n_s_getfile;
3557 static PyObject *__pyx_n_s_getitem;
3558 static PyObject *__pyx_n_s_getstate;
3559 static PyObject *__pyx_n_s_h;
3560 static PyObject *__pyx_n_s_hasConst;
3561 static PyObject *__pyx_n_s_hasGaps;
3562 static PyObject *__pyx_n_s_hasVar;
3563 static PyObject *__pyx_n_s_ifValuesPass;
3564 static PyObject *__pyx_kp_u_if_arg_is_an_integer_mark_varia;
3565 static PyObject *__pyx_n_s_ignore;
3566 static PyObject *__pyx_n_s_ignoreErrors;
3567 static PyObject *__pyx_n_s_import;
3568 static PyObject *__pyx_n_s_ind;
3569 static PyObject *__pyx_n_s_indices;
3570 static PyObject *__pyx_n_s_indicesOfIndices;
3571 static PyObject *__pyx_n_s_indptr;
3572 static PyObject *__pyx_n_s_inds;
3573 static PyObject *__pyx_kp_s_input_p0033_mps;
3574 static PyObject *__pyx_n_s_inspect;
3575 static PyObject *__pyx_n_s_int32;
3576 static PyObject *__pyx_n_s_isInt;
3577 static PyObject *__pyx_n_s_isPivotAcceptable;
3578 static PyObject *__pyx_n_s_isRange;
3579 static PyObject *__pyx_n_s_itertools;
3580 static PyObject *__pyx_n_s_izip;
3581 static PyObject *__pyx_n_s_join;
3582 static PyObject *__pyx_n_s_keepIntegers;
3583 static PyObject *__pyx_n_s_keepNames;
3584 static PyObject *__pyx_n_s_keys;
3585 static PyObject *__pyx_n_s_loadFromCyLPModel;
3586 static PyObject *__pyx_n_s_loadQuadraticObjective;
3587 static PyObject *__pyx_n_s_lower;
3588 static PyObject *__pyx_n_s_main;
3589 static PyObject *__pyx_n_s_majorDim;
3590 static PyObject *__pyx_n_s_makeMatrices;
3591 static PyObject *__pyx_n_s_matrix;
3592 static PyObject *__pyx_n_s_max;
3593 static PyObject *__pyx_n_s_min;
3594 static PyObject *__pyx_n_s_minorDim;
3595 static PyObject *__pyx_n_s_model;
3596 static PyObject *__pyx_n_s_modelObject;
3597 static PyObject *__pyx_kp_b_mps;
3598 static PyObject *__pyx_n_s_mpsNames;
3599 static PyObject *__pyx_n_s_nCons;
3600 static PyObject *__pyx_n_s_nConstraints;
3601 static PyObject *__pyx_n_s_nRows;
3602 static PyObject *__pyx_n_s_nVariables;
3603 static PyObject *__pyx_n_s_nVars;
3604 static PyObject *__pyx_n_s_name;
3605 static PyObject *__pyx_n_s_name_2;
3606 static PyObject *__pyx_n_s_ncol;
3607 static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous;
3608 static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou;
3609 static PyObject *__pyx_n_s_new;
3610 static PyObject *__pyx_n_s_newNumberColumns;
3611 static PyObject *__pyx_n_s_newNumberRows;
3612 static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
3613 static PyObject *__pyx_n_s_np;
3614 static PyObject *__pyx_n_s_number;
3615 static PyObject *__pyx_n_s_numberAcross;
3616 static PyObject *__pyx_n_s_numberInColumn;
3617 static PyObject *__pyx_n_s_numberInRow;
3618 static PyObject *__pyx_n_s_numberPasses;
3619 static PyObject *__pyx_n_s_numberWanted;
3620 static PyObject *__pyx_n_s_numpy;
3621 static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to;
3622 static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor;
3623 static PyObject *__pyx_n_s_obj;
3624 static PyObject *__pyx_n_s_objSense;
3625 static PyObject *__pyx_n_s_objective;
3626 static PyObject *__pyx_n_s_objectiveCoefficients;
3627 static PyObject *__pyx_n_s_objectiveOffset;
3628 static PyObject *__pyx_n_s_on;
3629 static PyObject *__pyx_n_s_open;
3630 static PyObject *__pyx_n_s_optimal;
3631 static PyObject *__pyx_n_s_os;
3632 static PyObject *__pyx_n_s_os_path;
3633 static PyObject *__pyx_n_s_parent;
3634 static PyObject *__pyx_n_s_parentDim;
3635 static PyObject *__pyx_n_s_path;
3636 static PyObject *__pyx_n_s_pi;
3637 static PyObject *__pyx_n_s_pickle;
3638 static PyObject *__pyx_kp_s_pivotMethodObject_should_be_of_a;
3639 static PyObject *__pyx_n_s_presolve;
3640 static PyObject *__pyx_n_s_primalWithPresolve;
3641 static PyObject *__pyx_kp_s_primal_infeasible;
3642 static PyObject *__pyx_n_s_print;
3643 static PyObject *__pyx_n_s_problemStatus;
3644 static PyObject *__pyx_n_s_product;
3645 static PyObject *__pyx_n_s_pvdims;
3646 static PyObject *__pyx_n_s_pyx_PickleError;
3647 static PyObject *__pyx_n_s_pyx_checksum;
3648 static PyObject *__pyx_n_s_pyx_result;
3649 static PyObject *__pyx_n_s_pyx_state;
3650 static PyObject *__pyx_n_s_pyx_type;
3651 static PyObject *__pyx_n_s_pyx_unpickle_VarStatus;
3652 static PyObject *__pyx_n_s_pyx_vtable;
3653 static PyObject *__pyx_kp_b_qps;
3654 static PyObject *__pyx_n_s_range;
3655 static PyObject *__pyx_n_s_readMps;
3656 static PyObject *__pyx_n_s_reduce;
3657 static PyObject *__pyx_n_s_reduce_cython;
3658 static PyObject *__pyx_n_s_reduce_ex;
3659 static PyObject *__pyx_n_s_regionSparse1;
3660 static PyObject *__pyx_n_s_regionSparse2;
3661 static PyObject *__pyx_n_s_removeConstraint;
3662 static PyObject *__pyx_n_s_removeGaps;
3663 static PyObject *__pyx_n_s_removeVariable;
3664 static PyObject *__pyx_n_s_replaceMatrix;
3665 static PyObject *__pyx_n_s_resize;
3666 static PyObject *__pyx_n_s_reverseVarSearch;
3667 static PyObject *__pyx_n_s_row;
3668 static PyObject *__pyx_n_s_rowLower;
3669 static PyObject *__pyx_n_s_rowObjective;
3670 static PyObject *__pyx_n_s_rowStarts;
3671 static PyObject *__pyx_n_s_rowUpper;
3672 static PyObject *__pyx_n_s_rowlb;
3673 static PyObject *__pyx_n_s_rows;
3674 static PyObject *__pyx_n_s_rowub;
3675 static PyObject *__pyx_n_s_rstat;
3676 static PyObject *__pyx_n_s_s;
3677 static PyObject *__pyx_n_s_scalar;
3678 static PyObject *__pyx_n_s_scipy;
3679 static PyObject *__pyx_n_s_sequence;
3680 static PyObject *__pyx_n_s_setColumnLower;
3681 static PyObject *__pyx_n_s_setColumnLowerFirstElements;
3682 static PyObject *__pyx_n_s_setColumnLowerSubset;
3683 static PyObject *__pyx_n_s_setColumnUpper;
3684 static PyObject *__pyx_n_s_setColumnUpperFirstElements;
3685 static PyObject *__pyx_n_s_setColumnUpperSubset;
3686 static PyObject *__pyx_n_s_setConstraintName;
3687 static PyObject *__pyx_n_s_setInteger;
3688 static PyObject *__pyx_n_s_setObjectiveArray;
3689 static PyObject *__pyx_n_s_setRowLower;
3690 static PyObject *__pyx_n_s_setRowLowerArray;
3691 static PyObject *__pyx_n_s_setRowUpper;
3692 static PyObject *__pyx_n_s_setRowUpperArray;
3693 static PyObject *__pyx_n_s_setVariableName;
3694 static PyObject *__pyx_n_s_setstate;
3695 static PyObject *__pyx_n_s_setstate_cython;
3696 static PyObject *__pyx_n_s_shape;
3697 static PyObject *__pyx_n_s_spare;
3698 static PyObject *__pyx_n_s_sparse;
3699 static PyObject *__pyx_n_s_sparseConcat;
3700 static PyObject *__pyx_n_s_splitext;
3701 static PyObject *__pyx_n_s_start;
3702 static PyObject *__pyx_n_s_startFinishOptions;
3703 static PyObject *__pyx_n_s_startFinishOptionsDic;
3704 static PyObject *__pyx_n_s_status;
3705 static PyObject *__pyx_n_s_status_2;
3706 static PyObject *__pyx_kp_s_stopped_by_event_handler_virtual;
3707 static PyObject *__pyx_kp_s_stopped_due_to_errors;
3708 static PyObject *__pyx_kp_s_stopped_on_iterations_or_time;
3709 static PyObject *__pyx_kp_s_stringsource;
3710 static PyObject *__pyx_n_s_sum;
3711 static PyObject *__pyx_n_s_superBasic;
3712 static PyObject *__pyx_n_s_test;
3713 static PyObject *__pyx_n_s_toarray;
3714 static PyObject *__pyx_n_s_tocoo;
3715 static PyObject *__pyx_n_s_tryPlusMinusOne;
3716 static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd;
3717 static PyObject *__pyx_kp_s_unrecognised_extension_s;
3718 static PyObject *__pyx_n_s_update;
3719 static PyObject *__pyx_n_s_updateStatus;
3720 static PyObject *__pyx_n_s_updatedColumn;
3721 static PyObject *__pyx_n_s_upper;
3722 static PyObject *__pyx_n_s_useRowNames;
3723 static PyObject *__pyx_n_s_v1;
3724 static PyObject *__pyx_n_s_v2;
3725 static PyObject *__pyx_n_s_val;
3726 static PyObject *__pyx_n_s_var1;
3727 static PyObject *__pyx_n_s_var2;
3728 static PyObject *__pyx_n_s_varCoefs;
3729 static PyObject *__pyx_n_s_varInd;
3730 static PyObject *__pyx_n_s_varIndex;
3731 static PyObject *__pyx_n_s_varNames;
3732 static PyObject *__pyx_n_s_variableNames;
3733 static PyObject *__pyx_n_s_variables;
3734 static PyObject *__pyx_n_s_variablesLower;
3735 static PyObject *__pyx_n_s_variablesUpper;
3736 static PyObject *__pyx_n_s_varname;
3737 static PyObject *__pyx_n_s_vectorStarts;
3738 static PyObject *__pyx_n_s_vectorTimesB_1;
3739 static PyObject *__pyx_n_s_w;
3740 static PyObject *__pyx_n_s_w_ind;
3741 static PyObject *__pyx_n_s_where;
3742 static PyObject *__pyx_n_s_which;
3743 static PyObject *__pyx_n_s_x;
3744 static PyObject *__pyx_n_s_x_u;
3745 static PyObject *__pyx_n_s_xrange;
3746 static PyObject *__pyx_n_s_y;
3747 static PyObject *__pyx_n_s_z;
3748 static PyObject *__pyx_n_s_zeros;
3749 static PyObject *__pyx_n_s_zip;
3750 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex___cinit__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyLPModel); /* proto */
3751 static void __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_2__dealloc__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3752 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3753 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3754 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3755 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3756 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective___set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
3757 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_2__get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3758 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients___set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_coef); /* proto */
3759 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_2__get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3760 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3761 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3762 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3763 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3764 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3765 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3766 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_sparseMatrix); /* proto */
3767 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3768 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyCoinPackedMatrix); /* proto */
3769 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3770 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3771 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3772 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3773 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3774 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3775 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3776 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3777 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3778 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3779 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3780 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3781 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rc); /* proto */
3782 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3783 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3784 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
3785 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3786 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_upperArray); /* proto */
3787 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3788 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_lowerArray); /* proto */
3789 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3790 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_upperArray); /* proto */
3791 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3792 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_lowerArray); /* proto */
3793 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3794 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3795 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3796 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3797 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3798 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3799 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3800 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3801 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3802 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3803 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3804 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3805 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3806 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3807 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3808 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3809 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3810 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3811 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3812 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3813 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3814 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3815 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3816 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3817 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_mat); /* proto */
3818 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3819 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
3820 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3821 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
3822 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3823 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
3824 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3825 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
3826 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3827 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
3828 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3829 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */
3830 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3831 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
3832 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3833 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3834 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
3835 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8getRightHandSide(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rhs); /* proto */
3836 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10getStatusCode(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3837 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12getStatusString(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3838 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14setColumnLower(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind, PyObject *__pyx_v_val); /* proto */
3839 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16setColumnUpper(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind, PyObject *__pyx_v_val); /* proto */
3840 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18setRowLower(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind, PyObject *__pyx_v_val); /* proto */
3841 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20setRowUpper(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind, PyObject *__pyx_v_val); /* proto */
3842 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22useCustomPrimal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_customPrimal); /* proto */
3843 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24getUseCustomPrimal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3844 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_26flagged(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd); /* proto */
3845 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd); /* proto */
3846 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3847 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_32pivotRow(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3848 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_34setPivotRow(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_v); /* proto */
3849 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_36sequenceIn(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3850 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_38setSequenceIn(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_v); /* proto */
3851 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_40getVariableNames(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3852 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_42setVariableName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd, PyObject *__pyx_v_name); /* proto */
3853 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_44setConstraintName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_constInd, PyObject *__pyx_v_name); /* proto */
3854 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_46getPivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3855 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_48CLP_getVarStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_sequence); /* proto */
3856 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_50CLP_setVarStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_sequence, int __pyx_v_status); /* proto */
3857 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_52setVariableStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg, PyObject *__pyx_v_status); /* proto */
3858 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg); /* proto */
3859 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_56setConstraintStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg, PyObject *__pyx_v_status); /* proto */
3860 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg); /* proto */
3861 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_60setColumnUpperArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnUpper); /* proto */
3862 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_62setColumnUpperFirstElements(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnUpper); /* proto */
3863 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_64setColumnLowerArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnLower); /* proto */
3864 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_66setColumnLowerFirstElements(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnLower); /* proto */
3865 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_68setColumnLowerSubset(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_indicesOfIndices, PyArrayObject *__pyx_v_indices, PyArrayObject *__pyx_v_columnLower); /* proto */
3866 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_70setColumnUpperSubset(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_indicesOfIndices, PyArrayObject *__pyx_v_indices, PyArrayObject *__pyx_v_columnUpper); /* proto */
3867 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rowUpper); /* proto */
3868 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rowLower); /* proto */
3869 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_objective); /* proto */
3870 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3871 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_80initialSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_presolve); /* proto */
3872 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_82initialPrimalSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3873 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_84initialDualSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3874 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_86__iadd__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cons); /* proto */
3875 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_88addConstraint(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cons, PyObject *__pyx_v_name, PyObject *__pyx_v_addMpsNames); /* proto */
3876 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
3877 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_92addVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varname, PyObject *__pyx_v_dim, PyObject *__pyx_v_isInt); /* proto */
3878 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
3879 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
3880 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind); /* proto */
3881 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_100CLP_addConstraint(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_numberInRow, PyArrayObject *__pyx_v_columns, PyArrayObject *__pyx_v_elements, PyObject *__pyx_v_rowLower, PyObject *__pyx_v_rowUpper); /* proto */
3882 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_102CLP_deleteConstraints(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_which); /* proto */
3883 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_104CLP_deleteVariables(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_which); /* proto */
3884 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_106CLP_addVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_numberInColumn, PyArrayObject *__pyx_v_rows, PyArrayObject *__pyx_v_elements, PyObject *__pyx_v_columnLower, PyObject *__pyx_v_columnUpper, PyObject *__pyx_v_objective); /* proto */
3885 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_108addVariables(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_number, PyArrayObject *__pyx_v_columnLower, PyArrayObject *__pyx_v_columnUpper, PyArrayObject *__pyx_v_objective, PyArrayObject *__pyx_v_columnStarts, PyArrayObject *__pyx_v_rows, PyArrayObject *__pyx_v_elements); /* proto */
3886 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_110addConstraints(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_number, PyArrayObject *__pyx_v_rowLower, PyArrayObject *__pyx_v_rowUpper, PyArrayObject *__pyx_v_rowStarts, PyArrayObject *__pyx_v_columns, PyArrayObject *__pyx_v_elements); /* proto */
3887 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_112readMps(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_filename, int __pyx_v_keepNames, int __pyx_v_ignoreErrors); /* proto */
3888 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_114extractCyLPModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_fileName, PyObject *__pyx_v_keepNames, PyObject *__pyx_v_ignoreErrors); /* proto */
3889 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_116_extractStartFinish(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_startFinishOptions); /* proto */
3890 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_118primal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ifValuesPass, PyObject *__pyx_v_startFinishOptions, PyObject *__pyx_v_presolve); /* proto */
3891 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_120dual(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ifValuesPass, PyObject *__pyx_v_startFinishOptions, PyObject *__pyx_v_presolve); /* proto */
3892 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
3893 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_124resize(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_newNumberRows, PyObject *__pyx_v_newNumberColumns); /* proto */
3894 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_126getBInvACol(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_col, PyArrayObject *__pyx_v_cl); /* proto */
3895 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_128getBInvCol(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_col, PyArrayObject *__pyx_v_cl); /* proto */
3896 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_130transposeTimes(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_scalar, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_x, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_y, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_z); /* proto */
3897 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_132transposeTimesSubset(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_number, PyArrayObject *__pyx_v_which, PyArrayObject *__pyx_v_pi, PyArrayObject *__pyx_v_y); /* proto */
3898 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_134transposeTimesSubsetAll(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_which, PyArrayObject *__pyx_v_pi, PyArrayObject *__pyx_v_y); /* proto */
3899 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_136isInteger(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind); /* proto */
3900 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_138setInteger(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg); /* proto */
3901 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_140copyInIntegerInformation(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_colType); /* proto */
3902 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_142replaceMatrix(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix, PyObject *__pyx_v_deleteCurrent); /* proto */
3903 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_144loadQuadraticObjective(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix); /* proto */
3904 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_146preSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_feasibilityTolerance, PyObject *__pyx_v_keepIntegers, PyObject *__pyx_v_numberPasses, PyObject *__pyx_v_dropNames, PyObject *__pyx_v_doRowObjective); /* proto */
3905 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_updateStatus); /* proto */
3906 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_150dualWithPresolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_feasibilityTolerance, PyObject *__pyx_v_keepIntegers, PyObject *__pyx_v_numberPasses, PyObject *__pyx_v_dropNames, PyObject *__pyx_v_doRowObjective); /* proto */
3907 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_152primalWithPresolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_feasibilityTolerance, PyObject *__pyx_v_keepIntegers, PyObject *__pyx_v_numberPasses, PyObject *__pyx_v_dropNames, PyObject *__pyx_v_doRowObjective); /* proto */
3908 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_154writeMps(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_formatType, PyObject *__pyx_v_numberAcross, PyObject *__pyx_v_objSense); /* proto */
3909 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_156writeLp(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_extension, PyObject *__pyx_v_epsilon, PyObject *__pyx_v_numberAcross, PyObject *__pyx_v_decimals, PyObject *__pyx_v_objSense, PyObject *__pyx_v_useRowNames); /* proto */
3910 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_158readLp(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, char *__pyx_v_filename, PyObject *__pyx_v_epsilon); /* proto */
3911 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_160updateColumnFT(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_spare, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_updatedColumn); /* proto */
3912 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_162updateColumnTranspose(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_regionSparse1, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_regionSparse2); /* proto */
3913 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_164loadFromCyLPModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyLPModel); /* proto */
3914 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_x0); /* proto */
3915 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_x0); /* proto */
3916 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_170getCbcModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3917 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3918 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_i); /* proto */
3919 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_176setPrimalColumnPivotAlgorithmToWolfe(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3920 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_178setPrimalColumnPivotAlgorithmToPE(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3921 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_180setPivotMethod(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_pivotMethodObject); /* proto */
3922 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_182setDualPivotMethod(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_dualPivotMethodObject); /* proto */
3923 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_inds); /* proto */
3924 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_186setObjectiveCoefficient(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_elementIndex, PyObject *__pyx_v_elementValue); /* proto */
3925 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_188partialPricing(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_end, PyArrayObject *__pyx_v_numberWanted); /* proto */
3926 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_cl); /* proto */
3927 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_192getACol(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_ncol, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_colArray); /* proto */
3928 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_194vectorTimesB_1(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_vec); /* proto */
3929 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_196argWeightedMax(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arr, PyObject *__pyx_v_arr_ind, PyObject *__pyx_v_w, PyObject *__pyx_v_w_ind); /* proto */
3930 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3931 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_200setComplement(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_var1, PyObject *__pyx_v_var2); /* proto */
3932 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_202loadProblemFromCyCoinModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_v_modelObject, int __pyx_v_tryPlusMinusOne); /* proto */
3933 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_204loadProblem(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix, PyArrayObject *__pyx_v_collb, PyArrayObject *__pyx_v_colub, PyArrayObject *__pyx_v_obj, PyArrayObject *__pyx_v_rowlb, PyArrayObject *__pyx_v_rowub, PyArrayObject *__pyx_v_rowObjective); /* proto */
3934 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3935 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_208setBasisStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_cstat, PyArrayObject *__pyx_v_rstat); /* proto */
3936 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3937 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
3938 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_214__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
3939 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_getModelExample(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
3940 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_2cydot(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v1, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v2); /* proto */
3941 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_4getMpsExample(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
3942 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *__pyx_v_self); /* proto */
3943 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus_2__setstate_cython__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
3944 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_6__pyx_unpickle_VarStatus(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
3945 static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
3946 static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */
3947 static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3948 static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_VarStatus(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3949 static PyObject *__pyx_float_0_;
3950 static PyObject *__pyx_float_1_;
3951 static PyObject *__pyx_float_2_;
3952 static PyObject *__pyx_float_3_;
3953 static PyObject *__pyx_float_0_0;
3954 static PyObject *__pyx_float_0_5;
3955 static PyObject *__pyx_float_1_1;
3956 static PyObject *__pyx_float_2_5;
3957 static PyObject *__pyx_float_3_5;
3958 static PyObject *__pyx_float_4_2;
3959 static PyObject *__pyx_float_neg_1_;
3960 static PyObject *__pyx_float_neg_2_;
3961 static PyObject *__pyx_int_0;
3962 static PyObject *__pyx_int_1;
3963 static PyObject *__pyx_int_2;
3964 static PyObject *__pyx_int_3;
3965 static PyObject *__pyx_int_4;
3966 static PyObject *__pyx_int_5;
3967 static PyObject *__pyx_int_7;
3968 static PyObject *__pyx_int_10;
3969 static PyObject *__pyx_int_64;
3970 static PyObject *__pyx_int_222419149;
3971 static PyObject *__pyx_int_neg_2000;
3972 static PyObject *__pyx_k__15;
3973 static PyObject *__pyx_k__16;
3974 static PyArrayObject *__pyx_k__20;
3975 static PyObject *__pyx_slice_;
3976 static PyObject *__pyx_tuple__2;
3977 static PyObject *__pyx_tuple__3;
3978 static PyObject *__pyx_tuple__4;
3979 static PyObject *__pyx_tuple__5;
3980 static PyObject *__pyx_tuple__6;
3981 static PyObject *__pyx_tuple__7;
3982 static PyObject *__pyx_tuple__9;
3983 static PyObject *__pyx_slice__26;
3984 static PyObject *__pyx_tuple__10;
3985 static PyObject *__pyx_tuple__11;
3986 static PyObject *__pyx_tuple__12;
3987 static PyObject *__pyx_tuple__13;
3988 static PyObject *__pyx_tuple__14;
3989 static PyObject *__pyx_tuple__17;
3990 static PyObject *__pyx_tuple__18;
3991 static PyObject *__pyx_tuple__19;
3992 static PyObject *__pyx_tuple__21;
3993 static PyObject *__pyx_tuple__22;
3994 static PyObject *__pyx_tuple__24;
3995 static PyObject *__pyx_tuple__25;
3996 static PyObject *__pyx_tuple__29;
3997 static PyObject *__pyx_tuple__30;
3998 static PyObject *__pyx_tuple__31;
3999 static PyObject *__pyx_tuple__32;
4000 static PyObject *__pyx_tuple__33;
4001 static PyObject *__pyx_tuple__34;
4002 static PyObject *__pyx_tuple__35;
4003 static PyObject *__pyx_tuple__36;
4004 static PyObject *__pyx_tuple__37;
4005 static PyObject *__pyx_tuple__38;
4006 static PyObject *__pyx_codeobj__23;
4007 static PyObject *__pyx_codeobj__27;
4008 static PyObject *__pyx_codeobj__28;
4009 /* Late includes */
4010 
4011 /* "cylp/cy/CyClpSimplex.pyx":75
4012  *     '''
4013  *
4014  *     def __cinit__(self, cyLPModel=None):             # <<<<<<<<<<<<<<
4015  *         self.CppSelf = new CppIClpSimplex(<cpy_ref.PyObject*>self,
4016  *                                 <runIsPivotAcceptable_t>RunIsPivotAcceptable,
4017  */
4018 
4019 /* Python wrapper */
4020 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4021 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4022   PyObject *__pyx_v_cyLPModel = 0;
4023   int __pyx_lineno = 0;
4024   const char *__pyx_filename = NULL;
4025   int __pyx_clineno = 0;
4026   int __pyx_r;
4027   __Pyx_RefNannyDeclarations
4028   __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
4029   {
4030     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cyLPModel,0};
4031     PyObject* values[1] = {0};
4032     values[0] = ((PyObject *)Py_None);
4033     if (unlikely(__pyx_kwds)) {
4034       Py_ssize_t kw_args;
4035       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4036       switch (pos_args) {
4037         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4038         CYTHON_FALLTHROUGH;
4039         case  0: break;
4040         default: goto __pyx_L5_argtuple_error;
4041       }
4042       kw_args = PyDict_Size(__pyx_kwds);
4043       switch (pos_args) {
4044         case  0:
4045         if (kw_args > 0) {
4046           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cyLPModel);
4047           if (value) { values[0] = value; kw_args--; }
4048         }
4049       }
4050       if (unlikely(kw_args > 0)) {
4051         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 75, __pyx_L3_error)
4052       }
4053     } else {
4054       switch (PyTuple_GET_SIZE(__pyx_args)) {
4055         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4056         CYTHON_FALLTHROUGH;
4057         case  0: break;
4058         default: goto __pyx_L5_argtuple_error;
4059       }
4060     }
4061     __pyx_v_cyLPModel = values[0];
4062   }
4063   goto __pyx_L4_argument_unpacking_done;
4064   __pyx_L5_argtuple_error:;
4065   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 75, __pyx_L3_error)
4066   __pyx_L3_error:;
4067   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4068   __Pyx_RefNannyFinishContext();
4069   return -1;
4070   __pyx_L4_argument_unpacking_done:;
4071   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex___cinit__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_cyLPModel);
4072 
4073   /* function exit code */
4074   __Pyx_RefNannyFinishContext();
4075   return __pyx_r;
4076 }
4077 
4078 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex___cinit__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyLPModel) {
4079   int __pyx_r;
4080   __Pyx_TraceDeclarations
4081   __Pyx_RefNannyDeclarations
4082   PyObject *__pyx_t_1 = NULL;
4083   int __pyx_t_2;
4084   int __pyx_t_3;
4085   PyObject *__pyx_t_4 = NULL;
4086   PyObject *__pyx_t_5 = NULL;
4087   int __pyx_lineno = 0;
4088   const char *__pyx_filename = NULL;
4089   int __pyx_clineno = 0;
4090   __Pyx_RefNannySetupContext("__cinit__", 0);
4091   __Pyx_TraceCall("__cinit__", __pyx_f[0], 75, 0, __PYX_ERR(0, 75, __pyx_L1_error));
4092 
4093   /* "cylp/cy/CyClpSimplex.pyx":76
4094  *
4095  *     def __cinit__(self, cyLPModel=None):
4096  *         self.CppSelf = new CppIClpSimplex(<cpy_ref.PyObject*>self,             # <<<<<<<<<<<<<<
4097  *                                 <runIsPivotAcceptable_t>RunIsPivotAcceptable,
4098  *                                 <varSelCriteria_t>RunVarSelCriteria)
4099  */
4100   __pyx_v_self->CppSelf = new IClpSimplex(((PyObject *)__pyx_v_self), ((runIsPivotAcceptable_t)__pyx_f_4cylp_2cy_12CyClpSimplex_RunIsPivotAcceptable), ((varSelCriteria_t)__pyx_f_4cylp_2cy_12CyClpSimplex_RunVarSelCriteria));
4101 
4102   /* "cylp/cy/CyClpSimplex.pyx":79
4103  *                                 <runIsPivotAcceptable_t>RunIsPivotAcceptable,
4104  *                                 <varSelCriteria_t>RunVarSelCriteria)
4105  *         self.vars = []             # <<<<<<<<<<<<<<
4106  *         #self.cbcModelExists = False
4107  *         self.coinModel = CyCoinModel()
4108  */
4109   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)
4110   __Pyx_GOTREF(__pyx_t_1);
4111   __Pyx_GIVEREF(__pyx_t_1);
4112   __Pyx_GOTREF(__pyx_v_self->vars);
4113   __Pyx_DECREF(__pyx_v_self->vars);
4114   __pyx_v_self->vars = __pyx_t_1;
4115   __pyx_t_1 = 0;
4116 
4117   /* "cylp/cy/CyClpSimplex.pyx":81
4118  *         self.vars = []
4119  *         #self.cbcModelExists = False
4120  *         self.coinModel = CyCoinModel()             # <<<<<<<<<<<<<<
4121  *
4122  *         self.cyLPModel = cyLPModel
4123  */
4124   __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_11CyCoinModel_CyCoinModel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error)
4125   __Pyx_GOTREF(__pyx_t_1);
4126   __Pyx_GIVEREF(__pyx_t_1);
4127   __Pyx_GOTREF(__pyx_v_self->coinModel);
4128   __Pyx_DECREF(((PyObject *)__pyx_v_self->coinModel));
4129   __pyx_v_self->coinModel = ((struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *)__pyx_t_1);
4130   __pyx_t_1 = 0;
4131 
4132   /* "cylp/cy/CyClpSimplex.pyx":83
4133  *         self.coinModel = CyCoinModel()
4134  *
4135  *         self.cyLPModel = cyLPModel             # <<<<<<<<<<<<<<
4136  *         if cyLPModel:
4137  *             if isinstance(cyLPModel, CyLPModel):
4138  */
4139   __Pyx_INCREF(__pyx_v_cyLPModel);
4140   __Pyx_GIVEREF(__pyx_v_cyLPModel);
4141   __Pyx_GOTREF(__pyx_v_self->cyLPModel);
4142   __Pyx_DECREF(__pyx_v_self->cyLPModel);
4143   __pyx_v_self->cyLPModel = __pyx_v_cyLPModel;
4144 
4145   /* "cylp/cy/CyClpSimplex.pyx":84
4146  *
4147  *         self.cyLPModel = cyLPModel
4148  *         if cyLPModel:             # <<<<<<<<<<<<<<
4149  *             if isinstance(cyLPModel, CyLPModel):
4150  *                 self.loadFromCyLPModel(cyLPModel)
4151  */
4152   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_cyLPModel); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 84, __pyx_L1_error)
4153   if (__pyx_t_2) {
4154 
4155     /* "cylp/cy/CyClpSimplex.pyx":85
4156  *         self.cyLPModel = cyLPModel
4157  *         if cyLPModel:
4158  *             if isinstance(cyLPModel, CyLPModel):             # <<<<<<<<<<<<<<
4159  *                 self.loadFromCyLPModel(cyLPModel)
4160  *             else:
4161  */
4162     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
4163     __Pyx_GOTREF(__pyx_t_1);
4164     __pyx_t_2 = PyObject_IsInstance(__pyx_v_cyLPModel, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 85, __pyx_L1_error)
4165     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4166     __pyx_t_3 = (__pyx_t_2 != 0);
4167     if (likely(__pyx_t_3)) {
4168 
4169       /* "cylp/cy/CyClpSimplex.pyx":86
4170  *         if cyLPModel:
4171  *             if isinstance(cyLPModel, CyLPModel):
4172  *                 self.loadFromCyLPModel(cyLPModel)             # <<<<<<<<<<<<<<
4173  *             else:
4174  *                 raise TypeError('Expected a CyLPModel as an argument to ' \
4175  */
4176       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_loadFromCyLPModel); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 86, __pyx_L1_error)
4177       __Pyx_GOTREF(__pyx_t_4);
4178       __pyx_t_5 = NULL;
4179       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
4180         __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
4181         if (likely(__pyx_t_5)) {
4182           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
4183           __Pyx_INCREF(__pyx_t_5);
4184           __Pyx_INCREF(function);
4185           __Pyx_DECREF_SET(__pyx_t_4, function);
4186         }
4187       }
4188       __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_cyLPModel) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_cyLPModel);
4189       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4190       if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error)
4191       __Pyx_GOTREF(__pyx_t_1);
4192       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4193       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4194 
4195       /* "cylp/cy/CyClpSimplex.pyx":85
4196  *         self.cyLPModel = cyLPModel
4197  *         if cyLPModel:
4198  *             if isinstance(cyLPModel, CyLPModel):             # <<<<<<<<<<<<<<
4199  *                 self.loadFromCyLPModel(cyLPModel)
4200  *             else:
4201  */
4202       goto __pyx_L4;
4203     }
4204 
4205     /* "cylp/cy/CyClpSimplex.pyx":88
4206  *                 self.loadFromCyLPModel(cyLPModel)
4207  *             else:
4208  *                 raise TypeError('Expected a CyLPModel as an argument to ' \             # <<<<<<<<<<<<<<
4209  *                                 'cylpSimplex constructor. Got %s' %
4210  *                                 cyLPModel.__class__)
4211  */
4212     /*else*/ {
4213 
4214       /* "cylp/cy/CyClpSimplex.pyx":90
4215  *                 raise TypeError('Expected a CyLPModel as an argument to ' \
4216  *                                 'cylpSimplex constructor. Got %s' %
4217  *                                 cyLPModel.__class__)             # <<<<<<<<<<<<<<
4218  *
4219  *     def __dealloc__(self):
4220  */
4221       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cyLPModel, __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
4222       __Pyx_GOTREF(__pyx_t_1);
4223 
4224       /* "cylp/cy/CyClpSimplex.pyx":89
4225  *             else:
4226  *                 raise TypeError('Expected a CyLPModel as an argument to ' \
4227  *                                 'cylpSimplex constructor. Got %s' %             # <<<<<<<<<<<<<<
4228  *                                 cyLPModel.__class__)
4229  *
4230  */
4231       __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Expected_a_CyLPModel_as_an_argum, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 89, __pyx_L1_error)
4232       __Pyx_GOTREF(__pyx_t_4);
4233       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4234 
4235       /* "cylp/cy/CyClpSimplex.pyx":88
4236  *                 self.loadFromCyLPModel(cyLPModel)
4237  *             else:
4238  *                 raise TypeError('Expected a CyLPModel as an argument to ' \             # <<<<<<<<<<<<<<
4239  *                                 'cylpSimplex constructor. Got %s' %
4240  *                                 cyLPModel.__class__)
4241  */
4242       __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error)
4243       __Pyx_GOTREF(__pyx_t_1);
4244       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4245       __Pyx_Raise(__pyx_t_1, 0, 0, 0);
4246       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4247       __PYX_ERR(0, 88, __pyx_L1_error)
4248     }
4249     __pyx_L4:;
4250 
4251     /* "cylp/cy/CyClpSimplex.pyx":84
4252  *
4253  *         self.cyLPModel = cyLPModel
4254  *         if cyLPModel:             # <<<<<<<<<<<<<<
4255  *             if isinstance(cyLPModel, CyLPModel):
4256  *                 self.loadFromCyLPModel(cyLPModel)
4257  */
4258   }
4259 
4260   /* "cylp/cy/CyClpSimplex.pyx":75
4261  *     '''
4262  *
4263  *     def __cinit__(self, cyLPModel=None):             # <<<<<<<<<<<<<<
4264  *         self.CppSelf = new CppIClpSimplex(<cpy_ref.PyObject*>self,
4265  *                                 <runIsPivotAcceptable_t>RunIsPivotAcceptable,
4266  */
4267 
4268   /* function exit code */
4269   __pyx_r = 0;
4270   goto __pyx_L0;
4271   __pyx_L1_error:;
4272   __Pyx_XDECREF(__pyx_t_1);
4273   __Pyx_XDECREF(__pyx_t_4);
4274   __Pyx_XDECREF(__pyx_t_5);
4275   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4276   __pyx_r = -1;
4277   __pyx_L0:;
4278   __Pyx_TraceReturn(Py_None, 0);
4279   __Pyx_RefNannyFinishContext();
4280   return __pyx_r;
4281 }
4282 
4283 /* "cylp/cy/CyClpSimplex.pyx":92
4284  *                                 cyLPModel.__class__)
4285  *
4286  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
4287  *         del self.CppSelf
4288  *
4289  */
4290 
4291 /* Python wrapper */
4292 static void __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
4293 static void __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3__dealloc__(PyObject *__pyx_v_self) {
4294   __Pyx_RefNannyDeclarations
4295   __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
4296   __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_2__dealloc__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
4297 
4298   /* function exit code */
4299   __Pyx_RefNannyFinishContext();
4300 }
4301 
4302 static void __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_2__dealloc__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
4303   __Pyx_TraceDeclarations
4304   __Pyx_RefNannyDeclarations
4305   int __pyx_lineno = 0;
4306   const char *__pyx_filename = NULL;
4307   int __pyx_clineno = 0;
4308   __Pyx_RefNannySetupContext("__dealloc__", 0);
4309   __Pyx_TraceCall("__dealloc__", __pyx_f[0], 92, 0, __PYX_ERR(0, 92, __pyx_L1_error));
4310 
4311   /* "cylp/cy/CyClpSimplex.pyx":93
4312  *
4313  *     def __dealloc__(self):
4314  *         del self.CppSelf             # <<<<<<<<<<<<<<
4315  *
4316  *     cdef setCppSelf(self,  CppIClpSimplex* s):
4317  */
4318   delete __pyx_v_self->CppSelf;
4319 
4320   /* "cylp/cy/CyClpSimplex.pyx":92
4321  *                                 cyLPModel.__class__)
4322  *
4323  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
4324  *         del self.CppSelf
4325  *
4326  */
4327 
4328   /* function exit code */
4329   goto __pyx_L0;
4330   __pyx_L1_error:;
4331   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
4332   __pyx_L0:;
4333   __Pyx_TraceReturn(Py_None, 0);
4334   __Pyx_RefNannyFinishContext();
4335 }
4336 
4337 /* "cylp/cy/CyClpSimplex.pyx":95
4338  *         del self.CppSelf
4339  *
4340  *     cdef setCppSelf(self,  CppIClpSimplex* s):             # <<<<<<<<<<<<<<
4341  *         del self.CppSelf
4342  *         self.CppSelf = s
4343  */
4344 
4345 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setCppSelf(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, IClpSimplex *__pyx_v_s) {
4346   PyObject *__pyx_r = NULL;
4347   __Pyx_TraceDeclarations
4348   __Pyx_RefNannyDeclarations
4349   int __pyx_lineno = 0;
4350   const char *__pyx_filename = NULL;
4351   int __pyx_clineno = 0;
4352   __Pyx_RefNannySetupContext("setCppSelf", 0);
4353   __Pyx_TraceCall("setCppSelf", __pyx_f[0], 95, 0, __PYX_ERR(0, 95, __pyx_L1_error));
4354 
4355   /* "cylp/cy/CyClpSimplex.pyx":96
4356  *
4357  *     cdef setCppSelf(self,  CppIClpSimplex* s):
4358  *         del self.CppSelf             # <<<<<<<<<<<<<<
4359  *         self.CppSelf = s
4360  *
4361  */
4362   delete __pyx_v_self->CppSelf;
4363 
4364   /* "cylp/cy/CyClpSimplex.pyx":97
4365  *     cdef setCppSelf(self,  CppIClpSimplex* s):
4366  *         del self.CppSelf
4367  *         self.CppSelf = s             # <<<<<<<<<<<<<<
4368  *
4369  *     #############################################
4370  */
4371   __pyx_v_self->CppSelf = __pyx_v_s;
4372 
4373   /* "cylp/cy/CyClpSimplex.pyx":95
4374  *         del self.CppSelf
4375  *
4376  *     cdef setCppSelf(self,  CppIClpSimplex* s):             # <<<<<<<<<<<<<<
4377  *         del self.CppSelf
4378  *         self.CppSelf = s
4379  */
4380 
4381   /* function exit code */
4382   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4383   goto __pyx_L0;
4384   __pyx_L1_error:;
4385   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setCppSelf", __pyx_clineno, __pyx_lineno, __pyx_filename);
4386   __pyx_r = 0;
4387   __pyx_L0:;
4388   __Pyx_XGIVEREF(__pyx_r);
4389   __Pyx_TraceReturn(__pyx_r, 0);
4390   __Pyx_RefNannyFinishContext();
4391   return __pyx_r;
4392 }
4393 
4394 /* "cylp/cy/CyClpSimplex.pyx":104
4395  *
4396  *     property basicVariables:
4397  *         def __get__(self):             # <<<<<<<<<<<<<<
4398  *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)
4399  *             self.CppSelf.getBasics(<int*>bv.data)
4400  */
4401 
4402 /* Python wrapper */
4403 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables_1__get__(PyObject *__pyx_v_self); /*proto*/
4404 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables_1__get__(PyObject *__pyx_v_self) {
4405   PyObject *__pyx_r = 0;
4406   __Pyx_RefNannyDeclarations
4407   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4408   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
4409 
4410   /* function exit code */
4411   __Pyx_RefNannyFinishContext();
4412   return __pyx_r;
4413 }
4414 
4415 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
4416   PyArrayObject *__pyx_v_bv = 0;
4417   __Pyx_LocalBuf_ND __pyx_pybuffernd_bv;
4418   __Pyx_Buffer __pyx_pybuffer_bv;
4419   PyObject *__pyx_r = NULL;
4420   __Pyx_TraceDeclarations
4421   __Pyx_RefNannyDeclarations
4422   PyObject *__pyx_t_1 = NULL;
4423   PyObject *__pyx_t_2 = NULL;
4424   PyObject *__pyx_t_3 = NULL;
4425   PyObject *__pyx_t_4 = NULL;
4426   PyObject *__pyx_t_5 = NULL;
4427   PyArrayObject *__pyx_t_6 = NULL;
4428   int __pyx_lineno = 0;
4429   const char *__pyx_filename = NULL;
4430   int __pyx_clineno = 0;
4431   __Pyx_RefNannySetupContext("__get__", 0);
4432   __Pyx_TraceCall("__get__", __pyx_f[0], 104, 0, __PYX_ERR(0, 104, __pyx_L1_error));
4433   __pyx_pybuffer_bv.pybuffer.buf = NULL;
4434   __pyx_pybuffer_bv.refcount = 0;
4435   __pyx_pybuffernd_bv.data = NULL;
4436   __pyx_pybuffernd_bv.rcbuffer = &__pyx_pybuffer_bv;
4437 
4438   /* "cylp/cy/CyClpSimplex.pyx":105
4439  *     property basicVariables:
4440  *         def __get__(self):
4441  *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)             # <<<<<<<<<<<<<<
4442  *             self.CppSelf.getBasics(<int*>bv.data)
4443  *             return bv
4444  */
4445   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
4446   __Pyx_GOTREF(__pyx_t_1);
4447   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error)
4448   __Pyx_GOTREF(__pyx_t_2);
4449   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4450   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
4451   __Pyx_GOTREF(__pyx_t_1);
4452   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 105, __pyx_L1_error)
4453   __Pyx_GOTREF(__pyx_t_3);
4454   __Pyx_GIVEREF(__pyx_t_1);
4455   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
4456   __pyx_t_1 = 0;
4457   __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
4458   __Pyx_GOTREF(__pyx_t_1);
4459   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 105, __pyx_L1_error)
4460   __Pyx_GOTREF(__pyx_t_4);
4461   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 105, __pyx_L1_error)
4462   __Pyx_GOTREF(__pyx_t_5);
4463   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4464   if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 105, __pyx_L1_error)
4465   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4466   __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 105, __pyx_L1_error)
4467   __Pyx_GOTREF(__pyx_t_5);
4468   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4469   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4470   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4471   if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 105, __pyx_L1_error)
4472   __pyx_t_6 = ((PyArrayObject *)__pyx_t_5);
4473   {
4474     __Pyx_BufFmt_StackElem __pyx_stack[1];
4475     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bv.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
4476       __pyx_v_bv = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_bv.rcbuffer->pybuffer.buf = NULL;
4477       __PYX_ERR(0, 105, __pyx_L1_error)
4478     } else {__pyx_pybuffernd_bv.diminfo[0].strides = __pyx_pybuffernd_bv.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bv.diminfo[0].shape = __pyx_pybuffernd_bv.rcbuffer->pybuffer.shape[0];
4479     }
4480   }
4481   __pyx_t_6 = 0;
4482   __pyx_v_bv = ((PyArrayObject *)__pyx_t_5);
4483   __pyx_t_5 = 0;
4484 
4485   /* "cylp/cy/CyClpSimplex.pyx":106
4486  *         def __get__(self):
4487  *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)
4488  *             self.CppSelf.getBasics(<int*>bv.data)             # <<<<<<<<<<<<<<
4489  *             return bv
4490  *
4491  */
4492   __pyx_v_self->CppSelf->getBasics(((int *)__pyx_v_bv->data));
4493 
4494   /* "cylp/cy/CyClpSimplex.pyx":107
4495  *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)
4496  *             self.CppSelf.getBasics(<int*>bv.data)
4497  *             return bv             # <<<<<<<<<<<<<<
4498  *
4499  *     property rhs:
4500  */
4501   __Pyx_XDECREF(__pyx_r);
4502   __Pyx_INCREF(((PyObject *)__pyx_v_bv));
4503   __pyx_r = ((PyObject *)__pyx_v_bv);
4504   goto __pyx_L0;
4505 
4506   /* "cylp/cy/CyClpSimplex.pyx":104
4507  *
4508  *     property basicVariables:
4509  *         def __get__(self):             # <<<<<<<<<<<<<<
4510  *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)
4511  *             self.CppSelf.getBasics(<int*>bv.data)
4512  */
4513 
4514   /* function exit code */
4515   __pyx_L1_error:;
4516   __Pyx_XDECREF(__pyx_t_1);
4517   __Pyx_XDECREF(__pyx_t_2);
4518   __Pyx_XDECREF(__pyx_t_3);
4519   __Pyx_XDECREF(__pyx_t_4);
4520   __Pyx_XDECREF(__pyx_t_5);
4521   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
4522     __Pyx_PyThreadState_declare
4523     __Pyx_PyThreadState_assign
4524     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
4525     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bv.rcbuffer->pybuffer);
4526   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
4527   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.basicVariables.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4528   __pyx_r = NULL;
4529   goto __pyx_L2;
4530   __pyx_L0:;
4531   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bv.rcbuffer->pybuffer);
4532   __pyx_L2:;
4533   __Pyx_XDECREF((PyObject *)__pyx_v_bv);
4534   __Pyx_XGIVEREF(__pyx_r);
4535   __Pyx_TraceReturn(__pyx_r, 0);
4536   __Pyx_RefNannyFinishContext();
4537   return __pyx_r;
4538 }
4539 
4540 /* "cylp/cy/CyClpSimplex.pyx":110
4541  *
4542  *     property rhs:
4543  *         def __get__(self):             # <<<<<<<<<<<<<<
4544  *             r = np.zeros(self.nConstraints, dtype=np.double)
4545  *             self.getRightHandSide(r)
4546  */
4547 
4548 /* Python wrapper */
4549 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs_1__get__(PyObject *__pyx_v_self); /*proto*/
4550 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs_1__get__(PyObject *__pyx_v_self) {
4551   PyObject *__pyx_r = 0;
4552   __Pyx_RefNannyDeclarations
4553   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4554   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
4555 
4556   /* function exit code */
4557   __Pyx_RefNannyFinishContext();
4558   return __pyx_r;
4559 }
4560 
4561 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
4562   PyObject *__pyx_v_r = NULL;
4563   PyObject *__pyx_r = NULL;
4564   __Pyx_TraceDeclarations
4565   __Pyx_RefNannyDeclarations
4566   PyObject *__pyx_t_1 = NULL;
4567   PyObject *__pyx_t_2 = NULL;
4568   PyObject *__pyx_t_3 = NULL;
4569   PyObject *__pyx_t_4 = NULL;
4570   PyObject *__pyx_t_5 = NULL;
4571   int __pyx_lineno = 0;
4572   const char *__pyx_filename = NULL;
4573   int __pyx_clineno = 0;
4574   __Pyx_RefNannySetupContext("__get__", 0);
4575   __Pyx_TraceCall("__get__", __pyx_f[0], 110, 0, __PYX_ERR(0, 110, __pyx_L1_error));
4576 
4577   /* "cylp/cy/CyClpSimplex.pyx":111
4578  *     property rhs:
4579  *         def __get__(self):
4580  *             r = np.zeros(self.nConstraints, dtype=np.double)             # <<<<<<<<<<<<<<
4581  *             self.getRightHandSide(r)
4582  *             #Py_INCREF(r)
4583  */
4584   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
4585   __Pyx_GOTREF(__pyx_t_1);
4586   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
4587   __Pyx_GOTREF(__pyx_t_2);
4588   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4589   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
4590   __Pyx_GOTREF(__pyx_t_1);
4591   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error)
4592   __Pyx_GOTREF(__pyx_t_3);
4593   __Pyx_GIVEREF(__pyx_t_1);
4594   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
4595   __pyx_t_1 = 0;
4596   __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
4597   __Pyx_GOTREF(__pyx_t_1);
4598   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 111, __pyx_L1_error)
4599   __Pyx_GOTREF(__pyx_t_4);
4600   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_double); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 111, __pyx_L1_error)
4601   __Pyx_GOTREF(__pyx_t_5);
4602   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4603   if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 111, __pyx_L1_error)
4604   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4605   __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 111, __pyx_L1_error)
4606   __Pyx_GOTREF(__pyx_t_5);
4607   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4608   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4609   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4610   __pyx_v_r = __pyx_t_5;
4611   __pyx_t_5 = 0;
4612 
4613   /* "cylp/cy/CyClpSimplex.pyx":112
4614  *         def __get__(self):
4615  *             r = np.zeros(self.nConstraints, dtype=np.double)
4616  *             self.getRightHandSide(r)             # <<<<<<<<<<<<<<
4617  *             #Py_INCREF(r)
4618  *             return r
4619  */
4620   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getRightHandSide); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error)
4621   __Pyx_GOTREF(__pyx_t_1);
4622   __pyx_t_3 = NULL;
4623   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
4624     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
4625     if (likely(__pyx_t_3)) {
4626       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
4627       __Pyx_INCREF(__pyx_t_3);
4628       __Pyx_INCREF(function);
4629       __Pyx_DECREF_SET(__pyx_t_1, function);
4630     }
4631   }
4632   __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_r) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_r);
4633   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4634   if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 112, __pyx_L1_error)
4635   __Pyx_GOTREF(__pyx_t_5);
4636   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4637   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4638 
4639   /* "cylp/cy/CyClpSimplex.pyx":114
4640  *             self.getRightHandSide(r)
4641  *             #Py_INCREF(r)
4642  *             return r             # <<<<<<<<<<<<<<
4643  *
4644  *     property basisInverse:
4645  */
4646   __Pyx_XDECREF(__pyx_r);
4647   __Pyx_INCREF(__pyx_v_r);
4648   __pyx_r = __pyx_v_r;
4649   goto __pyx_L0;
4650 
4651   /* "cylp/cy/CyClpSimplex.pyx":110
4652  *
4653  *     property rhs:
4654  *         def __get__(self):             # <<<<<<<<<<<<<<
4655  *             r = np.zeros(self.nConstraints, dtype=np.double)
4656  *             self.getRightHandSide(r)
4657  */
4658 
4659   /* function exit code */
4660   __pyx_L1_error:;
4661   __Pyx_XDECREF(__pyx_t_1);
4662   __Pyx_XDECREF(__pyx_t_2);
4663   __Pyx_XDECREF(__pyx_t_3);
4664   __Pyx_XDECREF(__pyx_t_4);
4665   __Pyx_XDECREF(__pyx_t_5);
4666   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.rhs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4667   __pyx_r = NULL;
4668   __pyx_L0:;
4669   __Pyx_XDECREF(__pyx_v_r);
4670   __Pyx_XGIVEREF(__pyx_r);
4671   __Pyx_TraceReturn(__pyx_r, 0);
4672   __Pyx_RefNannyFinishContext();
4673   return __pyx_r;
4674 }
4675 
4676 /* "cylp/cy/CyClpSimplex.pyx":117
4677  *
4678  *     property basisInverse:
4679  *         def __get__(self):             # <<<<<<<<<<<<<<
4680  *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
4681  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
4682  */
4683 
4684 /* Python wrapper */
4685 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse_1__get__(PyObject *__pyx_v_self); /*proto*/
4686 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse_1__get__(PyObject *__pyx_v_self) {
4687   PyObject *__pyx_r = 0;
4688   __Pyx_RefNannyDeclarations
4689   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4690   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
4691 
4692   /* function exit code */
4693   __Pyx_RefNannyFinishContext();
4694   return __pyx_r;
4695 }
4696 
4697 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
4698   PyObject *__pyx_v_b = NULL;
4699   PyArrayObject *__pyx_v_c = 0;
4700   PyObject *__pyx_v_colInd = NULL;
4701   __Pyx_LocalBuf_ND __pyx_pybuffernd_c;
4702   __Pyx_Buffer __pyx_pybuffer_c;
4703   PyObject *__pyx_r = NULL;
4704   __Pyx_TraceDeclarations
4705   __Pyx_RefNannyDeclarations
4706   PyObject *__pyx_t_1 = NULL;
4707   PyObject *__pyx_t_2 = NULL;
4708   PyObject *__pyx_t_3 = NULL;
4709   PyObject *__pyx_t_4 = NULL;
4710   PyObject *__pyx_t_5 = NULL;
4711   PyArrayObject *__pyx_t_6 = NULL;
4712   Py_ssize_t __pyx_t_7;
4713   PyObject *(*__pyx_t_8)(PyObject *);
4714   int __pyx_t_9;
4715   int __pyx_lineno = 0;
4716   const char *__pyx_filename = NULL;
4717   int __pyx_clineno = 0;
4718   __Pyx_RefNannySetupContext("__get__", 0);
4719   __Pyx_TraceCall("__get__", __pyx_f[0], 117, 0, __PYX_ERR(0, 117, __pyx_L1_error));
4720   __pyx_pybuffer_c.pybuffer.buf = NULL;
4721   __pyx_pybuffer_c.refcount = 0;
4722   __pyx_pybuffernd_c.data = NULL;
4723   __pyx_pybuffernd_c.rcbuffer = &__pyx_pybuffer_c;
4724 
4725   /* "cylp/cy/CyClpSimplex.pyx":118
4726  *     property basisInverse:
4727  *         def __get__(self):
4728  *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)             # <<<<<<<<<<<<<<
4729  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
4730  *             for colInd in xrange(self.nConstraints):
4731  */
4732   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error)
4733   __Pyx_GOTREF(__pyx_t_1);
4734   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error)
4735   __Pyx_GOTREF(__pyx_t_2);
4736   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4737   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error)
4738   __Pyx_GOTREF(__pyx_t_1);
4739   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error)
4740   __Pyx_GOTREF(__pyx_t_3);
4741   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 118, __pyx_L1_error)
4742   __Pyx_GOTREF(__pyx_t_4);
4743   __Pyx_GIVEREF(__pyx_t_1);
4744   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
4745   __Pyx_GIVEREF(__pyx_t_3);
4746   PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
4747   __pyx_t_1 = 0;
4748   __pyx_t_3 = 0;
4749   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error)
4750   __Pyx_GOTREF(__pyx_t_3);
4751   __Pyx_GIVEREF(__pyx_t_4);
4752   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
4753   __pyx_t_4 = 0;
4754   __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 118, __pyx_L1_error)
4755   __Pyx_GOTREF(__pyx_t_4);
4756   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error)
4757   __Pyx_GOTREF(__pyx_t_1);
4758   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_double); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 118, __pyx_L1_error)
4759   __Pyx_GOTREF(__pyx_t_5);
4760   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4761   if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 118, __pyx_L1_error)
4762   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4763   __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 118, __pyx_L1_error)
4764   __Pyx_GOTREF(__pyx_t_5);
4765   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4766   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4767   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4768   __pyx_v_b = __pyx_t_5;
4769   __pyx_t_5 = 0;
4770 
4771   /* "cylp/cy/CyClpSimplex.pyx":119
4772  *         def __get__(self):
4773  *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
4774  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)             # <<<<<<<<<<<<<<
4775  *             for colInd in xrange(self.nConstraints):
4776  *                 self.getBInvCol(colInd, c)
4777  */
4778   __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error)
4779   __Pyx_GOTREF(__pyx_t_5);
4780   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error)
4781   __Pyx_GOTREF(__pyx_t_4);
4782   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4783   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error)
4784   __Pyx_GOTREF(__pyx_t_5);
4785   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error)
4786   __Pyx_GOTREF(__pyx_t_3);
4787   __Pyx_GIVEREF(__pyx_t_5);
4788   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
4789   __pyx_t_5 = 0;
4790   __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error)
4791   __Pyx_GOTREF(__pyx_t_5);
4792   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error)
4793   __Pyx_GOTREF(__pyx_t_2);
4794   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error)
4795   __Pyx_GOTREF(__pyx_t_1);
4796   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4797   if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 119, __pyx_L1_error)
4798   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4799   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error)
4800   __Pyx_GOTREF(__pyx_t_1);
4801   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4802   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4803   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4804   if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 119, __pyx_L1_error)
4805   __pyx_t_6 = ((PyArrayObject *)__pyx_t_1);
4806   {
4807     __Pyx_BufFmt_StackElem __pyx_stack[1];
4808     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_c.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
4809       __pyx_v_c = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_c.rcbuffer->pybuffer.buf = NULL;
4810       __PYX_ERR(0, 119, __pyx_L1_error)
4811     } else {__pyx_pybuffernd_c.diminfo[0].strides = __pyx_pybuffernd_c.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_c.diminfo[0].shape = __pyx_pybuffernd_c.rcbuffer->pybuffer.shape[0];
4812     }
4813   }
4814   __pyx_t_6 = 0;
4815   __pyx_v_c = ((PyArrayObject *)__pyx_t_1);
4816   __pyx_t_1 = 0;
4817 
4818   /* "cylp/cy/CyClpSimplex.pyx":120
4819  *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
4820  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
4821  *             for colInd in xrange(self.nConstraints):             # <<<<<<<<<<<<<<
4822  *                 self.getBInvCol(colInd, c)
4823  *                 b[:, colInd] = c
4824  */
4825   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error)
4826   __Pyx_GOTREF(__pyx_t_1);
4827   __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 120, __pyx_L1_error)
4828   __Pyx_GOTREF(__pyx_t_5);
4829   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4830   if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
4831     __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
4832     __pyx_t_8 = NULL;
4833   } else {
4834     __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error)
4835     __Pyx_GOTREF(__pyx_t_1);
4836     __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 120, __pyx_L1_error)
4837   }
4838   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4839   for (;;) {
4840     if (likely(!__pyx_t_8)) {
4841       if (likely(PyList_CheckExact(__pyx_t_1))) {
4842         if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
4843         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4844         __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 120, __pyx_L1_error)
4845         #else
4846         __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 120, __pyx_L1_error)
4847         __Pyx_GOTREF(__pyx_t_5);
4848         #endif
4849       } else {
4850         if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
4851         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4852         __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 120, __pyx_L1_error)
4853         #else
4854         __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 120, __pyx_L1_error)
4855         __Pyx_GOTREF(__pyx_t_5);
4856         #endif
4857       }
4858     } else {
4859       __pyx_t_5 = __pyx_t_8(__pyx_t_1);
4860       if (unlikely(!__pyx_t_5)) {
4861         PyObject* exc_type = PyErr_Occurred();
4862         if (exc_type) {
4863           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
4864           else __PYX_ERR(0, 120, __pyx_L1_error)
4865         }
4866         break;
4867       }
4868       __Pyx_GOTREF(__pyx_t_5);
4869     }
4870     __Pyx_XDECREF_SET(__pyx_v_colInd, __pyx_t_5);
4871     __pyx_t_5 = 0;
4872 
4873     /* "cylp/cy/CyClpSimplex.pyx":121
4874  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
4875  *             for colInd in xrange(self.nConstraints):
4876  *                 self.getBInvCol(colInd, c)             # <<<<<<<<<<<<<<
4877  *                 b[:, colInd] = c
4878  *             return b
4879  */
4880     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBInvCol); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 121, __pyx_L1_error)
4881     __Pyx_GOTREF(__pyx_t_3);
4882     __pyx_t_4 = NULL;
4883     __pyx_t_9 = 0;
4884     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
4885       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
4886       if (likely(__pyx_t_4)) {
4887         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
4888         __Pyx_INCREF(__pyx_t_4);
4889         __Pyx_INCREF(function);
4890         __Pyx_DECREF_SET(__pyx_t_3, function);
4891         __pyx_t_9 = 1;
4892       }
4893     }
4894     #if CYTHON_FAST_PYCALL
4895     if (PyFunction_Check(__pyx_t_3)) {
4896       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_colInd, ((PyObject *)__pyx_v_c)};
4897       __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 121, __pyx_L1_error)
4898       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
4899       __Pyx_GOTREF(__pyx_t_5);
4900     } else
4901     #endif
4902     #if CYTHON_FAST_PYCCALL
4903     if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
4904       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_colInd, ((PyObject *)__pyx_v_c)};
4905       __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 121, __pyx_L1_error)
4906       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
4907       __Pyx_GOTREF(__pyx_t_5);
4908     } else
4909     #endif
4910     {
4911       __pyx_t_2 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error)
4912       __Pyx_GOTREF(__pyx_t_2);
4913       if (__pyx_t_4) {
4914         __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
4915       }
4916       __Pyx_INCREF(__pyx_v_colInd);
4917       __Pyx_GIVEREF(__pyx_v_colInd);
4918       PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_9, __pyx_v_colInd);
4919       __Pyx_INCREF(((PyObject *)__pyx_v_c));
4920       __Pyx_GIVEREF(((PyObject *)__pyx_v_c));
4921       PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_9, ((PyObject *)__pyx_v_c));
4922       __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 121, __pyx_L1_error)
4923       __Pyx_GOTREF(__pyx_t_5);
4924       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4925     }
4926     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4927     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4928 
4929     /* "cylp/cy/CyClpSimplex.pyx":122
4930  *             for colInd in xrange(self.nConstraints):
4931  *                 self.getBInvCol(colInd, c)
4932  *                 b[:, colInd] = c             # <<<<<<<<<<<<<<
4933  *             return b
4934  *
4935  */
4936     __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 122, __pyx_L1_error)
4937     __Pyx_GOTREF(__pyx_t_5);
4938     __Pyx_INCREF(__pyx_slice_);
4939     __Pyx_GIVEREF(__pyx_slice_);
4940     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_slice_);
4941     __Pyx_INCREF(__pyx_v_colInd);
4942     __Pyx_GIVEREF(__pyx_v_colInd);
4943     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_colInd);
4944     if (unlikely(PyObject_SetItem(__pyx_v_b, __pyx_t_5, ((PyObject *)__pyx_v_c)) < 0)) __PYX_ERR(0, 122, __pyx_L1_error)
4945     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4946 
4947     /* "cylp/cy/CyClpSimplex.pyx":120
4948  *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
4949  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
4950  *             for colInd in xrange(self.nConstraints):             # <<<<<<<<<<<<<<
4951  *                 self.getBInvCol(colInd, c)
4952  *                 b[:, colInd] = c
4953  */
4954   }
4955   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4956 
4957   /* "cylp/cy/CyClpSimplex.pyx":123
4958  *                 self.getBInvCol(colInd, c)
4959  *                 b[:, colInd] = c
4960  *             return b             # <<<<<<<<<<<<<<
4961  *
4962  *     property tableau:
4963  */
4964   __Pyx_XDECREF(__pyx_r);
4965   __Pyx_INCREF(__pyx_v_b);
4966   __pyx_r = __pyx_v_b;
4967   goto __pyx_L0;
4968 
4969   /* "cylp/cy/CyClpSimplex.pyx":117
4970  *
4971  *     property basisInverse:
4972  *         def __get__(self):             # <<<<<<<<<<<<<<
4973  *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
4974  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
4975  */
4976 
4977   /* function exit code */
4978   __pyx_L1_error:;
4979   __Pyx_XDECREF(__pyx_t_1);
4980   __Pyx_XDECREF(__pyx_t_2);
4981   __Pyx_XDECREF(__pyx_t_3);
4982   __Pyx_XDECREF(__pyx_t_4);
4983   __Pyx_XDECREF(__pyx_t_5);
4984   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
4985     __Pyx_PyThreadState_declare
4986     __Pyx_PyThreadState_assign
4987     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
4988     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_c.rcbuffer->pybuffer);
4989   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
4990   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.basisInverse.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4991   __pyx_r = NULL;
4992   goto __pyx_L2;
4993   __pyx_L0:;
4994   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_c.rcbuffer->pybuffer);
4995   __pyx_L2:;
4996   __Pyx_XDECREF(__pyx_v_b);
4997   __Pyx_XDECREF((PyObject *)__pyx_v_c);
4998   __Pyx_XDECREF(__pyx_v_colInd);
4999   __Pyx_XGIVEREF(__pyx_r);
5000   __Pyx_TraceReturn(__pyx_r, 0);
5001   __Pyx_RefNannyFinishContext();
5002   return __pyx_r;
5003 }
5004 
5005 /* "cylp/cy/CyClpSimplex.pyx":126
5006  *
5007  *     property tableau:
5008  *         def __get__(self):             # <<<<<<<<<<<<<<
5009  *             nAllVars = self.nVariables + self.nConstraints
5010  *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
5011  */
5012 
5013 /* Python wrapper */
5014 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau_1__get__(PyObject *__pyx_v_self); /*proto*/
5015 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau_1__get__(PyObject *__pyx_v_self) {
5016   PyObject *__pyx_r = 0;
5017   __Pyx_RefNannyDeclarations
5018   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5019   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
5020 
5021   /* function exit code */
5022   __Pyx_RefNannyFinishContext();
5023   return __pyx_r;
5024 }
5025 
5026 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
5027   PyObject *__pyx_v_nAllVars = NULL;
5028   PyObject *__pyx_v_t = NULL;
5029   PyArrayObject *__pyx_v_c = 0;
5030   PyObject *__pyx_v_colInd = NULL;
5031   __Pyx_LocalBuf_ND __pyx_pybuffernd_c;
5032   __Pyx_Buffer __pyx_pybuffer_c;
5033   PyObject *__pyx_r = NULL;
5034   __Pyx_TraceDeclarations
5035   __Pyx_RefNannyDeclarations
5036   PyObject *__pyx_t_1 = NULL;
5037   PyObject *__pyx_t_2 = NULL;
5038   PyObject *__pyx_t_3 = NULL;
5039   PyObject *__pyx_t_4 = NULL;
5040   PyObject *__pyx_t_5 = NULL;
5041   PyArrayObject *__pyx_t_6 = NULL;
5042   Py_ssize_t __pyx_t_7;
5043   PyObject *(*__pyx_t_8)(PyObject *);
5044   int __pyx_t_9;
5045   int __pyx_lineno = 0;
5046   const char *__pyx_filename = NULL;
5047   int __pyx_clineno = 0;
5048   __Pyx_RefNannySetupContext("__get__", 0);
5049   __Pyx_TraceCall("__get__", __pyx_f[0], 126, 0, __PYX_ERR(0, 126, __pyx_L1_error));
5050   __pyx_pybuffer_c.pybuffer.buf = NULL;
5051   __pyx_pybuffer_c.refcount = 0;
5052   __pyx_pybuffernd_c.data = NULL;
5053   __pyx_pybuffernd_c.rcbuffer = &__pyx_pybuffer_c;
5054 
5055   /* "cylp/cy/CyClpSimplex.pyx":127
5056  *     property tableau:
5057  *         def __get__(self):
5058  *             nAllVars = self.nVariables + self.nConstraints             # <<<<<<<<<<<<<<
5059  *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
5060  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
5061  */
5062   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error)
5063   __Pyx_GOTREF(__pyx_t_1);
5064   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 127, __pyx_L1_error)
5065   __Pyx_GOTREF(__pyx_t_2);
5066   __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 127, __pyx_L1_error)
5067   __Pyx_GOTREF(__pyx_t_3);
5068   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5069   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5070   __pyx_v_nAllVars = __pyx_t_3;
5071   __pyx_t_3 = 0;
5072 
5073   /* "cylp/cy/CyClpSimplex.pyx":128
5074  *         def __get__(self):
5075  *             nAllVars = self.nVariables + self.nConstraints
5076  *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)             # <<<<<<<<<<<<<<
5077  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
5078  *             for colInd in xrange(nAllVars):
5079  */
5080   __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 128, __pyx_L1_error)
5081   __Pyx_GOTREF(__pyx_t_3);
5082   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 128, __pyx_L1_error)
5083   __Pyx_GOTREF(__pyx_t_2);
5084   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5085   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 128, __pyx_L1_error)
5086   __Pyx_GOTREF(__pyx_t_3);
5087   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error)
5088   __Pyx_GOTREF(__pyx_t_1);
5089   __Pyx_GIVEREF(__pyx_t_3);
5090   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
5091   __Pyx_INCREF(__pyx_v_nAllVars);
5092   __Pyx_GIVEREF(__pyx_v_nAllVars);
5093   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_nAllVars);
5094   __pyx_t_3 = 0;
5095   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 128, __pyx_L1_error)
5096   __Pyx_GOTREF(__pyx_t_3);
5097   __Pyx_GIVEREF(__pyx_t_1);
5098   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
5099   __pyx_t_1 = 0;
5100   __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error)
5101   __Pyx_GOTREF(__pyx_t_1);
5102   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 128, __pyx_L1_error)
5103   __Pyx_GOTREF(__pyx_t_4);
5104   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_double); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 128, __pyx_L1_error)
5105   __Pyx_GOTREF(__pyx_t_5);
5106   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5107   if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 128, __pyx_L1_error)
5108   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5109   __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 128, __pyx_L1_error)
5110   __Pyx_GOTREF(__pyx_t_5);
5111   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5112   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5113   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5114   __pyx_v_t = __pyx_t_5;
5115   __pyx_t_5 = 0;
5116 
5117   /* "cylp/cy/CyClpSimplex.pyx":129
5118  *             nAllVars = self.nVariables + self.nConstraints
5119  *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
5120  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)             # <<<<<<<<<<<<<<
5121  *             for colInd in xrange(nAllVars):
5122  *                 self.getBInvACol(colInd, c)
5123  */
5124   __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 129, __pyx_L1_error)
5125   __Pyx_GOTREF(__pyx_t_5);
5126   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L1_error)
5127   __Pyx_GOTREF(__pyx_t_1);
5128   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5129   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 129, __pyx_L1_error)
5130   __Pyx_GOTREF(__pyx_t_5);
5131   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 129, __pyx_L1_error)
5132   __Pyx_GOTREF(__pyx_t_3);
5133   __Pyx_GIVEREF(__pyx_t_5);
5134   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
5135   __pyx_t_5 = 0;
5136   __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 129, __pyx_L1_error)
5137   __Pyx_GOTREF(__pyx_t_5);
5138   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 129, __pyx_L1_error)
5139   __Pyx_GOTREF(__pyx_t_2);
5140   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_double); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 129, __pyx_L1_error)
5141   __Pyx_GOTREF(__pyx_t_4);
5142   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5143   if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 129, __pyx_L1_error)
5144   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5145   __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 129, __pyx_L1_error)
5146   __Pyx_GOTREF(__pyx_t_4);
5147   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5148   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5149   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5150   if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 129, __pyx_L1_error)
5151   __pyx_t_6 = ((PyArrayObject *)__pyx_t_4);
5152   {
5153     __Pyx_BufFmt_StackElem __pyx_stack[1];
5154     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_c.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
5155       __pyx_v_c = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_c.rcbuffer->pybuffer.buf = NULL;
5156       __PYX_ERR(0, 129, __pyx_L1_error)
5157     } else {__pyx_pybuffernd_c.diminfo[0].strides = __pyx_pybuffernd_c.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_c.diminfo[0].shape = __pyx_pybuffernd_c.rcbuffer->pybuffer.shape[0];
5158     }
5159   }
5160   __pyx_t_6 = 0;
5161   __pyx_v_c = ((PyArrayObject *)__pyx_t_4);
5162   __pyx_t_4 = 0;
5163 
5164   /* "cylp/cy/CyClpSimplex.pyx":130
5165  *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
5166  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
5167  *             for colInd in xrange(nAllVars):             # <<<<<<<<<<<<<<
5168  *                 self.getBInvACol(colInd, c)
5169  *                 t[:, colInd] = c
5170  */
5171   __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_v_nAllVars); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error)
5172   __Pyx_GOTREF(__pyx_t_4);
5173   if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
5174     __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
5175     __pyx_t_8 = NULL;
5176   } else {
5177     __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error)
5178     __Pyx_GOTREF(__pyx_t_5);
5179     __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 130, __pyx_L1_error)
5180   }
5181   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5182   for (;;) {
5183     if (likely(!__pyx_t_8)) {
5184       if (likely(PyList_CheckExact(__pyx_t_5))) {
5185         if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
5186         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
5187         __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 130, __pyx_L1_error)
5188         #else
5189         __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error)
5190         __Pyx_GOTREF(__pyx_t_4);
5191         #endif
5192       } else {
5193         if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
5194         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
5195         __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 130, __pyx_L1_error)
5196         #else
5197         __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error)
5198         __Pyx_GOTREF(__pyx_t_4);
5199         #endif
5200       }
5201     } else {
5202       __pyx_t_4 = __pyx_t_8(__pyx_t_5);
5203       if (unlikely(!__pyx_t_4)) {
5204         PyObject* exc_type = PyErr_Occurred();
5205         if (exc_type) {
5206           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
5207           else __PYX_ERR(0, 130, __pyx_L1_error)
5208         }
5209         break;
5210       }
5211       __Pyx_GOTREF(__pyx_t_4);
5212     }
5213     __Pyx_XDECREF_SET(__pyx_v_colInd, __pyx_t_4);
5214     __pyx_t_4 = 0;
5215 
5216     /* "cylp/cy/CyClpSimplex.pyx":131
5217  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
5218  *             for colInd in xrange(nAllVars):
5219  *                 self.getBInvACol(colInd, c)             # <<<<<<<<<<<<<<
5220  *                 t[:, colInd] = c
5221  *             return t
5222  */
5223     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBInvACol); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 131, __pyx_L1_error)
5224     __Pyx_GOTREF(__pyx_t_3);
5225     __pyx_t_1 = NULL;
5226     __pyx_t_9 = 0;
5227     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
5228       __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
5229       if (likely(__pyx_t_1)) {
5230         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
5231         __Pyx_INCREF(__pyx_t_1);
5232         __Pyx_INCREF(function);
5233         __Pyx_DECREF_SET(__pyx_t_3, function);
5234         __pyx_t_9 = 1;
5235       }
5236     }
5237     #if CYTHON_FAST_PYCALL
5238     if (PyFunction_Check(__pyx_t_3)) {
5239       PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_colInd, ((PyObject *)__pyx_v_c)};
5240       __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 131, __pyx_L1_error)
5241       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
5242       __Pyx_GOTREF(__pyx_t_4);
5243     } else
5244     #endif
5245     #if CYTHON_FAST_PYCCALL
5246     if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
5247       PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_colInd, ((PyObject *)__pyx_v_c)};
5248       __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 131, __pyx_L1_error)
5249       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
5250       __Pyx_GOTREF(__pyx_t_4);
5251     } else
5252     #endif
5253     {
5254       __pyx_t_2 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 131, __pyx_L1_error)
5255       __Pyx_GOTREF(__pyx_t_2);
5256       if (__pyx_t_1) {
5257         __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL;
5258       }
5259       __Pyx_INCREF(__pyx_v_colInd);
5260       __Pyx_GIVEREF(__pyx_v_colInd);
5261       PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_9, __pyx_v_colInd);
5262       __Pyx_INCREF(((PyObject *)__pyx_v_c));
5263       __Pyx_GIVEREF(((PyObject *)__pyx_v_c));
5264       PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_9, ((PyObject *)__pyx_v_c));
5265       __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 131, __pyx_L1_error)
5266       __Pyx_GOTREF(__pyx_t_4);
5267       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5268     }
5269     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5270     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5271 
5272     /* "cylp/cy/CyClpSimplex.pyx":132
5273  *             for colInd in xrange(nAllVars):
5274  *                 self.getBInvACol(colInd, c)
5275  *                 t[:, colInd] = c             # <<<<<<<<<<<<<<
5276  *             return t
5277  *
5278  */
5279     __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error)
5280     __Pyx_GOTREF(__pyx_t_4);
5281     __Pyx_INCREF(__pyx_slice_);
5282     __Pyx_GIVEREF(__pyx_slice_);
5283     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_slice_);
5284     __Pyx_INCREF(__pyx_v_colInd);
5285     __Pyx_GIVEREF(__pyx_v_colInd);
5286     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_colInd);
5287     if (unlikely(PyObject_SetItem(__pyx_v_t, __pyx_t_4, ((PyObject *)__pyx_v_c)) < 0)) __PYX_ERR(0, 132, __pyx_L1_error)
5288     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5289 
5290     /* "cylp/cy/CyClpSimplex.pyx":130
5291  *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
5292  *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
5293  *             for colInd in xrange(nAllVars):             # <<<<<<<<<<<<<<
5294  *                 self.getBInvACol(colInd, c)
5295  *                 t[:, colInd] = c
5296  */
5297   }
5298   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5299 
5300   /* "cylp/cy/CyClpSimplex.pyx":133
5301  *                 self.getBInvACol(colInd, c)
5302  *                 t[:, colInd] = c
5303  *             return t             # <<<<<<<<<<<<<<
5304  *
5305  *     property objective:
5306  */
5307   __Pyx_XDECREF(__pyx_r);
5308   __Pyx_INCREF(__pyx_v_t);
5309   __pyx_r = __pyx_v_t;
5310   goto __pyx_L0;
5311 
5312   /* "cylp/cy/CyClpSimplex.pyx":126
5313  *
5314  *     property tableau:
5315  *         def __get__(self):             # <<<<<<<<<<<<<<
5316  *             nAllVars = self.nVariables + self.nConstraints
5317  *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
5318  */
5319 
5320   /* function exit code */
5321   __pyx_L1_error:;
5322   __Pyx_XDECREF(__pyx_t_1);
5323   __Pyx_XDECREF(__pyx_t_2);
5324   __Pyx_XDECREF(__pyx_t_3);
5325   __Pyx_XDECREF(__pyx_t_4);
5326   __Pyx_XDECREF(__pyx_t_5);
5327   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
5328     __Pyx_PyThreadState_declare
5329     __Pyx_PyThreadState_assign
5330     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
5331     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_c.rcbuffer->pybuffer);
5332   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
5333   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.tableau.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5334   __pyx_r = NULL;
5335   goto __pyx_L2;
5336   __pyx_L0:;
5337   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_c.rcbuffer->pybuffer);
5338   __pyx_L2:;
5339   __Pyx_XDECREF(__pyx_v_nAllVars);
5340   __Pyx_XDECREF(__pyx_v_t);
5341   __Pyx_XDECREF((PyObject *)__pyx_v_c);
5342   __Pyx_XDECREF(__pyx_v_colInd);
5343   __Pyx_XGIVEREF(__pyx_r);
5344   __Pyx_TraceReturn(__pyx_r, 0);
5345   __Pyx_RefNannyFinishContext();
5346   return __pyx_r;
5347 }
5348 
5349 /* "cylp/cy/CyClpSimplex.pyx":140
5350  *         See the :ref:`modeling example <modeling-usage>`.
5351  *         '''
5352  *         def __set__(self, obj):             # <<<<<<<<<<<<<<
5353  *             if self.cyLPModel:
5354  *                 self.cyLPModel.objective = obj
5355  */
5356 
5357 /* Python wrapper */
5358 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_obj); /*proto*/
5359 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_obj) {
5360   int __pyx_r;
5361   __Pyx_RefNannyDeclarations
5362   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
5363   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective___set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_obj));
5364 
5365   /* function exit code */
5366   __Pyx_RefNannyFinishContext();
5367   return __pyx_r;
5368 }
5369 
5370 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective___set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_obj) {
5371   PyObject *__pyx_v_o = NULL;
5372   int __pyx_r;
5373   __Pyx_TraceDeclarations
5374   __Pyx_RefNannyDeclarations
5375   int __pyx_t_1;
5376   PyObject *__pyx_t_2 = NULL;
5377   int __pyx_t_3;
5378   PyObject *__pyx_t_4 = NULL;
5379   PyObject *__pyx_t_5 = NULL;
5380   PyObject *__pyx_t_6 = NULL;
5381   PyObject *__pyx_t_7 = NULL;
5382   PyObject *__pyx_t_8 = NULL;
5383   int __pyx_lineno = 0;
5384   const char *__pyx_filename = NULL;
5385   int __pyx_clineno = 0;
5386   __Pyx_RefNannySetupContext("__set__", 0);
5387   __Pyx_TraceCall("__set__", __pyx_f[0], 140, 0, __PYX_ERR(0, 140, __pyx_L1_error));
5388 
5389   /* "cylp/cy/CyClpSimplex.pyx":141
5390  *         '''
5391  *         def __set__(self, obj):
5392  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
5393  *                 self.cyLPModel.objective = obj
5394  *                 o = self.cyLPModel.objective
5395  */
5396   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 141, __pyx_L1_error)
5397   if (likely(__pyx_t_1)) {
5398 
5399     /* "cylp/cy/CyClpSimplex.pyx":142
5400  *         def __set__(self, obj):
5401  *             if self.cyLPModel:
5402  *                 self.cyLPModel.objective = obj             # <<<<<<<<<<<<<<
5403  *                 o = self.cyLPModel.objective
5404  *
5405  */
5406     if (__Pyx_PyObject_SetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_objective, __pyx_v_obj) < 0) __PYX_ERR(0, 142, __pyx_L1_error)
5407 
5408     /* "cylp/cy/CyClpSimplex.pyx":143
5409  *             if self.cyLPModel:
5410  *                 self.cyLPModel.objective = obj
5411  *                 o = self.cyLPModel.objective             # <<<<<<<<<<<<<<
5412  *
5413  *                 if not isinstance(o, (np.ndarray)):
5414  */
5415     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_objective); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
5416     __Pyx_GOTREF(__pyx_t_2);
5417     __pyx_v_o = __pyx_t_2;
5418     __pyx_t_2 = 0;
5419 
5420     /* "cylp/cy/CyClpSimplex.pyx":145
5421  *                 o = self.cyLPModel.objective
5422  *
5423  *                 if not isinstance(o, (np.ndarray)):             # <<<<<<<<<<<<<<
5424  *                     o = o.toarray()[0]
5425  *                 self.setObjectiveArray(o.astype(np.double))
5426  */
5427     __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_ptype_5numpy_ndarray);
5428     __pyx_t_3 = ((!(__pyx_t_1 != 0)) != 0);
5429     if (__pyx_t_3) {
5430 
5431       /* "cylp/cy/CyClpSimplex.pyx":146
5432  *
5433  *                 if not isinstance(o, (np.ndarray)):
5434  *                     o = o.toarray()[0]             # <<<<<<<<<<<<<<
5435  *                 self.setObjectiveArray(o.astype(np.double))
5436  *                 # This old version doesn't work in some versions of Scipy
5437  */
5438       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_o, __pyx_n_s_toarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 146, __pyx_L1_error)
5439       __Pyx_GOTREF(__pyx_t_4);
5440       __pyx_t_5 = NULL;
5441       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
5442         __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
5443         if (likely(__pyx_t_5)) {
5444           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
5445           __Pyx_INCREF(__pyx_t_5);
5446           __Pyx_INCREF(function);
5447           __Pyx_DECREF_SET(__pyx_t_4, function);
5448         }
5449       }
5450       __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
5451       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
5452       if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 146, __pyx_L1_error)
5453       __Pyx_GOTREF(__pyx_t_2);
5454       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5455       __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 146, __pyx_L1_error)
5456       __Pyx_GOTREF(__pyx_t_4);
5457       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5458       __Pyx_DECREF_SET(__pyx_v_o, __pyx_t_4);
5459       __pyx_t_4 = 0;
5460 
5461       /* "cylp/cy/CyClpSimplex.pyx":145
5462  *                 o = self.cyLPModel.objective
5463  *
5464  *                 if not isinstance(o, (np.ndarray)):             # <<<<<<<<<<<<<<
5465  *                     o = o.toarray()[0]
5466  *                 self.setObjectiveArray(o.astype(np.double))
5467  */
5468     }
5469 
5470     /* "cylp/cy/CyClpSimplex.pyx":147
5471  *                 if not isinstance(o, (np.ndarray)):
5472  *                     o = o.toarray()[0]
5473  *                 self.setObjectiveArray(o.astype(np.double))             # <<<<<<<<<<<<<<
5474  *                 # This old version doesn't work in some versions of Scipy
5475  *                 # For csr_matrixPlus, o[0,i] is still a matrix, not a number
5476  */
5477     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setObjectiveArray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 147, __pyx_L1_error)
5478     __Pyx_GOTREF(__pyx_t_2);
5479     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_o, __pyx_n_s_astype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error)
5480     __Pyx_GOTREF(__pyx_t_6);
5481     __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 147, __pyx_L1_error)
5482     __Pyx_GOTREF(__pyx_t_7);
5483     __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_double); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 147, __pyx_L1_error)
5484     __Pyx_GOTREF(__pyx_t_8);
5485     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
5486     __pyx_t_7 = NULL;
5487     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
5488       __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
5489       if (likely(__pyx_t_7)) {
5490         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
5491         __Pyx_INCREF(__pyx_t_7);
5492         __Pyx_INCREF(function);
5493         __Pyx_DECREF_SET(__pyx_t_6, function);
5494       }
5495     }
5496     __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_8);
5497     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
5498     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5499     if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error)
5500     __Pyx_GOTREF(__pyx_t_5);
5501     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5502     __pyx_t_6 = NULL;
5503     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
5504       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
5505       if (likely(__pyx_t_6)) {
5506         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
5507         __Pyx_INCREF(__pyx_t_6);
5508         __Pyx_INCREF(function);
5509         __Pyx_DECREF_SET(__pyx_t_2, function);
5510       }
5511     }
5512     __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5);
5513     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
5514     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5515     if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error)
5516     __Pyx_GOTREF(__pyx_t_4);
5517     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5518     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5519 
5520     /* "cylp/cy/CyClpSimplex.pyx":141
5521  *         '''
5522  *         def __set__(self, obj):
5523  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
5524  *                 self.cyLPModel.objective = obj
5525  *                 o = self.cyLPModel.objective
5526  */
5527     goto __pyx_L3;
5528   }
5529 
5530   /* "cylp/cy/CyClpSimplex.pyx":169
5531  *                 #       self.cyLPModel.objective.astype(np.double))
5532  *             else:
5533  *                 raise Exception('To set the objective function of ' \             # <<<<<<<<<<<<<<
5534  *                                 'CyClpSimplex set cylpSimplex.cyLPModel ' \
5535  *                                 'first.')
5536  */
5537   /*else*/ {
5538     __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 169, __pyx_L1_error)
5539     __Pyx_GOTREF(__pyx_t_4);
5540     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
5541     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5542     __PYX_ERR(0, 169, __pyx_L1_error)
5543   }
5544   __pyx_L3:;
5545 
5546   /* "cylp/cy/CyClpSimplex.pyx":140
5547  *         See the :ref:`modeling example <modeling-usage>`.
5548  *         '''
5549  *         def __set__(self, obj):             # <<<<<<<<<<<<<<
5550  *             if self.cyLPModel:
5551  *                 self.cyLPModel.objective = obj
5552  */
5553 
5554   /* function exit code */
5555   __pyx_r = 0;
5556   goto __pyx_L0;
5557   __pyx_L1_error:;
5558   __Pyx_XDECREF(__pyx_t_2);
5559   __Pyx_XDECREF(__pyx_t_4);
5560   __Pyx_XDECREF(__pyx_t_5);
5561   __Pyx_XDECREF(__pyx_t_6);
5562   __Pyx_XDECREF(__pyx_t_7);
5563   __Pyx_XDECREF(__pyx_t_8);
5564   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5565   __pyx_r = -1;
5566   __pyx_L0:;
5567   __Pyx_XDECREF(__pyx_v_o);
5568   __Pyx_TraceReturn(Py_None, 0);
5569   __Pyx_RefNannyFinishContext();
5570   return __pyx_r;
5571 }
5572 
5573 /* "cylp/cy/CyClpSimplex.pyx":172
5574  *                                 'CyClpSimplex set cylpSimplex.cyLPModel ' \
5575  *                                 'first.')
5576  *         def __get__(self):             # <<<<<<<<<<<<<<
5577  *             return <object>self.CppSelf.getObjective()
5578  *
5579  */
5580 
5581 /* Python wrapper */
5582 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_3__get__(PyObject *__pyx_v_self); /*proto*/
5583 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_3__get__(PyObject *__pyx_v_self) {
5584   PyObject *__pyx_r = 0;
5585   __Pyx_RefNannyDeclarations
5586   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5587   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_2__get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
5588 
5589   /* function exit code */
5590   __Pyx_RefNannyFinishContext();
5591   return __pyx_r;
5592 }
5593 
5594 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_2__get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
5595   PyObject *__pyx_r = NULL;
5596   __Pyx_TraceDeclarations
5597   __Pyx_RefNannyDeclarations
5598   PyObject *__pyx_t_1;
5599   int __pyx_lineno = 0;
5600   const char *__pyx_filename = NULL;
5601   int __pyx_clineno = 0;
5602   __Pyx_RefNannySetupContext("__get__", 0);
5603   __Pyx_TraceCall("__get__", __pyx_f[0], 172, 0, __PYX_ERR(0, 172, __pyx_L1_error));
5604 
5605   /* "cylp/cy/CyClpSimplex.pyx":173
5606  *                                 'first.')
5607  *         def __get__(self):
5608  *             return <object>self.CppSelf.getObjective()             # <<<<<<<<<<<<<<
5609  *
5610  *     property objectiveCoefficients:
5611  */
5612   __Pyx_XDECREF(__pyx_r);
5613   __pyx_t_1 = __pyx_v_self->CppSelf->getObjective();
5614   __Pyx_INCREF(((PyObject *)__pyx_t_1));
5615   __pyx_r = ((PyObject *)__pyx_t_1);
5616   goto __pyx_L0;
5617 
5618   /* "cylp/cy/CyClpSimplex.pyx":172
5619  *                                 'CyClpSimplex set cylpSimplex.cyLPModel ' \
5620  *                                 'first.')
5621  *         def __get__(self):             # <<<<<<<<<<<<<<
5622  *             return <object>self.CppSelf.getObjective()
5623  *
5624  */
5625 
5626   /* function exit code */
5627   __pyx_L1_error:;
5628   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5629   __pyx_r = NULL;
5630   __pyx_L0:;
5631   __Pyx_XGIVEREF(__pyx_r);
5632   __Pyx_TraceReturn(__pyx_r, 0);
5633   __Pyx_RefNannyFinishContext();
5634   return __pyx_r;
5635 }
5636 
5637 /* "cylp/cy/CyClpSimplex.pyx":180
5638  *         in a more general context. Sets and gets a numpy array.
5639  *         '''
5640  *         def __set__(self, coef):             # <<<<<<<<<<<<<<
5641  *             self.objective = coef
5642  *
5643  */
5644 
5645 /* Python wrapper */
5646 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_coef); /*proto*/
5647 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_coef) {
5648   int __pyx_r;
5649   __Pyx_RefNannyDeclarations
5650   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
5651   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients___set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_coef));
5652 
5653   /* function exit code */
5654   __Pyx_RefNannyFinishContext();
5655   return __pyx_r;
5656 }
5657 
5658 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients___set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_coef) {
5659   int __pyx_r;
5660   __Pyx_TraceDeclarations
5661   __Pyx_RefNannyDeclarations
5662   int __pyx_lineno = 0;
5663   const char *__pyx_filename = NULL;
5664   int __pyx_clineno = 0;
5665   __Pyx_RefNannySetupContext("__set__", 0);
5666   __Pyx_TraceCall("__set__", __pyx_f[0], 180, 0, __PYX_ERR(0, 180, __pyx_L1_error));
5667 
5668   /* "cylp/cy/CyClpSimplex.pyx":181
5669  *         '''
5670  *         def __set__(self, coef):
5671  *             self.objective = coef             # <<<<<<<<<<<<<<
5672  *
5673  *         def __get__(self):
5674  */
5675   if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objective, __pyx_v_coef) < 0) __PYX_ERR(0, 181, __pyx_L1_error)
5676 
5677   /* "cylp/cy/CyClpSimplex.pyx":180
5678  *         in a more general context. Sets and gets a numpy array.
5679  *         '''
5680  *         def __set__(self, coef):             # <<<<<<<<<<<<<<
5681  *             self.objective = coef
5682  *
5683  */
5684 
5685   /* function exit code */
5686   __pyx_r = 0;
5687   goto __pyx_L0;
5688   __pyx_L1_error:;
5689   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveCoefficients.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5690   __pyx_r = -1;
5691   __pyx_L0:;
5692   __Pyx_TraceReturn(Py_None, 0);
5693   __Pyx_RefNannyFinishContext();
5694   return __pyx_r;
5695 }
5696 
5697 /* "cylp/cy/CyClpSimplex.pyx":183
5698  *             self.objective = coef
5699  *
5700  *         def __get__(self):             # <<<<<<<<<<<<<<
5701  *             return self.objective
5702  *
5703  */
5704 
5705 /* Python wrapper */
5706 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_3__get__(PyObject *__pyx_v_self); /*proto*/
5707 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_3__get__(PyObject *__pyx_v_self) {
5708   PyObject *__pyx_r = 0;
5709   __Pyx_RefNannyDeclarations
5710   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5711   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_2__get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
5712 
5713   /* function exit code */
5714   __Pyx_RefNannyFinishContext();
5715   return __pyx_r;
5716 }
5717 
5718 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_2__get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
5719   PyObject *__pyx_r = NULL;
5720   __Pyx_TraceDeclarations
5721   __Pyx_RefNannyDeclarations
5722   PyObject *__pyx_t_1 = NULL;
5723   int __pyx_lineno = 0;
5724   const char *__pyx_filename = NULL;
5725   int __pyx_clineno = 0;
5726   __Pyx_RefNannySetupContext("__get__", 0);
5727   __Pyx_TraceCall("__get__", __pyx_f[0], 183, 0, __PYX_ERR(0, 183, __pyx_L1_error));
5728 
5729   /* "cylp/cy/CyClpSimplex.pyx":184
5730  *
5731  *         def __get__(self):
5732  *             return self.objective             # <<<<<<<<<<<<<<
5733  *
5734  *     property iteration:
5735  */
5736   __Pyx_XDECREF(__pyx_r);
5737   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objective); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error)
5738   __Pyx_GOTREF(__pyx_t_1);
5739   __pyx_r = __pyx_t_1;
5740   __pyx_t_1 = 0;
5741   goto __pyx_L0;
5742 
5743   /* "cylp/cy/CyClpSimplex.pyx":183
5744  *             self.objective = coef
5745  *
5746  *         def __get__(self):             # <<<<<<<<<<<<<<
5747  *             return self.objective
5748  *
5749  */
5750 
5751   /* function exit code */
5752   __pyx_L1_error:;
5753   __Pyx_XDECREF(__pyx_t_1);
5754   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveCoefficients.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5755   __pyx_r = NULL;
5756   __pyx_L0:;
5757   __Pyx_XGIVEREF(__pyx_r);
5758   __Pyx_TraceReturn(__pyx_r, 0);
5759   __Pyx_RefNannyFinishContext();
5760   return __pyx_r;
5761 }
5762 
5763 /* "cylp/cy/CyClpSimplex.pyx":190
5764  *         Number of iterations.
5765  *         '''
5766  *         def __get__(self):             # <<<<<<<<<<<<<<
5767  *             return self.CppSelf.numberIterations()
5768  *
5769  */
5770 
5771 /* Python wrapper */
5772 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration_1__get__(PyObject *__pyx_v_self); /*proto*/
5773 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration_1__get__(PyObject *__pyx_v_self) {
5774   PyObject *__pyx_r = 0;
5775   __Pyx_RefNannyDeclarations
5776   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5777   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
5778 
5779   /* function exit code */
5780   __Pyx_RefNannyFinishContext();
5781   return __pyx_r;
5782 }
5783 
5784 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
5785   PyObject *__pyx_r = NULL;
5786   __Pyx_TraceDeclarations
5787   __Pyx_RefNannyDeclarations
5788   PyObject *__pyx_t_1 = NULL;
5789   int __pyx_lineno = 0;
5790   const char *__pyx_filename = NULL;
5791   int __pyx_clineno = 0;
5792   __Pyx_RefNannySetupContext("__get__", 0);
5793   __Pyx_TraceCall("__get__", __pyx_f[0], 190, 0, __PYX_ERR(0, 190, __pyx_L1_error));
5794 
5795   /* "cylp/cy/CyClpSimplex.pyx":191
5796  *         '''
5797  *         def __get__(self):
5798  *             return self.CppSelf.numberIterations()             # <<<<<<<<<<<<<<
5799  *
5800  *     property nRows:
5801  */
5802   __Pyx_XDECREF(__pyx_r);
5803   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->numberIterations()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error)
5804   __Pyx_GOTREF(__pyx_t_1);
5805   __pyx_r = __pyx_t_1;
5806   __pyx_t_1 = 0;
5807   goto __pyx_L0;
5808 
5809   /* "cylp/cy/CyClpSimplex.pyx":190
5810  *         Number of iterations.
5811  *         '''
5812  *         def __get__(self):             # <<<<<<<<<<<<<<
5813  *             return self.CppSelf.numberIterations()
5814  *
5815  */
5816 
5817   /* function exit code */
5818   __pyx_L1_error:;
5819   __Pyx_XDECREF(__pyx_t_1);
5820   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.iteration.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5821   __pyx_r = NULL;
5822   __pyx_L0:;
5823   __Pyx_XGIVEREF(__pyx_r);
5824   __Pyx_TraceReturn(__pyx_r, 0);
5825   __Pyx_RefNannyFinishContext();
5826   return __pyx_r;
5827 }
5828 
5829 /* "cylp/cy/CyClpSimplex.pyx":197
5830  *         Number of rows, constraints.
5831  *         '''
5832  *         def __get__(self):             # <<<<<<<<<<<<<<
5833  *             return self.CppSelf.getNumRows()
5834  *
5835  */
5836 
5837 /* Python wrapper */
5838 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows_1__get__(PyObject *__pyx_v_self); /*proto*/
5839 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows_1__get__(PyObject *__pyx_v_self) {
5840   PyObject *__pyx_r = 0;
5841   __Pyx_RefNannyDeclarations
5842   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5843   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
5844 
5845   /* function exit code */
5846   __Pyx_RefNannyFinishContext();
5847   return __pyx_r;
5848 }
5849 
5850 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
5851   PyObject *__pyx_r = NULL;
5852   __Pyx_TraceDeclarations
5853   __Pyx_RefNannyDeclarations
5854   PyObject *__pyx_t_1 = NULL;
5855   int __pyx_lineno = 0;
5856   const char *__pyx_filename = NULL;
5857   int __pyx_clineno = 0;
5858   __Pyx_RefNannySetupContext("__get__", 0);
5859   __Pyx_TraceCall("__get__", __pyx_f[0], 197, 0, __PYX_ERR(0, 197, __pyx_L1_error));
5860 
5861   /* "cylp/cy/CyClpSimplex.pyx":198
5862  *         '''
5863  *         def __get__(self):
5864  *             return self.CppSelf.getNumRows()             # <<<<<<<<<<<<<<
5865  *
5866  *     property nConstraints:
5867  */
5868   __Pyx_XDECREF(__pyx_r);
5869   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumRows()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 198, __pyx_L1_error)
5870   __Pyx_GOTREF(__pyx_t_1);
5871   __pyx_r = __pyx_t_1;
5872   __pyx_t_1 = 0;
5873   goto __pyx_L0;
5874 
5875   /* "cylp/cy/CyClpSimplex.pyx":197
5876  *         Number of rows, constraints.
5877  *         '''
5878  *         def __get__(self):             # <<<<<<<<<<<<<<
5879  *             return self.CppSelf.getNumRows()
5880  *
5881  */
5882 
5883   /* function exit code */
5884   __pyx_L1_error:;
5885   __Pyx_XDECREF(__pyx_t_1);
5886   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.nRows.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5887   __pyx_r = NULL;
5888   __pyx_L0:;
5889   __Pyx_XGIVEREF(__pyx_r);
5890   __Pyx_TraceReturn(__pyx_r, 0);
5891   __Pyx_RefNannyFinishContext();
5892   return __pyx_r;
5893 }
5894 
5895 /* "cylp/cy/CyClpSimplex.pyx":204
5896  *         Number of constraints, rows.
5897  *         '''
5898  *         def __get__(self):             # <<<<<<<<<<<<<<
5899  *             return self.CppSelf.getNumRows()
5900  *
5901  */
5902 
5903 /* Python wrapper */
5904 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints_1__get__(PyObject *__pyx_v_self); /*proto*/
5905 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints_1__get__(PyObject *__pyx_v_self) {
5906   PyObject *__pyx_r = 0;
5907   __Pyx_RefNannyDeclarations
5908   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5909   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
5910 
5911   /* function exit code */
5912   __Pyx_RefNannyFinishContext();
5913   return __pyx_r;
5914 }
5915 
5916 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
5917   PyObject *__pyx_r = NULL;
5918   __Pyx_TraceDeclarations
5919   __Pyx_RefNannyDeclarations
5920   PyObject *__pyx_t_1 = NULL;
5921   int __pyx_lineno = 0;
5922   const char *__pyx_filename = NULL;
5923   int __pyx_clineno = 0;
5924   __Pyx_RefNannySetupContext("__get__", 0);
5925   __Pyx_TraceCall("__get__", __pyx_f[0], 204, 0, __PYX_ERR(0, 204, __pyx_L1_error));
5926 
5927   /* "cylp/cy/CyClpSimplex.pyx":205
5928  *         '''
5929  *         def __get__(self):
5930  *             return self.CppSelf.getNumRows()             # <<<<<<<<<<<<<<
5931  *
5932  *     property nVariables:
5933  */
5934   __Pyx_XDECREF(__pyx_r);
5935   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumRows()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error)
5936   __Pyx_GOTREF(__pyx_t_1);
5937   __pyx_r = __pyx_t_1;
5938   __pyx_t_1 = 0;
5939   goto __pyx_L0;
5940 
5941   /* "cylp/cy/CyClpSimplex.pyx":204
5942  *         Number of constraints, rows.
5943  *         '''
5944  *         def __get__(self):             # <<<<<<<<<<<<<<
5945  *             return self.CppSelf.getNumRows()
5946  *
5947  */
5948 
5949   /* function exit code */
5950   __pyx_L1_error:;
5951   __Pyx_XDECREF(__pyx_t_1);
5952   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.nConstraints.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5953   __pyx_r = NULL;
5954   __pyx_L0:;
5955   __Pyx_XGIVEREF(__pyx_r);
5956   __Pyx_TraceReturn(__pyx_r, 0);
5957   __Pyx_RefNannyFinishContext();
5958   return __pyx_r;
5959 }
5960 
5961 /* "cylp/cy/CyClpSimplex.pyx":211
5962  *         Number of variables, columns.
5963  *         '''
5964  *         def __get__(self):             # <<<<<<<<<<<<<<
5965  *             return self.CppSelf.getNumCols()
5966  *
5967  */
5968 
5969 /* Python wrapper */
5970 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables_1__get__(PyObject *__pyx_v_self); /*proto*/
5971 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables_1__get__(PyObject *__pyx_v_self) {
5972   PyObject *__pyx_r = 0;
5973   __Pyx_RefNannyDeclarations
5974   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5975   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
5976 
5977   /* function exit code */
5978   __Pyx_RefNannyFinishContext();
5979   return __pyx_r;
5980 }
5981 
5982 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
5983   PyObject *__pyx_r = NULL;
5984   __Pyx_TraceDeclarations
5985   __Pyx_RefNannyDeclarations
5986   PyObject *__pyx_t_1 = NULL;
5987   int __pyx_lineno = 0;
5988   const char *__pyx_filename = NULL;
5989   int __pyx_clineno = 0;
5990   __Pyx_RefNannySetupContext("__get__", 0);
5991   __Pyx_TraceCall("__get__", __pyx_f[0], 211, 0, __PYX_ERR(0, 211, __pyx_L1_error));
5992 
5993   /* "cylp/cy/CyClpSimplex.pyx":212
5994  *         '''
5995  *         def __get__(self):
5996  *             return self.CppSelf.getNumCols()             # <<<<<<<<<<<<<<
5997  *
5998  *     property nCols:
5999  */
6000   __Pyx_XDECREF(__pyx_r);
6001   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumCols()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 212, __pyx_L1_error)
6002   __Pyx_GOTREF(__pyx_t_1);
6003   __pyx_r = __pyx_t_1;
6004   __pyx_t_1 = 0;
6005   goto __pyx_L0;
6006 
6007   /* "cylp/cy/CyClpSimplex.pyx":211
6008  *         Number of variables, columns.
6009  *         '''
6010  *         def __get__(self):             # <<<<<<<<<<<<<<
6011  *             return self.CppSelf.getNumCols()
6012  *
6013  */
6014 
6015   /* function exit code */
6016   __pyx_L1_error:;
6017   __Pyx_XDECREF(__pyx_t_1);
6018   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.nVariables.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6019   __pyx_r = NULL;
6020   __pyx_L0:;
6021   __Pyx_XGIVEREF(__pyx_r);
6022   __Pyx_TraceReturn(__pyx_r, 0);
6023   __Pyx_RefNannyFinishContext();
6024   return __pyx_r;
6025 }
6026 
6027 /* "cylp/cy/CyClpSimplex.pyx":218
6028  *         Number of columns, variables.
6029  *         '''
6030  *         def __get__(self):             # <<<<<<<<<<<<<<
6031  *             return self.CppSelf.getNumCols()
6032  *
6033  */
6034 
6035 /* Python wrapper */
6036 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols_1__get__(PyObject *__pyx_v_self); /*proto*/
6037 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols_1__get__(PyObject *__pyx_v_self) {
6038   PyObject *__pyx_r = 0;
6039   __Pyx_RefNannyDeclarations
6040   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6041   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
6042 
6043   /* function exit code */
6044   __Pyx_RefNannyFinishContext();
6045   return __pyx_r;
6046 }
6047 
6048 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
6049   PyObject *__pyx_r = NULL;
6050   __Pyx_TraceDeclarations
6051   __Pyx_RefNannyDeclarations
6052   PyObject *__pyx_t_1 = NULL;
6053   int __pyx_lineno = 0;
6054   const char *__pyx_filename = NULL;
6055   int __pyx_clineno = 0;
6056   __Pyx_RefNannySetupContext("__get__", 0);
6057   __Pyx_TraceCall("__get__", __pyx_f[0], 218, 0, __PYX_ERR(0, 218, __pyx_L1_error));
6058 
6059   /* "cylp/cy/CyClpSimplex.pyx":219
6060  *         '''
6061  *         def __get__(self):
6062  *             return self.CppSelf.getNumCols()             # <<<<<<<<<<<<<<
6063  *
6064  *     property coefMatrix:
6065  */
6066   __Pyx_XDECREF(__pyx_r);
6067   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumCols()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 219, __pyx_L1_error)
6068   __Pyx_GOTREF(__pyx_t_1);
6069   __pyx_r = __pyx_t_1;
6070   __pyx_t_1 = 0;
6071   goto __pyx_L0;
6072 
6073   /* "cylp/cy/CyClpSimplex.pyx":218
6074  *         Number of columns, variables.
6075  *         '''
6076  *         def __get__(self):             # <<<<<<<<<<<<<<
6077  *             return self.CppSelf.getNumCols()
6078  *
6079  */
6080 
6081   /* function exit code */
6082   __pyx_L1_error:;
6083   __Pyx_XDECREF(__pyx_t_1);
6084   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.nCols.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6085   __pyx_r = NULL;
6086   __pyx_L0:;
6087   __Pyx_XGIVEREF(__pyx_r);
6088   __Pyx_TraceReturn(__pyx_r, 0);
6089   __Pyx_RefNannyFinishContext();
6090   return __pyx_r;
6091 }
6092 
6093 /* "cylp/cy/CyClpSimplex.pyx":225
6094  *         The coefficient matrix. A scipy sparse matrix.
6095  *         '''
6096  *         def __get__(self):             # <<<<<<<<<<<<<<
6097  *             mat = self.matrix
6098  *             if mat.hasGaps():
6099  */
6100 
6101 /* Python wrapper */
6102 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_1__get__(PyObject *__pyx_v_self); /*proto*/
6103 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_1__get__(PyObject *__pyx_v_self) {
6104   PyObject *__pyx_r = 0;
6105   __Pyx_RefNannyDeclarations
6106   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6107   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
6108 
6109   /* function exit code */
6110   __Pyx_RefNannyFinishContext();
6111   return __pyx_r;
6112 }
6113 
6114 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
6115   PyObject *__pyx_v_mat = NULL;
6116   PyObject *__pyx_r = NULL;
6117   __Pyx_TraceDeclarations
6118   __Pyx_RefNannyDeclarations
6119   PyObject *__pyx_t_1 = NULL;
6120   PyObject *__pyx_t_2 = NULL;
6121   PyObject *__pyx_t_3 = NULL;
6122   int __pyx_t_4;
6123   PyObject *__pyx_t_5 = NULL;
6124   PyObject *__pyx_t_6 = NULL;
6125   PyObject *__pyx_t_7 = NULL;
6126   int __pyx_lineno = 0;
6127   const char *__pyx_filename = NULL;
6128   int __pyx_clineno = 0;
6129   __Pyx_RefNannySetupContext("__get__", 0);
6130   __Pyx_TraceCall("__get__", __pyx_f[0], 225, 0, __PYX_ERR(0, 225, __pyx_L1_error));
6131 
6132   /* "cylp/cy/CyClpSimplex.pyx":226
6133  *         '''
6134  *         def __get__(self):
6135  *             mat = self.matrix             # <<<<<<<<<<<<<<
6136  *             if mat.hasGaps():
6137  *                 mat.removeGaps()
6138  */
6139   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_matrix); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error)
6140   __Pyx_GOTREF(__pyx_t_1);
6141   __pyx_v_mat = __pyx_t_1;
6142   __pyx_t_1 = 0;
6143 
6144   /* "cylp/cy/CyClpSimplex.pyx":227
6145  *         def __get__(self):
6146  *             mat = self.matrix
6147  *             if mat.hasGaps():             # <<<<<<<<<<<<<<
6148  *                 mat.removeGaps()
6149  *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
6150  */
6151   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_hasGaps); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 227, __pyx_L1_error)
6152   __Pyx_GOTREF(__pyx_t_2);
6153   __pyx_t_3 = NULL;
6154   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6155     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6156     if (likely(__pyx_t_3)) {
6157       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6158       __Pyx_INCREF(__pyx_t_3);
6159       __Pyx_INCREF(function);
6160       __Pyx_DECREF_SET(__pyx_t_2, function);
6161     }
6162   }
6163   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
6164   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6165   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 227, __pyx_L1_error)
6166   __Pyx_GOTREF(__pyx_t_1);
6167   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6168   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 227, __pyx_L1_error)
6169   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6170   if (__pyx_t_4) {
6171 
6172     /* "cylp/cy/CyClpSimplex.pyx":228
6173  *             mat = self.matrix
6174  *             if mat.hasGaps():
6175  *                 mat.removeGaps()             # <<<<<<<<<<<<<<
6176  *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
6177  *                              shape=(self.nConstraints, self.nVariables))
6178  */
6179     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_removeGaps); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 228, __pyx_L1_error)
6180     __Pyx_GOTREF(__pyx_t_2);
6181     __pyx_t_3 = NULL;
6182     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6183       __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6184       if (likely(__pyx_t_3)) {
6185         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6186         __Pyx_INCREF(__pyx_t_3);
6187         __Pyx_INCREF(function);
6188         __Pyx_DECREF_SET(__pyx_t_2, function);
6189       }
6190     }
6191     __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
6192     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6193     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error)
6194     __Pyx_GOTREF(__pyx_t_1);
6195     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6196     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6197 
6198     /* "cylp/cy/CyClpSimplex.pyx":227
6199  *         def __get__(self):
6200  *             mat = self.matrix
6201  *             if mat.hasGaps():             # <<<<<<<<<<<<<<
6202  *                 mat.removeGaps()
6203  *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
6204  */
6205   }
6206 
6207   /* "cylp/cy/CyClpSimplex.pyx":229
6208  *             if mat.hasGaps():
6209  *                 mat.removeGaps()
6210  *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),             # <<<<<<<<<<<<<<
6211  *                              shape=(self.nConstraints, self.nVariables))
6212  *
6213  */
6214   __Pyx_XDECREF(__pyx_r);
6215   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_csc_matrixPlus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error)
6216   __Pyx_GOTREF(__pyx_t_1);
6217   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_elements); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error)
6218   __Pyx_GOTREF(__pyx_t_2);
6219   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error)
6220   __Pyx_GOTREF(__pyx_t_3);
6221   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_vectorStarts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error)
6222   __Pyx_GOTREF(__pyx_t_5);
6223   __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 229, __pyx_L1_error)
6224   __Pyx_GOTREF(__pyx_t_6);
6225   __Pyx_GIVEREF(__pyx_t_2);
6226   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
6227   __Pyx_GIVEREF(__pyx_t_3);
6228   PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
6229   __Pyx_GIVEREF(__pyx_t_5);
6230   PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5);
6231   __pyx_t_2 = 0;
6232   __pyx_t_3 = 0;
6233   __pyx_t_5 = 0;
6234   __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error)
6235   __Pyx_GOTREF(__pyx_t_5);
6236   __Pyx_GIVEREF(__pyx_t_6);
6237   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
6238   __pyx_t_6 = 0;
6239 
6240   /* "cylp/cy/CyClpSimplex.pyx":230
6241  *                 mat.removeGaps()
6242  *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
6243  *                              shape=(self.nConstraints, self.nVariables))             # <<<<<<<<<<<<<<
6244  *
6245  *         def __set__(self, sparseMatrix):
6246  */
6247   __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 230, __pyx_L1_error)
6248   __Pyx_GOTREF(__pyx_t_6);
6249   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 230, __pyx_L1_error)
6250   __Pyx_GOTREF(__pyx_t_3);
6251   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error)
6252   __Pyx_GOTREF(__pyx_t_2);
6253   __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 230, __pyx_L1_error)
6254   __Pyx_GOTREF(__pyx_t_7);
6255   __Pyx_GIVEREF(__pyx_t_3);
6256   PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3);
6257   __Pyx_GIVEREF(__pyx_t_2);
6258   PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2);
6259   __pyx_t_3 = 0;
6260   __pyx_t_2 = 0;
6261   if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_shape, __pyx_t_7) < 0) __PYX_ERR(0, 230, __pyx_L1_error)
6262   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
6263 
6264   /* "cylp/cy/CyClpSimplex.pyx":229
6265  *             if mat.hasGaps():
6266  *                 mat.removeGaps()
6267  *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),             # <<<<<<<<<<<<<<
6268  *                              shape=(self.nConstraints, self.nVariables))
6269  *
6270  */
6271   __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 229, __pyx_L1_error)
6272   __Pyx_GOTREF(__pyx_t_7);
6273   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6274   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
6275   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6276   __pyx_r = __pyx_t_7;
6277   __pyx_t_7 = 0;
6278   goto __pyx_L0;
6279 
6280   /* "cylp/cy/CyClpSimplex.pyx":225
6281  *         The coefficient matrix. A scipy sparse matrix.
6282  *         '''
6283  *         def __get__(self):             # <<<<<<<<<<<<<<
6284  *             mat = self.matrix
6285  *             if mat.hasGaps():
6286  */
6287 
6288   /* function exit code */
6289   __pyx_L1_error:;
6290   __Pyx_XDECREF(__pyx_t_1);
6291   __Pyx_XDECREF(__pyx_t_2);
6292   __Pyx_XDECREF(__pyx_t_3);
6293   __Pyx_XDECREF(__pyx_t_5);
6294   __Pyx_XDECREF(__pyx_t_6);
6295   __Pyx_XDECREF(__pyx_t_7);
6296   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.coefMatrix.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6297   __pyx_r = NULL;
6298   __pyx_L0:;
6299   __Pyx_XDECREF(__pyx_v_mat);
6300   __Pyx_XGIVEREF(__pyx_r);
6301   __Pyx_TraceReturn(__pyx_r, 0);
6302   __Pyx_RefNannyFinishContext();
6303   return __pyx_r;
6304 }
6305 
6306 /* "cylp/cy/CyClpSimplex.pyx":232
6307  *                              shape=(self.nConstraints, self.nVariables))
6308  *
6309  *         def __set__(self, sparseMatrix):             # <<<<<<<<<<<<<<
6310  *             try:
6311  *                 m = sparseMatrix.tocoo()
6312  */
6313 
6314 /* Python wrapper */
6315 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_sparseMatrix); /*proto*/
6316 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_sparseMatrix) {
6317   int __pyx_r;
6318   __Pyx_RefNannyDeclarations
6319   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
6320   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_sparseMatrix));
6321 
6322   /* function exit code */
6323   __Pyx_RefNannyFinishContext();
6324   return __pyx_r;
6325 }
6326 
6327 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_sparseMatrix) {
6328   PyObject *__pyx_v_m = NULL;
6329   int __pyx_r;
6330   __Pyx_TraceDeclarations
6331   __Pyx_RefNannyDeclarations
6332   PyObject *__pyx_t_1 = NULL;
6333   PyObject *__pyx_t_2 = NULL;
6334   PyObject *__pyx_t_3 = NULL;
6335   PyObject *__pyx_t_4 = NULL;
6336   PyObject *__pyx_t_5 = NULL;
6337   PyObject *__pyx_t_6 = NULL;
6338   PyObject *__pyx_t_7 = NULL;
6339   int __pyx_lineno = 0;
6340   const char *__pyx_filename = NULL;
6341   int __pyx_clineno = 0;
6342   __Pyx_RefNannySetupContext("__set__", 0);
6343   __Pyx_TraceCall("__set__", __pyx_f[0], 232, 0, __PYX_ERR(0, 232, __pyx_L1_error));
6344 
6345   /* "cylp/cy/CyClpSimplex.pyx":233
6346  *
6347  *         def __set__(self, sparseMatrix):
6348  *             try:             # <<<<<<<<<<<<<<
6349  *                 m = sparseMatrix.tocoo()
6350  *             except:
6351  */
6352   {
6353     __Pyx_PyThreadState_declare
6354     __Pyx_PyThreadState_assign
6355     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
6356     __Pyx_XGOTREF(__pyx_t_1);
6357     __Pyx_XGOTREF(__pyx_t_2);
6358     __Pyx_XGOTREF(__pyx_t_3);
6359     /*try:*/ {
6360 
6361       /* "cylp/cy/CyClpSimplex.pyx":234
6362  *         def __set__(self, sparseMatrix):
6363  *             try:
6364  *                 m = sparseMatrix.tocoo()             # <<<<<<<<<<<<<<
6365  *             except:
6366  *                 raise Exception('coefMatrix must be a scipy sparse matrix.')
6367  */
6368       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_sparseMatrix, __pyx_n_s_tocoo); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 234, __pyx_L3_error)
6369       __Pyx_GOTREF(__pyx_t_5);
6370       __pyx_t_6 = NULL;
6371       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
6372         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
6373         if (likely(__pyx_t_6)) {
6374           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
6375           __Pyx_INCREF(__pyx_t_6);
6376           __Pyx_INCREF(function);
6377           __Pyx_DECREF_SET(__pyx_t_5, function);
6378         }
6379       }
6380       __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
6381       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
6382       if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L3_error)
6383       __Pyx_GOTREF(__pyx_t_4);
6384       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
6385       __pyx_v_m = __pyx_t_4;
6386       __pyx_t_4 = 0;
6387 
6388       /* "cylp/cy/CyClpSimplex.pyx":233
6389  *
6390  *         def __set__(self, sparseMatrix):
6391  *             try:             # <<<<<<<<<<<<<<
6392  *                 m = sparseMatrix.tocoo()
6393  *             except:
6394  */
6395     }
6396     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
6397     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6398     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6399     goto __pyx_L8_try_end;
6400     __pyx_L3_error:;
6401     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
6402     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
6403     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
6404 
6405     /* "cylp/cy/CyClpSimplex.pyx":235
6406  *             try:
6407  *                 m = sparseMatrix.tocoo()
6408  *             except:             # <<<<<<<<<<<<<<
6409  *                 raise Exception('coefMatrix must be a scipy sparse matrix.')
6410  *             self.matrix = CyCoinPackedMatrix(True, m.row, m.col, m.data)
6411  */
6412     /*except:*/ {
6413       __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.coefMatrix.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6414       if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(0, 235, __pyx_L5_except_error)
6415       __Pyx_GOTREF(__pyx_t_4);
6416       __Pyx_GOTREF(__pyx_t_5);
6417       __Pyx_GOTREF(__pyx_t_6);
6418 
6419       /* "cylp/cy/CyClpSimplex.pyx":236
6420  *                 m = sparseMatrix.tocoo()
6421  *             except:
6422  *                 raise Exception('coefMatrix must be a scipy sparse matrix.')             # <<<<<<<<<<<<<<
6423  *             self.matrix = CyCoinPackedMatrix(True, m.row, m.col, m.data)
6424  *
6425  */
6426       __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 236, __pyx_L5_except_error)
6427       __Pyx_GOTREF(__pyx_t_7);
6428       __Pyx_Raise(__pyx_t_7, 0, 0, 0);
6429       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
6430       __PYX_ERR(0, 236, __pyx_L5_except_error)
6431     }
6432     __pyx_L5_except_error:;
6433 
6434     /* "cylp/cy/CyClpSimplex.pyx":233
6435  *
6436  *         def __set__(self, sparseMatrix):
6437  *             try:             # <<<<<<<<<<<<<<
6438  *                 m = sparseMatrix.tocoo()
6439  *             except:
6440  */
6441     __Pyx_XGIVEREF(__pyx_t_1);
6442     __Pyx_XGIVEREF(__pyx_t_2);
6443     __Pyx_XGIVEREF(__pyx_t_3);
6444     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
6445     goto __pyx_L1_error;
6446     __pyx_L8_try_end:;
6447   }
6448 
6449   /* "cylp/cy/CyClpSimplex.pyx":237
6450  *             except:
6451  *                 raise Exception('coefMatrix must be a scipy sparse matrix.')
6452  *             self.matrix = CyCoinPackedMatrix(True, m.row, m.col, m.data)             # <<<<<<<<<<<<<<
6453  *
6454  *     property matrix:
6455  */
6456   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_row); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 237, __pyx_L1_error)
6457   __Pyx_GOTREF(__pyx_t_6);
6458   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_col); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 237, __pyx_L1_error)
6459   __Pyx_GOTREF(__pyx_t_5);
6460   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_data); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 237, __pyx_L1_error)
6461   __Pyx_GOTREF(__pyx_t_4);
6462   __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 237, __pyx_L1_error)
6463   __Pyx_GOTREF(__pyx_t_7);
6464   __Pyx_INCREF(Py_True);
6465   __Pyx_GIVEREF(Py_True);
6466   PyTuple_SET_ITEM(__pyx_t_7, 0, Py_True);
6467   __Pyx_GIVEREF(__pyx_t_6);
6468   PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
6469   __Pyx_GIVEREF(__pyx_t_5);
6470   PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5);
6471   __Pyx_GIVEREF(__pyx_t_4);
6472   PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4);
6473   __pyx_t_6 = 0;
6474   __pyx_t_5 = 0;
6475   __pyx_t_4 = 0;
6476   __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix), __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 237, __pyx_L1_error)
6477   __Pyx_GOTREF(__pyx_t_4);
6478   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
6479   if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_matrix, __pyx_t_4) < 0) __PYX_ERR(0, 237, __pyx_L1_error)
6480   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
6481 
6482   /* "cylp/cy/CyClpSimplex.pyx":232
6483  *                              shape=(self.nConstraints, self.nVariables))
6484  *
6485  *         def __set__(self, sparseMatrix):             # <<<<<<<<<<<<<<
6486  *             try:
6487  *                 m = sparseMatrix.tocoo()
6488  */
6489 
6490   /* function exit code */
6491   __pyx_r = 0;
6492   goto __pyx_L0;
6493   __pyx_L1_error:;
6494   __Pyx_XDECREF(__pyx_t_4);
6495   __Pyx_XDECREF(__pyx_t_5);
6496   __Pyx_XDECREF(__pyx_t_6);
6497   __Pyx_XDECREF(__pyx_t_7);
6498   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.coefMatrix.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6499   __pyx_r = -1;
6500   __pyx_L0:;
6501   __Pyx_XDECREF(__pyx_v_m);
6502   __Pyx_TraceReturn(Py_None, 0);
6503   __Pyx_RefNannyFinishContext();
6504   return __pyx_r;
6505 }
6506 
6507 /* "cylp/cy/CyClpSimplex.pyx":243
6508  *         The coefficient matrix. A CyCoinPackedMatrix.
6509  *         '''
6510  *         def __get__(self):             # <<<<<<<<<<<<<<
6511  *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()
6512  *             mat = CyCoinPackedMatrix()
6513  */
6514 
6515 /* Python wrapper */
6516 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_1__get__(PyObject *__pyx_v_self); /*proto*/
6517 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_1__get__(PyObject *__pyx_v_self) {
6518   PyObject *__pyx_r = 0;
6519   __Pyx_RefNannyDeclarations
6520   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6521   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
6522 
6523   /* function exit code */
6524   __Pyx_RefNannyFinishContext();
6525   return __pyx_r;
6526 }
6527 
6528 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
6529   ICoinPackedMatrix *__pyx_v_cppMat;
6530   struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_mat = NULL;
6531   PyObject *__pyx_r = NULL;
6532   __Pyx_TraceDeclarations
6533   __Pyx_RefNannyDeclarations
6534   PyObject *__pyx_t_1 = NULL;
6535   int __pyx_lineno = 0;
6536   const char *__pyx_filename = NULL;
6537   int __pyx_clineno = 0;
6538   __Pyx_RefNannySetupContext("__get__", 0);
6539   __Pyx_TraceCall("__get__", __pyx_f[0], 243, 0, __PYX_ERR(0, 243, __pyx_L1_error));
6540 
6541   /* "cylp/cy/CyClpSimplex.pyx":244
6542  *         '''
6543  *         def __get__(self):
6544  *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()             # <<<<<<<<<<<<<<
6545  *             mat = CyCoinPackedMatrix()
6546  *             mat.CppSelf = cppMat
6547  */
6548   __pyx_v_cppMat = __pyx_v_self->CppSelf->getMatrix();
6549 
6550   /* "cylp/cy/CyClpSimplex.pyx":245
6551  *         def __get__(self):
6552  *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()
6553  *             mat = CyCoinPackedMatrix()             # <<<<<<<<<<<<<<
6554  *             mat.CppSelf = cppMat
6555  *             return mat
6556  */
6557   __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error)
6558   __Pyx_GOTREF(__pyx_t_1);
6559   __pyx_v_mat = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)__pyx_t_1);
6560   __pyx_t_1 = 0;
6561 
6562   /* "cylp/cy/CyClpSimplex.pyx":246
6563  *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()
6564  *             mat = CyCoinPackedMatrix()
6565  *             mat.CppSelf = cppMat             # <<<<<<<<<<<<<<
6566  *             return mat
6567  *
6568  */
6569   __pyx_v_mat->CppSelf = __pyx_v_cppMat;
6570 
6571   /* "cylp/cy/CyClpSimplex.pyx":247
6572  *             mat = CyCoinPackedMatrix()
6573  *             mat.CppSelf = cppMat
6574  *             return mat             # <<<<<<<<<<<<<<
6575  *
6576  *         def __set__(self, cyCoinPackedMatrix):
6577  */
6578   __Pyx_XDECREF(__pyx_r);
6579   __Pyx_INCREF(((PyObject *)__pyx_v_mat));
6580   __pyx_r = ((PyObject *)__pyx_v_mat);
6581   goto __pyx_L0;
6582 
6583   /* "cylp/cy/CyClpSimplex.pyx":243
6584  *         The coefficient matrix. A CyCoinPackedMatrix.
6585  *         '''
6586  *         def __get__(self):             # <<<<<<<<<<<<<<
6587  *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()
6588  *             mat = CyCoinPackedMatrix()
6589  */
6590 
6591   /* function exit code */
6592   __pyx_L1_error:;
6593   __Pyx_XDECREF(__pyx_t_1);
6594   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.matrix.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6595   __pyx_r = NULL;
6596   __pyx_L0:;
6597   __Pyx_XDECREF((PyObject *)__pyx_v_mat);
6598   __Pyx_XGIVEREF(__pyx_r);
6599   __Pyx_TraceReturn(__pyx_r, 0);
6600   __Pyx_RefNannyFinishContext();
6601   return __pyx_r;
6602 }
6603 
6604 /* "cylp/cy/CyClpSimplex.pyx":249
6605  *             return mat
6606  *
6607  *         def __set__(self, cyCoinPackedMatrix):             # <<<<<<<<<<<<<<
6608  *             self.replaceMatrix(cyCoinPackedMatrix, True)
6609  *
6610  */
6611 
6612 /* Python wrapper */
6613 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_cyCoinPackedMatrix); /*proto*/
6614 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_cyCoinPackedMatrix) {
6615   int __pyx_r;
6616   __Pyx_RefNannyDeclarations
6617   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
6618   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_cyCoinPackedMatrix));
6619 
6620   /* function exit code */
6621   __Pyx_RefNannyFinishContext();
6622   return __pyx_r;
6623 }
6624 
6625 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyCoinPackedMatrix) {
6626   int __pyx_r;
6627   __Pyx_TraceDeclarations
6628   __Pyx_RefNannyDeclarations
6629   PyObject *__pyx_t_1 = NULL;
6630   PyObject *__pyx_t_2 = NULL;
6631   PyObject *__pyx_t_3 = NULL;
6632   int __pyx_t_4;
6633   PyObject *__pyx_t_5 = NULL;
6634   int __pyx_lineno = 0;
6635   const char *__pyx_filename = NULL;
6636   int __pyx_clineno = 0;
6637   __Pyx_RefNannySetupContext("__set__", 0);
6638   __Pyx_TraceCall("__set__", __pyx_f[0], 249, 0, __PYX_ERR(0, 249, __pyx_L1_error));
6639 
6640   /* "cylp/cy/CyClpSimplex.pyx":250
6641  *
6642  *         def __set__(self, cyCoinPackedMatrix):
6643  *             self.replaceMatrix(cyCoinPackedMatrix, True)             # <<<<<<<<<<<<<<
6644  *
6645  *     property constraints:
6646  */
6647   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_replaceMatrix); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error)
6648   __Pyx_GOTREF(__pyx_t_2);
6649   __pyx_t_3 = NULL;
6650   __pyx_t_4 = 0;
6651   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6652     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6653     if (likely(__pyx_t_3)) {
6654       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6655       __Pyx_INCREF(__pyx_t_3);
6656       __Pyx_INCREF(function);
6657       __Pyx_DECREF_SET(__pyx_t_2, function);
6658       __pyx_t_4 = 1;
6659     }
6660   }
6661   #if CYTHON_FAST_PYCALL
6662   if (PyFunction_Check(__pyx_t_2)) {
6663     PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_cyCoinPackedMatrix, Py_True};
6664     __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error)
6665     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6666     __Pyx_GOTREF(__pyx_t_1);
6667   } else
6668   #endif
6669   #if CYTHON_FAST_PYCCALL
6670   if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
6671     PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_cyCoinPackedMatrix, Py_True};
6672     __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error)
6673     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6674     __Pyx_GOTREF(__pyx_t_1);
6675   } else
6676   #endif
6677   {
6678     __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 250, __pyx_L1_error)
6679     __Pyx_GOTREF(__pyx_t_5);
6680     if (__pyx_t_3) {
6681       __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
6682     }
6683     __Pyx_INCREF(__pyx_v_cyCoinPackedMatrix);
6684     __Pyx_GIVEREF(__pyx_v_cyCoinPackedMatrix);
6685     PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_cyCoinPackedMatrix);
6686     __Pyx_INCREF(Py_True);
6687     __Pyx_GIVEREF(Py_True);
6688     PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, Py_True);
6689     __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error)
6690     __Pyx_GOTREF(__pyx_t_1);
6691     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
6692   }
6693   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6694   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6695 
6696   /* "cylp/cy/CyClpSimplex.pyx":249
6697  *             return mat
6698  *
6699  *         def __set__(self, cyCoinPackedMatrix):             # <<<<<<<<<<<<<<
6700  *             self.replaceMatrix(cyCoinPackedMatrix, True)
6701  *
6702  */
6703 
6704   /* function exit code */
6705   __pyx_r = 0;
6706   goto __pyx_L0;
6707   __pyx_L1_error:;
6708   __Pyx_XDECREF(__pyx_t_1);
6709   __Pyx_XDECREF(__pyx_t_2);
6710   __Pyx_XDECREF(__pyx_t_3);
6711   __Pyx_XDECREF(__pyx_t_5);
6712   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.matrix.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6713   __pyx_r = -1;
6714   __pyx_L0:;
6715   __Pyx_TraceReturn(Py_None, 0);
6716   __Pyx_RefNannyFinishContext();
6717   return __pyx_r;
6718 }
6719 
6720 /* "cylp/cy/CyClpSimplex.pyx":256
6721  *         Constraints.
6722  *         '''
6723  *         def __get__(self):             # <<<<<<<<<<<<<<
6724  *             if not self.cyLPModel:
6725  *                 raise Exception('No CyClpSimplex cyLPModel.')
6726  */
6727 
6728 /* Python wrapper */
6729 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints_1__get__(PyObject *__pyx_v_self); /*proto*/
6730 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints_1__get__(PyObject *__pyx_v_self) {
6731   PyObject *__pyx_r = 0;
6732   __Pyx_RefNannyDeclarations
6733   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6734   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
6735 
6736   /* function exit code */
6737   __Pyx_RefNannyFinishContext();
6738   return __pyx_r;
6739 }
6740 
6741 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
6742   PyObject *__pyx_r = NULL;
6743   __Pyx_TraceDeclarations
6744   __Pyx_RefNannyDeclarations
6745   int __pyx_t_1;
6746   int __pyx_t_2;
6747   PyObject *__pyx_t_3 = NULL;
6748   int __pyx_lineno = 0;
6749   const char *__pyx_filename = NULL;
6750   int __pyx_clineno = 0;
6751   __Pyx_RefNannySetupContext("__get__", 0);
6752   __Pyx_TraceCall("__get__", __pyx_f[0], 256, 0, __PYX_ERR(0, 256, __pyx_L1_error));
6753 
6754   /* "cylp/cy/CyClpSimplex.pyx":257
6755  *         '''
6756  *         def __get__(self):
6757  *             if not self.cyLPModel:             # <<<<<<<<<<<<<<
6758  *                 raise Exception('No CyClpSimplex cyLPModel.')
6759  *             else:
6760  */
6761   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 257, __pyx_L1_error)
6762   __pyx_t_2 = ((!__pyx_t_1) != 0);
6763   if (unlikely(__pyx_t_2)) {
6764 
6765     /* "cylp/cy/CyClpSimplex.pyx":258
6766  *         def __get__(self):
6767  *             if not self.cyLPModel:
6768  *                 raise Exception('No CyClpSimplex cyLPModel.')             # <<<<<<<<<<<<<<
6769  *             else:
6770  *                 return self.cyLPModel.constraints
6771  */
6772     __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 258, __pyx_L1_error)
6773     __Pyx_GOTREF(__pyx_t_3);
6774     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
6775     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6776     __PYX_ERR(0, 258, __pyx_L1_error)
6777 
6778     /* "cylp/cy/CyClpSimplex.pyx":257
6779  *         '''
6780  *         def __get__(self):
6781  *             if not self.cyLPModel:             # <<<<<<<<<<<<<<
6782  *                 raise Exception('No CyClpSimplex cyLPModel.')
6783  *             else:
6784  */
6785   }
6786 
6787   /* "cylp/cy/CyClpSimplex.pyx":260
6788  *                 raise Exception('No CyClpSimplex cyLPModel.')
6789  *             else:
6790  *                 return self.cyLPModel.constraints             # <<<<<<<<<<<<<<
6791  *
6792  *     property variableNames:
6793  */
6794   /*else*/ {
6795     __Pyx_XDECREF(__pyx_r);
6796     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_constraints); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 260, __pyx_L1_error)
6797     __Pyx_GOTREF(__pyx_t_3);
6798     __pyx_r = __pyx_t_3;
6799     __pyx_t_3 = 0;
6800     goto __pyx_L0;
6801   }
6802 
6803   /* "cylp/cy/CyClpSimplex.pyx":256
6804  *         Constraints.
6805  *         '''
6806  *         def __get__(self):             # <<<<<<<<<<<<<<
6807  *             if not self.cyLPModel:
6808  *                 raise Exception('No CyClpSimplex cyLPModel.')
6809  */
6810 
6811   /* function exit code */
6812   __pyx_L1_error:;
6813   __Pyx_XDECREF(__pyx_t_3);
6814   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraints.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6815   __pyx_r = NULL;
6816   __pyx_L0:;
6817   __Pyx_XGIVEREF(__pyx_r);
6818   __Pyx_TraceReturn(__pyx_r, 0);
6819   __Pyx_RefNannyFinishContext();
6820   return __pyx_r;
6821 }
6822 
6823 /* "cylp/cy/CyClpSimplex.pyx":266
6824  *         variable names
6825  *         '''
6826  *         def __get__(self):             # <<<<<<<<<<<<<<
6827  *             return self.getVariableNames()
6828  *
6829  */
6830 
6831 /* Python wrapper */
6832 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames_1__get__(PyObject *__pyx_v_self); /*proto*/
6833 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames_1__get__(PyObject *__pyx_v_self) {
6834   PyObject *__pyx_r = 0;
6835   __Pyx_RefNannyDeclarations
6836   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6837   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
6838 
6839   /* function exit code */
6840   __Pyx_RefNannyFinishContext();
6841   return __pyx_r;
6842 }
6843 
6844 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
6845   PyObject *__pyx_r = NULL;
6846   __Pyx_TraceDeclarations
6847   __Pyx_RefNannyDeclarations
6848   PyObject *__pyx_t_1 = NULL;
6849   PyObject *__pyx_t_2 = NULL;
6850   PyObject *__pyx_t_3 = NULL;
6851   int __pyx_lineno = 0;
6852   const char *__pyx_filename = NULL;
6853   int __pyx_clineno = 0;
6854   __Pyx_RefNannySetupContext("__get__", 0);
6855   __Pyx_TraceCall("__get__", __pyx_f[0], 266, 0, __PYX_ERR(0, 266, __pyx_L1_error));
6856 
6857   /* "cylp/cy/CyClpSimplex.pyx":267
6858  *         '''
6859  *         def __get__(self):
6860  *             return self.getVariableNames()             # <<<<<<<<<<<<<<
6861  *
6862  *     property variables:
6863  */
6864   __Pyx_XDECREF(__pyx_r);
6865   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getVariableNames); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 267, __pyx_L1_error)
6866   __Pyx_GOTREF(__pyx_t_2);
6867   __pyx_t_3 = NULL;
6868   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
6869     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
6870     if (likely(__pyx_t_3)) {
6871       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
6872       __Pyx_INCREF(__pyx_t_3);
6873       __Pyx_INCREF(function);
6874       __Pyx_DECREF_SET(__pyx_t_2, function);
6875     }
6876   }
6877   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
6878   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6879   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error)
6880   __Pyx_GOTREF(__pyx_t_1);
6881   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6882   __pyx_r = __pyx_t_1;
6883   __pyx_t_1 = 0;
6884   goto __pyx_L0;
6885 
6886   /* "cylp/cy/CyClpSimplex.pyx":266
6887  *         variable names
6888  *         '''
6889  *         def __get__(self):             # <<<<<<<<<<<<<<
6890  *             return self.getVariableNames()
6891  *
6892  */
6893 
6894   /* function exit code */
6895   __pyx_L1_error:;
6896   __Pyx_XDECREF(__pyx_t_1);
6897   __Pyx_XDECREF(__pyx_t_2);
6898   __Pyx_XDECREF(__pyx_t_3);
6899   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variableNames.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6900   __pyx_r = NULL;
6901   __pyx_L0:;
6902   __Pyx_XGIVEREF(__pyx_r);
6903   __Pyx_TraceReturn(__pyx_r, 0);
6904   __Pyx_RefNannyFinishContext();
6905   return __pyx_r;
6906 }
6907 
6908 /* "cylp/cy/CyClpSimplex.pyx":273
6909  *         Variables.
6910  *         '''
6911  *         def __get__(self):             # <<<<<<<<<<<<<<
6912  *             if not self.cyLPModel:
6913  *                 raise Exception('No CyClpSimplex cyLPModel.')
6914  */
6915 
6916 /* Python wrapper */
6917 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables_1__get__(PyObject *__pyx_v_self); /*proto*/
6918 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables_1__get__(PyObject *__pyx_v_self) {
6919   PyObject *__pyx_r = 0;
6920   __Pyx_RefNannyDeclarations
6921   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6922   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
6923 
6924   /* function exit code */
6925   __Pyx_RefNannyFinishContext();
6926   return __pyx_r;
6927 }
6928 
6929 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
6930   PyObject *__pyx_r = NULL;
6931   __Pyx_TraceDeclarations
6932   __Pyx_RefNannyDeclarations
6933   int __pyx_t_1;
6934   int __pyx_t_2;
6935   PyObject *__pyx_t_3 = NULL;
6936   int __pyx_lineno = 0;
6937   const char *__pyx_filename = NULL;
6938   int __pyx_clineno = 0;
6939   __Pyx_RefNannySetupContext("__get__", 0);
6940   __Pyx_TraceCall("__get__", __pyx_f[0], 273, 0, __PYX_ERR(0, 273, __pyx_L1_error));
6941 
6942   /* "cylp/cy/CyClpSimplex.pyx":274
6943  *         '''
6944  *         def __get__(self):
6945  *             if not self.cyLPModel:             # <<<<<<<<<<<<<<
6946  *                 raise Exception('No CyClpSimplex cyLPModel.')
6947  *             else:
6948  */
6949   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 274, __pyx_L1_error)
6950   __pyx_t_2 = ((!__pyx_t_1) != 0);
6951   if (unlikely(__pyx_t_2)) {
6952 
6953     /* "cylp/cy/CyClpSimplex.pyx":275
6954  *         def __get__(self):
6955  *             if not self.cyLPModel:
6956  *                 raise Exception('No CyClpSimplex cyLPModel.')             # <<<<<<<<<<<<<<
6957  *             else:
6958  *                 return self.cyLPModel.variables
6959  */
6960     __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error)
6961     __Pyx_GOTREF(__pyx_t_3);
6962     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
6963     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6964     __PYX_ERR(0, 275, __pyx_L1_error)
6965 
6966     /* "cylp/cy/CyClpSimplex.pyx":274
6967  *         '''
6968  *         def __get__(self):
6969  *             if not self.cyLPModel:             # <<<<<<<<<<<<<<
6970  *                 raise Exception('No CyClpSimplex cyLPModel.')
6971  *             else:
6972  */
6973   }
6974 
6975   /* "cylp/cy/CyClpSimplex.pyx":277
6976  *                 raise Exception('No CyClpSimplex cyLPModel.')
6977  *             else:
6978  *                 return self.cyLPModel.variables             # <<<<<<<<<<<<<<
6979  *
6980  * #    def getNumRows(self):
6981  */
6982   /*else*/ {
6983     __Pyx_XDECREF(__pyx_r);
6984     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_variables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 277, __pyx_L1_error)
6985     __Pyx_GOTREF(__pyx_t_3);
6986     __pyx_r = __pyx_t_3;
6987     __pyx_t_3 = 0;
6988     goto __pyx_L0;
6989   }
6990 
6991   /* "cylp/cy/CyClpSimplex.pyx":273
6992  *         Variables.
6993  *         '''
6994  *         def __get__(self):             # <<<<<<<<<<<<<<
6995  *             if not self.cyLPModel:
6996  *                 raise Exception('No CyClpSimplex cyLPModel.')
6997  */
6998 
6999   /* function exit code */
7000   __pyx_L1_error:;
7001   __Pyx_XDECREF(__pyx_t_3);
7002   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variables.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7003   __pyx_r = NULL;
7004   __pyx_L0:;
7005   __Pyx_XGIVEREF(__pyx_r);
7006   __Pyx_TraceReturn(__pyx_r, 0);
7007   __Pyx_RefNannyFinishContext();
7008   return __pyx_r;
7009 }
7010 
7011 /* "cylp/cy/CyClpSimplex.pyx":292
7012  *         The objective value. Readonly.
7013  *         '''
7014  *         def __get__(self):             # <<<<<<<<<<<<<<
7015  *             return self.CppSelf.objectiveValue()
7016  *
7017  */
7018 
7019 /* Python wrapper */
7020 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue_1__get__(PyObject *__pyx_v_self); /*proto*/
7021 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue_1__get__(PyObject *__pyx_v_self) {
7022   PyObject *__pyx_r = 0;
7023   __Pyx_RefNannyDeclarations
7024   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
7025   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
7026 
7027   /* function exit code */
7028   __Pyx_RefNannyFinishContext();
7029   return __pyx_r;
7030 }
7031 
7032 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
7033   PyObject *__pyx_r = NULL;
7034   __Pyx_TraceDeclarations
7035   __Pyx_RefNannyDeclarations
7036   PyObject *__pyx_t_1 = NULL;
7037   int __pyx_lineno = 0;
7038   const char *__pyx_filename = NULL;
7039   int __pyx_clineno = 0;
7040   __Pyx_RefNannySetupContext("__get__", 0);
7041   __Pyx_TraceCall("__get__", __pyx_f[0], 292, 0, __PYX_ERR(0, 292, __pyx_L1_error));
7042 
7043   /* "cylp/cy/CyClpSimplex.pyx":293
7044  *         '''
7045  *         def __get__(self):
7046  *             return self.CppSelf.objectiveValue()             # <<<<<<<<<<<<<<
7047  *
7048  *     property primalVariableSolution:
7049  */
7050   __Pyx_XDECREF(__pyx_r);
7051   __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->objectiveValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 293, __pyx_L1_error)
7052   __Pyx_GOTREF(__pyx_t_1);
7053   __pyx_r = __pyx_t_1;
7054   __pyx_t_1 = 0;
7055   goto __pyx_L0;
7056 
7057   /* "cylp/cy/CyClpSimplex.pyx":292
7058  *         The objective value. Readonly.
7059  *         '''
7060  *         def __get__(self):             # <<<<<<<<<<<<<<
7061  *             return self.CppSelf.objectiveValue()
7062  *
7063  */
7064 
7065   /* function exit code */
7066   __pyx_L1_error:;
7067   __Pyx_XDECREF(__pyx_t_1);
7068   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveValue.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7069   __pyx_r = NULL;
7070   __pyx_L0:;
7071   __Pyx_XGIVEREF(__pyx_r);
7072   __Pyx_TraceReturn(__pyx_r, 0);
7073   __Pyx_RefNannyFinishContext();
7074   return __pyx_r;
7075 }
7076 
7077 /* "cylp/cy/CyClpSimplex.pyx":301
7078  *         :rtype: Numpy array
7079  *         '''
7080  *         def __get__(self):             # <<<<<<<<<<<<<<
7081  *             #if self.cbcModelExists:
7082  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7083  */
7084 
7085 /* Python wrapper */
7086 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution_1__get__(PyObject *__pyx_v_self); /*proto*/
7087 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution_1__get__(PyObject *__pyx_v_self) {
7088   PyObject *__pyx_r = 0;
7089   __Pyx_RefNannyDeclarations
7090   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
7091   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
7092 
7093   /* function exit code */
7094   __Pyx_RefNannyFinishContext();
7095   return __pyx_r;
7096 }
7097 
7098 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
7099   PyObject *__pyx_v_ret = NULL;
7100   PyObject *__pyx_v_m = NULL;
7101   PyObject *__pyx_v_inds = NULL;
7102   PyObject *__pyx_v_d = NULL;
7103   PyObject *__pyx_v_v = NULL;
7104   PyObject *__pyx_v_var = NULL;
7105   PyObject *__pyx_v_dimRanges = NULL;
7106   PyObject *__pyx_v_element = NULL;
7107   PyObject *__pyx_v_names = NULL;
7108   PyObject *__pyx_v_i = NULL;
7109   PyObject *__pyx_r = NULL;
7110   __Pyx_TraceDeclarations
7111   __Pyx_RefNannyDeclarations
7112   PyObject *__pyx_t_1;
7113   PyObject *__pyx_t_2 = NULL;
7114   int __pyx_t_3;
7115   PyObject *__pyx_t_4 = NULL;
7116   PyObject *__pyx_t_5 = NULL;
7117   Py_ssize_t __pyx_t_6;
7118   PyObject *(*__pyx_t_7)(PyObject *);
7119   PyObject *__pyx_t_8 = NULL;
7120   Py_ssize_t __pyx_t_9;
7121   PyObject *(*__pyx_t_10)(PyObject *);
7122   PyObject *__pyx_t_11 = NULL;
7123   int __pyx_lineno = 0;
7124   const char *__pyx_filename = NULL;
7125   int __pyx_clineno = 0;
7126   __Pyx_RefNannySetupContext("__get__", 0);
7127   __Pyx_TraceCall("__get__", __pyx_f[0], 301, 0, __PYX_ERR(0, 301, __pyx_L1_error));
7128 
7129   /* "cylp/cy/CyClpSimplex.pyx":304
7130  *             #if self.cbcModelExists:
7131  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7132  *             ret = <object>self.CppSelf.getPrimalColumnSolution()             # <<<<<<<<<<<<<<
7133  *             if self.cyLPModel:
7134  *                 m = self.cyLPModel
7135  */
7136   __pyx_t_1 = __pyx_v_self->CppSelf->getPrimalColumnSolution();
7137   __pyx_t_2 = ((PyObject *)__pyx_t_1);
7138   __Pyx_INCREF(__pyx_t_2);
7139   __pyx_v_ret = __pyx_t_2;
7140   __pyx_t_2 = 0;
7141 
7142   /* "cylp/cy/CyClpSimplex.pyx":305
7143  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7144  *             ret = <object>self.CppSelf.getPrimalColumnSolution()
7145  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
7146  *                 m = self.cyLPModel
7147  *                 inds = m.inds
7148  */
7149   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 305, __pyx_L1_error)
7150   if (__pyx_t_3) {
7151 
7152     /* "cylp/cy/CyClpSimplex.pyx":306
7153  *             ret = <object>self.CppSelf.getPrimalColumnSolution()
7154  *             if self.cyLPModel:
7155  *                 m = self.cyLPModel             # <<<<<<<<<<<<<<
7156  *                 inds = m.inds
7157  *                 d = {}
7158  */
7159     __pyx_t_2 = __pyx_v_self->cyLPModel;
7160     __Pyx_INCREF(__pyx_t_2);
7161     __pyx_v_m = __pyx_t_2;
7162     __pyx_t_2 = 0;
7163 
7164     /* "cylp/cy/CyClpSimplex.pyx":307
7165  *             if self.cyLPModel:
7166  *                 m = self.cyLPModel
7167  *                 inds = m.inds             # <<<<<<<<<<<<<<
7168  *                 d = {}
7169  *                 for v in inds.varIndex.keys():
7170  */
7171     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error)
7172     __Pyx_GOTREF(__pyx_t_2);
7173     __pyx_v_inds = __pyx_t_2;
7174     __pyx_t_2 = 0;
7175 
7176     /* "cylp/cy/CyClpSimplex.pyx":308
7177  *                 m = self.cyLPModel
7178  *                 inds = m.inds
7179  *                 d = {}             # <<<<<<<<<<<<<<
7180  *                 for v in inds.varIndex.keys():
7181  *                     d[v] = ret[inds.varIndex[v]]
7182  */
7183     __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 308, __pyx_L1_error)
7184     __Pyx_GOTREF(__pyx_t_2);
7185     __pyx_v_d = __pyx_t_2;
7186     __pyx_t_2 = 0;
7187 
7188     /* "cylp/cy/CyClpSimplex.pyx":309
7189  *                 inds = m.inds
7190  *                 d = {}
7191  *                 for v in inds.varIndex.keys():             # <<<<<<<<<<<<<<
7192  *                     d[v] = ret[inds.varIndex[v]]
7193  *                     var = m.getVarByName(v)
7194  */
7195     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error)
7196     __Pyx_GOTREF(__pyx_t_4);
7197     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 309, __pyx_L1_error)
7198     __Pyx_GOTREF(__pyx_t_5);
7199     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7200     __pyx_t_4 = NULL;
7201     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
7202       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
7203       if (likely(__pyx_t_4)) {
7204         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
7205         __Pyx_INCREF(__pyx_t_4);
7206         __Pyx_INCREF(function);
7207         __Pyx_DECREF_SET(__pyx_t_5, function);
7208       }
7209     }
7210     __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
7211     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
7212     if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L1_error)
7213     __Pyx_GOTREF(__pyx_t_2);
7214     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
7215     if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
7216       __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
7217       __pyx_t_7 = NULL;
7218     } else {
7219       __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 309, __pyx_L1_error)
7220       __Pyx_GOTREF(__pyx_t_5);
7221       __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 309, __pyx_L1_error)
7222     }
7223     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7224     for (;;) {
7225       if (likely(!__pyx_t_7)) {
7226         if (likely(PyList_CheckExact(__pyx_t_5))) {
7227           if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
7228           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
7229           __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 309, __pyx_L1_error)
7230           #else
7231           __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L1_error)
7232           __Pyx_GOTREF(__pyx_t_2);
7233           #endif
7234         } else {
7235           if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
7236           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
7237           __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 309, __pyx_L1_error)
7238           #else
7239           __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L1_error)
7240           __Pyx_GOTREF(__pyx_t_2);
7241           #endif
7242         }
7243       } else {
7244         __pyx_t_2 = __pyx_t_7(__pyx_t_5);
7245         if (unlikely(!__pyx_t_2)) {
7246           PyObject* exc_type = PyErr_Occurred();
7247           if (exc_type) {
7248             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
7249             else __PYX_ERR(0, 309, __pyx_L1_error)
7250           }
7251           break;
7252         }
7253         __Pyx_GOTREF(__pyx_t_2);
7254       }
7255       __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_2);
7256       __pyx_t_2 = 0;
7257 
7258       /* "cylp/cy/CyClpSimplex.pyx":310
7259  *                 d = {}
7260  *                 for v in inds.varIndex.keys():
7261  *                     d[v] = ret[inds.varIndex[v]]             # <<<<<<<<<<<<<<
7262  *                     var = m.getVarByName(v)
7263  *                     if var.dims:
7264  */
7265       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 310, __pyx_L1_error)
7266       __Pyx_GOTREF(__pyx_t_2);
7267       __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error)
7268       __Pyx_GOTREF(__pyx_t_4);
7269       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7270       __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 310, __pyx_L1_error)
7271       __Pyx_GOTREF(__pyx_t_2);
7272       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7273       if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 310, __pyx_L1_error)
7274       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7275 
7276       /* "cylp/cy/CyClpSimplex.pyx":311
7277  *                 for v in inds.varIndex.keys():
7278  *                     d[v] = ret[inds.varIndex[v]]
7279  *                     var = m.getVarByName(v)             # <<<<<<<<<<<<<<
7280  *                     if var.dims:
7281  *                         d[v] = CyLPSolution()
7282  */
7283       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_getVarByName); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 311, __pyx_L1_error)
7284       __Pyx_GOTREF(__pyx_t_4);
7285       __pyx_t_8 = NULL;
7286       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
7287         __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
7288         if (likely(__pyx_t_8)) {
7289           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
7290           __Pyx_INCREF(__pyx_t_8);
7291           __Pyx_INCREF(function);
7292           __Pyx_DECREF_SET(__pyx_t_4, function);
7293         }
7294       }
7295       __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_v_v) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_v);
7296       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
7297       if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 311, __pyx_L1_error)
7298       __Pyx_GOTREF(__pyx_t_2);
7299       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7300       __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_2);
7301       __pyx_t_2 = 0;
7302 
7303       /* "cylp/cy/CyClpSimplex.pyx":312
7304  *                     d[v] = ret[inds.varIndex[v]]
7305  *                     var = m.getVarByName(v)
7306  *                     if var.dims:             # <<<<<<<<<<<<<<
7307  *                         d[v] = CyLPSolution()
7308  *                         dimRanges = [range(i) for i in var.dims]
7309  */
7310       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 312, __pyx_L1_error)
7311       __Pyx_GOTREF(__pyx_t_2);
7312       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 312, __pyx_L1_error)
7313       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7314       if (__pyx_t_3) {
7315 
7316         /* "cylp/cy/CyClpSimplex.pyx":313
7317  *                     var = m.getVarByName(v)
7318  *                     if var.dims:
7319  *                         d[v] = CyLPSolution()             # <<<<<<<<<<<<<<
7320  *                         dimRanges = [range(i) for i in var.dims]
7321  *                         for element in product(*dimRanges):
7322  */
7323         __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error)
7324         __Pyx_GOTREF(__pyx_t_4);
7325         __pyx_t_8 = NULL;
7326         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
7327           __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
7328           if (likely(__pyx_t_8)) {
7329             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
7330             __Pyx_INCREF(__pyx_t_8);
7331             __Pyx_INCREF(function);
7332             __Pyx_DECREF_SET(__pyx_t_4, function);
7333           }
7334         }
7335         __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
7336         __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
7337         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 313, __pyx_L1_error)
7338         __Pyx_GOTREF(__pyx_t_2);
7339         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7340         if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
7341         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7342 
7343         /* "cylp/cy/CyClpSimplex.pyx":314
7344  *                     if var.dims:
7345  *                         d[v] = CyLPSolution()
7346  *                         dimRanges = [range(i) for i in var.dims]             # <<<<<<<<<<<<<<
7347  *                         for element in product(*dimRanges):
7348  * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
7349  */
7350         __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error)
7351         __Pyx_GOTREF(__pyx_t_2);
7352         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error)
7353         __Pyx_GOTREF(__pyx_t_4);
7354         if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
7355           __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
7356           __pyx_t_10 = NULL;
7357         } else {
7358           __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 314, __pyx_L1_error)
7359           __Pyx_GOTREF(__pyx_t_8);
7360           __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 314, __pyx_L1_error)
7361         }
7362         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7363         for (;;) {
7364           if (likely(!__pyx_t_10)) {
7365             if (likely(PyList_CheckExact(__pyx_t_8))) {
7366               if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
7367               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
7368               __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
7369               #else
7370               __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error)
7371               __Pyx_GOTREF(__pyx_t_4);
7372               #endif
7373             } else {
7374               if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
7375               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
7376               __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
7377               #else
7378               __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error)
7379               __Pyx_GOTREF(__pyx_t_4);
7380               #endif
7381             }
7382           } else {
7383             __pyx_t_4 = __pyx_t_10(__pyx_t_8);
7384             if (unlikely(!__pyx_t_4)) {
7385               PyObject* exc_type = PyErr_Occurred();
7386               if (exc_type) {
7387                 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
7388                 else __PYX_ERR(0, 314, __pyx_L1_error)
7389               }
7390               break;
7391             }
7392             __Pyx_GOTREF(__pyx_t_4);
7393           }
7394           __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
7395           __pyx_t_4 = 0;
7396           __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error)
7397           __Pyx_GOTREF(__pyx_t_4);
7398           if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 314, __pyx_L1_error)
7399           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7400         }
7401         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
7402         __Pyx_XDECREF_SET(__pyx_v_dimRanges, ((PyObject*)__pyx_t_2));
7403         __pyx_t_2 = 0;
7404 
7405         /* "cylp/cy/CyClpSimplex.pyx":315
7406  *                         d[v] = CyLPSolution()
7407  *                         dimRanges = [range(i) for i in var.dims]
7408  *                         for element in product(*dimRanges):             # <<<<<<<<<<<<<<
7409  * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
7410  *                             d[v][element] = ret[var.fromInd+var[element].indices[0]]
7411  */
7412         __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 315, __pyx_L1_error)
7413         __Pyx_GOTREF(__pyx_t_2);
7414         __pyx_t_8 = PySequence_Tuple(__pyx_v_dimRanges); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 315, __pyx_L1_error)
7415         __Pyx_GOTREF(__pyx_t_8);
7416         __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 315, __pyx_L1_error)
7417         __Pyx_GOTREF(__pyx_t_4);
7418         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7419         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
7420         if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
7421           __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
7422           __pyx_t_10 = NULL;
7423         } else {
7424           __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 315, __pyx_L1_error)
7425           __Pyx_GOTREF(__pyx_t_8);
7426           __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 315, __pyx_L1_error)
7427         }
7428         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7429         for (;;) {
7430           if (likely(!__pyx_t_10)) {
7431             if (likely(PyList_CheckExact(__pyx_t_8))) {
7432               if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
7433               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
7434               __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 315, __pyx_L1_error)
7435               #else
7436               __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 315, __pyx_L1_error)
7437               __Pyx_GOTREF(__pyx_t_4);
7438               #endif
7439             } else {
7440               if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
7441               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
7442               __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 315, __pyx_L1_error)
7443               #else
7444               __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 315, __pyx_L1_error)
7445               __Pyx_GOTREF(__pyx_t_4);
7446               #endif
7447             }
7448           } else {
7449             __pyx_t_4 = __pyx_t_10(__pyx_t_8);
7450             if (unlikely(!__pyx_t_4)) {
7451               PyObject* exc_type = PyErr_Occurred();
7452               if (exc_type) {
7453                 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
7454                 else __PYX_ERR(0, 315, __pyx_L1_error)
7455               }
7456               break;
7457             }
7458             __Pyx_GOTREF(__pyx_t_4);
7459           }
7460           __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_4);
7461           __pyx_t_4 = 0;
7462 
7463           /* "cylp/cy/CyClpSimplex.pyx":317
7464  *                         for element in product(*dimRanges):
7465  * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
7466  *                             d[v][element] = ret[var.fromInd+var[element].indices[0]]             # <<<<<<<<<<<<<<
7467  *                 ret = d
7468  *             else:
7469  */
7470           __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_fromInd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 317, __pyx_L1_error)
7471           __Pyx_GOTREF(__pyx_t_4);
7472           __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_var, __pyx_v_element); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 317, __pyx_L1_error)
7473           __Pyx_GOTREF(__pyx_t_2);
7474           __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_indices); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 317, __pyx_L1_error)
7475           __Pyx_GOTREF(__pyx_t_11);
7476           __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7477           __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 317, __pyx_L1_error)
7478           __Pyx_GOTREF(__pyx_t_2);
7479           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
7480           __pyx_t_11 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 317, __pyx_L1_error)
7481           __Pyx_GOTREF(__pyx_t_11);
7482           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7483           __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7484           __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 317, __pyx_L1_error)
7485           __Pyx_GOTREF(__pyx_t_2);
7486           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
7487           __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_v); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 317, __pyx_L1_error)
7488           __Pyx_GOTREF(__pyx_t_11);
7489           if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_v_element, __pyx_t_2) < 0)) __PYX_ERR(0, 317, __pyx_L1_error)
7490           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
7491           __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7492 
7493           /* "cylp/cy/CyClpSimplex.pyx":315
7494  *                         d[v] = CyLPSolution()
7495  *                         dimRanges = [range(i) for i in var.dims]
7496  *                         for element in product(*dimRanges):             # <<<<<<<<<<<<<<
7497  * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
7498  *                             d[v][element] = ret[var.fromInd+var[element].indices[0]]
7499  */
7500         }
7501         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
7502 
7503         /* "cylp/cy/CyClpSimplex.pyx":312
7504  *                     d[v] = ret[inds.varIndex[v]]
7505  *                     var = m.getVarByName(v)
7506  *                     if var.dims:             # <<<<<<<<<<<<<<
7507  *                         d[v] = CyLPSolution()
7508  *                         dimRanges = [range(i) for i in var.dims]
7509  */
7510       }
7511 
7512       /* "cylp/cy/CyClpSimplex.pyx":309
7513  *                 inds = m.inds
7514  *                 d = {}
7515  *                 for v in inds.varIndex.keys():             # <<<<<<<<<<<<<<
7516  *                     d[v] = ret[inds.varIndex[v]]
7517  *                     var = m.getVarByName(v)
7518  */
7519     }
7520     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
7521 
7522     /* "cylp/cy/CyClpSimplex.pyx":318
7523  * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
7524  *                             d[v][element] = ret[var.fromInd+var[element].indices[0]]
7525  *                 ret = d             # <<<<<<<<<<<<<<
7526  *             else:
7527  *                 names = self.variableNames
7528  */
7529     __Pyx_INCREF(__pyx_v_d);
7530     __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);
7531 
7532     /* "cylp/cy/CyClpSimplex.pyx":305
7533  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7534  *             ret = <object>self.CppSelf.getPrimalColumnSolution()
7535  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
7536  *                 m = self.cyLPModel
7537  *                 inds = m.inds
7538  */
7539     goto __pyx_L3;
7540   }
7541 
7542   /* "cylp/cy/CyClpSimplex.pyx":320
7543  *                 ret = d
7544  *             else:
7545  *                 names = self.variableNames             # <<<<<<<<<<<<<<
7546  *                 if names:
7547  *                     d = CyLPSolution()
7548  */
7549   /*else*/ {
7550     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_variableNames); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 320, __pyx_L1_error)
7551     __Pyx_GOTREF(__pyx_t_5);
7552     __pyx_v_names = __pyx_t_5;
7553     __pyx_t_5 = 0;
7554 
7555     /* "cylp/cy/CyClpSimplex.pyx":321
7556  *             else:
7557  *                 names = self.variableNames
7558  *                 if names:             # <<<<<<<<<<<<<<
7559  *                     d = CyLPSolution()
7560  *                     for i in range(len(names)):
7561  */
7562     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_names); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 321, __pyx_L1_error)
7563     if (__pyx_t_3) {
7564 
7565       /* "cylp/cy/CyClpSimplex.pyx":322
7566  *                 names = self.variableNames
7567  *                 if names:
7568  *                     d = CyLPSolution()             # <<<<<<<<<<<<<<
7569  *                     for i in range(len(names)):
7570  *                         d[names[i]] = ret[i]
7571  */
7572       __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 322, __pyx_L1_error)
7573       __Pyx_GOTREF(__pyx_t_8);
7574       __pyx_t_2 = NULL;
7575       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
7576         __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8);
7577         if (likely(__pyx_t_2)) {
7578           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
7579           __Pyx_INCREF(__pyx_t_2);
7580           __Pyx_INCREF(function);
7581           __Pyx_DECREF_SET(__pyx_t_8, function);
7582         }
7583       }
7584       __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
7585       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
7586       if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 322, __pyx_L1_error)
7587       __Pyx_GOTREF(__pyx_t_5);
7588       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
7589       __pyx_v_d = __pyx_t_5;
7590       __pyx_t_5 = 0;
7591 
7592       /* "cylp/cy/CyClpSimplex.pyx":323
7593  *                 if names:
7594  *                     d = CyLPSolution()
7595  *                     for i in range(len(names)):             # <<<<<<<<<<<<<<
7596  *                         d[names[i]] = ret[i]
7597  *                     ret = d
7598  */
7599       __pyx_t_6 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 323, __pyx_L1_error)
7600       __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L1_error)
7601       __Pyx_GOTREF(__pyx_t_5);
7602       __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 323, __pyx_L1_error)
7603       __Pyx_GOTREF(__pyx_t_8);
7604       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
7605       if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
7606         __pyx_t_5 = __pyx_t_8; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
7607         __pyx_t_7 = NULL;
7608       } else {
7609         __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L1_error)
7610         __Pyx_GOTREF(__pyx_t_5);
7611         __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 323, __pyx_L1_error)
7612       }
7613       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
7614       for (;;) {
7615         if (likely(!__pyx_t_7)) {
7616           if (likely(PyList_CheckExact(__pyx_t_5))) {
7617             if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
7618             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
7619             __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 323, __pyx_L1_error)
7620             #else
7621             __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 323, __pyx_L1_error)
7622             __Pyx_GOTREF(__pyx_t_8);
7623             #endif
7624           } else {
7625             if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
7626             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
7627             __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 323, __pyx_L1_error)
7628             #else
7629             __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 323, __pyx_L1_error)
7630             __Pyx_GOTREF(__pyx_t_8);
7631             #endif
7632           }
7633         } else {
7634           __pyx_t_8 = __pyx_t_7(__pyx_t_5);
7635           if (unlikely(!__pyx_t_8)) {
7636             PyObject* exc_type = PyErr_Occurred();
7637             if (exc_type) {
7638               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
7639               else __PYX_ERR(0, 323, __pyx_L1_error)
7640             }
7641             break;
7642           }
7643           __Pyx_GOTREF(__pyx_t_8);
7644         }
7645         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8);
7646         __pyx_t_8 = 0;
7647 
7648         /* "cylp/cy/CyClpSimplex.pyx":324
7649  *                     d = CyLPSolution()
7650  *                     for i in range(len(names)):
7651  *                         d[names[i]] = ret[i]             # <<<<<<<<<<<<<<
7652  *                     ret = d
7653  *             return ret
7654  */
7655         __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 324, __pyx_L1_error)
7656         __Pyx_GOTREF(__pyx_t_8);
7657         __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L1_error)
7658         __Pyx_GOTREF(__pyx_t_2);
7659         if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_t_2, __pyx_t_8) < 0)) __PYX_ERR(0, 324, __pyx_L1_error)
7660         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7661         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
7662 
7663         /* "cylp/cy/CyClpSimplex.pyx":323
7664  *                 if names:
7665  *                     d = CyLPSolution()
7666  *                     for i in range(len(names)):             # <<<<<<<<<<<<<<
7667  *                         d[names[i]] = ret[i]
7668  *                     ret = d
7669  */
7670       }
7671       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
7672 
7673       /* "cylp/cy/CyClpSimplex.pyx":325
7674  *                     for i in range(len(names)):
7675  *                         d[names[i]] = ret[i]
7676  *                     ret = d             # <<<<<<<<<<<<<<
7677  *             return ret
7678  *
7679  */
7680       __Pyx_INCREF(__pyx_v_d);
7681       __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);
7682 
7683       /* "cylp/cy/CyClpSimplex.pyx":321
7684  *             else:
7685  *                 names = self.variableNames
7686  *                 if names:             # <<<<<<<<<<<<<<
7687  *                     d = CyLPSolution()
7688  *                     for i in range(len(names)):
7689  */
7690     }
7691   }
7692   __pyx_L3:;
7693 
7694   /* "cylp/cy/CyClpSimplex.pyx":326
7695  *                         d[names[i]] = ret[i]
7696  *                     ret = d
7697  *             return ret             # <<<<<<<<<<<<<<
7698  *
7699  *     property primalVariableSolutionAll:
7700  */
7701   __Pyx_XDECREF(__pyx_r);
7702   __Pyx_INCREF(__pyx_v_ret);
7703   __pyx_r = __pyx_v_ret;
7704   goto __pyx_L0;
7705 
7706   /* "cylp/cy/CyClpSimplex.pyx":301
7707  *         :rtype: Numpy array
7708  *         '''
7709  *         def __get__(self):             # <<<<<<<<<<<<<<
7710  *             #if self.cbcModelExists:
7711  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7712  */
7713 
7714   /* function exit code */
7715   __pyx_L1_error:;
7716   __Pyx_XDECREF(__pyx_t_2);
7717   __Pyx_XDECREF(__pyx_t_4);
7718   __Pyx_XDECREF(__pyx_t_5);
7719   __Pyx_XDECREF(__pyx_t_8);
7720   __Pyx_XDECREF(__pyx_t_11);
7721   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalVariableSolution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7722   __pyx_r = NULL;
7723   __pyx_L0:;
7724   __Pyx_XDECREF(__pyx_v_ret);
7725   __Pyx_XDECREF(__pyx_v_m);
7726   __Pyx_XDECREF(__pyx_v_inds);
7727   __Pyx_XDECREF(__pyx_v_d);
7728   __Pyx_XDECREF(__pyx_v_v);
7729   __Pyx_XDECREF(__pyx_v_var);
7730   __Pyx_XDECREF(__pyx_v_dimRanges);
7731   __Pyx_XDECREF(__pyx_v_element);
7732   __Pyx_XDECREF(__pyx_v_names);
7733   __Pyx_XDECREF(__pyx_v_i);
7734   __Pyx_XGIVEREF(__pyx_r);
7735   __Pyx_TraceReturn(__pyx_r, 0);
7736   __Pyx_RefNannyFinishContext();
7737   return __pyx_r;
7738 }
7739 
7740 /* "cylp/cy/CyClpSimplex.pyx":334
7741  *         :rtype: Numpy array
7742  *         '''
7743  *         def __get__(self):             # <<<<<<<<<<<<<<
7744  *             #if self.cbcModelExists:
7745  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7746  */
7747 
7748 /* Python wrapper */
7749 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll_1__get__(PyObject *__pyx_v_self); /*proto*/
7750 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll_1__get__(PyObject *__pyx_v_self) {
7751   PyObject *__pyx_r = 0;
7752   __Pyx_RefNannyDeclarations
7753   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
7754   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
7755 
7756   /* function exit code */
7757   __Pyx_RefNannyFinishContext();
7758   return __pyx_r;
7759 }
7760 
7761 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
7762   PyObject *__pyx_r = NULL;
7763   __Pyx_TraceDeclarations
7764   __Pyx_RefNannyDeclarations
7765   PyObject *__pyx_t_1;
7766   int __pyx_lineno = 0;
7767   const char *__pyx_filename = NULL;
7768   int __pyx_clineno = 0;
7769   __Pyx_RefNannySetupContext("__get__", 0);
7770   __Pyx_TraceCall("__get__", __pyx_f[0], 334, 0, __PYX_ERR(0, 334, __pyx_L1_error));
7771 
7772   /* "cylp/cy/CyClpSimplex.pyx":337
7773  *             #if self.cbcModelExists:
7774  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7775  *             return <object>self.CppSelf.getPrimalColumnSolutionAll()             # <<<<<<<<<<<<<<
7776  *
7777  *     property solution:
7778  */
7779   __Pyx_XDECREF(__pyx_r);
7780   __pyx_t_1 = __pyx_v_self->CppSelf->getPrimalColumnSolutionAll();
7781   __Pyx_INCREF(((PyObject *)__pyx_t_1));
7782   __pyx_r = ((PyObject *)__pyx_t_1);
7783   goto __pyx_L0;
7784 
7785   /* "cylp/cy/CyClpSimplex.pyx":334
7786  *         :rtype: Numpy array
7787  *         '''
7788  *         def __get__(self):             # <<<<<<<<<<<<<<
7789  *             #if self.cbcModelExists:
7790  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7791  */
7792 
7793   /* function exit code */
7794   __pyx_L1_error:;
7795   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalVariableSolutionAll.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7796   __pyx_r = NULL;
7797   __pyx_L0:;
7798   __Pyx_XGIVEREF(__pyx_r);
7799   __Pyx_TraceReturn(__pyx_r, 0);
7800   __Pyx_RefNannyFinishContext();
7801   return __pyx_r;
7802 }
7803 
7804 /* "cylp/cy/CyClpSimplex.pyx":345
7805  *         :rtype: Numpy array
7806  *         '''
7807  *         def __get__(self):             # <<<<<<<<<<<<<<
7808  *             #if self.cbcModelExists:
7809  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7810  */
7811 
7812 /* Python wrapper */
7813 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution_1__get__(PyObject *__pyx_v_self); /*proto*/
7814 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution_1__get__(PyObject *__pyx_v_self) {
7815   PyObject *__pyx_r = 0;
7816   __Pyx_RefNannyDeclarations
7817   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
7818   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
7819 
7820   /* function exit code */
7821   __Pyx_RefNannyFinishContext();
7822   return __pyx_r;
7823 }
7824 
7825 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
7826   PyObject *__pyx_r = NULL;
7827   __Pyx_TraceDeclarations
7828   __Pyx_RefNannyDeclarations
7829   PyObject *__pyx_t_1;
7830   int __pyx_lineno = 0;
7831   const char *__pyx_filename = NULL;
7832   int __pyx_clineno = 0;
7833   __Pyx_RefNannySetupContext("__get__", 0);
7834   __Pyx_TraceCall("__get__", __pyx_f[0], 345, 0, __PYX_ERR(0, 345, __pyx_L1_error));
7835 
7836   /* "cylp/cy/CyClpSimplex.pyx":348
7837  *             #if self.cbcModelExists:
7838  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7839  *             return <object>self.CppSelf.getSolutionRegion()             # <<<<<<<<<<<<<<
7840  *
7841  *     property cost:
7842  */
7843   __Pyx_XDECREF(__pyx_r);
7844   __pyx_t_1 = __pyx_v_self->CppSelf->getSolutionRegion();
7845   __Pyx_INCREF(((PyObject *)__pyx_t_1));
7846   __pyx_r = ((PyObject *)__pyx_t_1);
7847   goto __pyx_L0;
7848 
7849   /* "cylp/cy/CyClpSimplex.pyx":345
7850  *         :rtype: Numpy array
7851  *         '''
7852  *         def __get__(self):             # <<<<<<<<<<<<<<
7853  *             #if self.cbcModelExists:
7854  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7855  */
7856 
7857   /* function exit code */
7858   __pyx_L1_error:;
7859   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.solution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7860   __pyx_r = NULL;
7861   __pyx_L0:;
7862   __Pyx_XGIVEREF(__pyx_r);
7863   __Pyx_TraceReturn(__pyx_r, 0);
7864   __Pyx_RefNannyFinishContext();
7865   return __pyx_r;
7866 }
7867 
7868 /* "cylp/cy/CyClpSimplex.pyx":356
7869  *         :rtype: Numpy array
7870  *         '''
7871  *         def __get__(self):             # <<<<<<<<<<<<<<
7872  *             #if self.cbcModelExists:
7873  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7874  */
7875 
7876 /* Python wrapper */
7877 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost_1__get__(PyObject *__pyx_v_self); /*proto*/
7878 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost_1__get__(PyObject *__pyx_v_self) {
7879   PyObject *__pyx_r = 0;
7880   __Pyx_RefNannyDeclarations
7881   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
7882   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
7883 
7884   /* function exit code */
7885   __Pyx_RefNannyFinishContext();
7886   return __pyx_r;
7887 }
7888 
7889 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
7890   PyObject *__pyx_r = NULL;
7891   __Pyx_TraceDeclarations
7892   __Pyx_RefNannyDeclarations
7893   PyObject *__pyx_t_1;
7894   int __pyx_lineno = 0;
7895   const char *__pyx_filename = NULL;
7896   int __pyx_clineno = 0;
7897   __Pyx_RefNannySetupContext("__get__", 0);
7898   __Pyx_TraceCall("__get__", __pyx_f[0], 356, 0, __PYX_ERR(0, 356, __pyx_L1_error));
7899 
7900   /* "cylp/cy/CyClpSimplex.pyx":359
7901  *             #if self.cbcModelExists:
7902  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7903  *             return <object>self.CppSelf.getCostRegion()             # <<<<<<<<<<<<<<
7904  *
7905  *     property dualVariableSolution:
7906  */
7907   __Pyx_XDECREF(__pyx_r);
7908   __pyx_t_1 = __pyx_v_self->CppSelf->getCostRegion();
7909   __Pyx_INCREF(((PyObject *)__pyx_t_1));
7910   __pyx_r = ((PyObject *)__pyx_t_1);
7911   goto __pyx_L0;
7912 
7913   /* "cylp/cy/CyClpSimplex.pyx":356
7914  *         :rtype: Numpy array
7915  *         '''
7916  *         def __get__(self):             # <<<<<<<<<<<<<<
7917  *             #if self.cbcModelExists:
7918  *             #    return <object>self.cbcModel.getPrimalVariableSolution()
7919  */
7920 
7921   /* function exit code */
7922   __pyx_L1_error:;
7923   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.cost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7924   __pyx_r = NULL;
7925   __pyx_L0:;
7926   __Pyx_XGIVEREF(__pyx_r);
7927   __Pyx_TraceReturn(__pyx_r, 0);
7928   __Pyx_RefNannyFinishContext();
7929   return __pyx_r;
7930 }
7931 
7932 /* "cylp/cy/CyClpSimplex.pyx":367
7933  *         :rtype: Numpy array
7934  *         '''
7935  *         def __get__(self):             # <<<<<<<<<<<<<<
7936  *             ret = <object>self.CppSelf.getDualColumnSolution()
7937  *             if self.cyLPModel:
7938  */
7939 
7940 /* Python wrapper */
7941 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution_1__get__(PyObject *__pyx_v_self); /*proto*/
7942 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution_1__get__(PyObject *__pyx_v_self) {
7943   PyObject *__pyx_r = 0;
7944   __Pyx_RefNannyDeclarations
7945   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
7946   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
7947 
7948   /* function exit code */
7949   __Pyx_RefNannyFinishContext();
7950   return __pyx_r;
7951 }
7952 
7953 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
7954   PyObject *__pyx_v_ret = NULL;
7955   PyObject *__pyx_v_m = NULL;
7956   PyObject *__pyx_v_inds = NULL;
7957   PyObject *__pyx_v_d = NULL;
7958   PyObject *__pyx_v_v = NULL;
7959   PyObject *__pyx_v_var = NULL;
7960   PyObject *__pyx_v_dimRanges = NULL;
7961   PyObject *__pyx_v_element = NULL;
7962   PyObject *__pyx_v_names = NULL;
7963   PyObject *__pyx_v_i = NULL;
7964   PyObject *__pyx_r = NULL;
7965   __Pyx_TraceDeclarations
7966   __Pyx_RefNannyDeclarations
7967   PyObject *__pyx_t_1;
7968   PyObject *__pyx_t_2 = NULL;
7969   int __pyx_t_3;
7970   PyObject *__pyx_t_4 = NULL;
7971   PyObject *__pyx_t_5 = NULL;
7972   Py_ssize_t __pyx_t_6;
7973   PyObject *(*__pyx_t_7)(PyObject *);
7974   PyObject *__pyx_t_8 = NULL;
7975   Py_ssize_t __pyx_t_9;
7976   PyObject *(*__pyx_t_10)(PyObject *);
7977   PyObject *__pyx_t_11 = NULL;
7978   int __pyx_lineno = 0;
7979   const char *__pyx_filename = NULL;
7980   int __pyx_clineno = 0;
7981   __Pyx_RefNannySetupContext("__get__", 0);
7982   __Pyx_TraceCall("__get__", __pyx_f[0], 367, 0, __PYX_ERR(0, 367, __pyx_L1_error));
7983 
7984   /* "cylp/cy/CyClpSimplex.pyx":368
7985  *         '''
7986  *         def __get__(self):
7987  *             ret = <object>self.CppSelf.getDualColumnSolution()             # <<<<<<<<<<<<<<
7988  *             if self.cyLPModel:
7989  *                 m = self.cyLPModel
7990  */
7991   __pyx_t_1 = __pyx_v_self->CppSelf->getDualColumnSolution();
7992   __pyx_t_2 = ((PyObject *)__pyx_t_1);
7993   __Pyx_INCREF(__pyx_t_2);
7994   __pyx_v_ret = __pyx_t_2;
7995   __pyx_t_2 = 0;
7996 
7997   /* "cylp/cy/CyClpSimplex.pyx":369
7998  *         def __get__(self):
7999  *             ret = <object>self.CppSelf.getDualColumnSolution()
8000  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
8001  *                 m = self.cyLPModel
8002  *                 inds = m.inds
8003  */
8004   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
8005   if (__pyx_t_3) {
8006 
8007     /* "cylp/cy/CyClpSimplex.pyx":370
8008  *             ret = <object>self.CppSelf.getDualColumnSolution()
8009  *             if self.cyLPModel:
8010  *                 m = self.cyLPModel             # <<<<<<<<<<<<<<
8011  *                 inds = m.inds
8012  *                 d = {}
8013  */
8014     __pyx_t_2 = __pyx_v_self->cyLPModel;
8015     __Pyx_INCREF(__pyx_t_2);
8016     __pyx_v_m = __pyx_t_2;
8017     __pyx_t_2 = 0;
8018 
8019     /* "cylp/cy/CyClpSimplex.pyx":371
8020  *             if self.cyLPModel:
8021  *                 m = self.cyLPModel
8022  *                 inds = m.inds             # <<<<<<<<<<<<<<
8023  *                 d = {}
8024  *                 for v in inds.varIndex.keys():
8025  */
8026     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 371, __pyx_L1_error)
8027     __Pyx_GOTREF(__pyx_t_2);
8028     __pyx_v_inds = __pyx_t_2;
8029     __pyx_t_2 = 0;
8030 
8031     /* "cylp/cy/CyClpSimplex.pyx":372
8032  *                 m = self.cyLPModel
8033  *                 inds = m.inds
8034  *                 d = {}             # <<<<<<<<<<<<<<
8035  *                 for v in inds.varIndex.keys():
8036  *                     d[v] = ret[inds.varIndex[v]]
8037  */
8038     __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 372, __pyx_L1_error)
8039     __Pyx_GOTREF(__pyx_t_2);
8040     __pyx_v_d = __pyx_t_2;
8041     __pyx_t_2 = 0;
8042 
8043     /* "cylp/cy/CyClpSimplex.pyx":373
8044  *                 inds = m.inds
8045  *                 d = {}
8046  *                 for v in inds.varIndex.keys():             # <<<<<<<<<<<<<<
8047  *                     d[v] = ret[inds.varIndex[v]]
8048  *                     var = m.getVarByName(v)
8049  */
8050     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error)
8051     __Pyx_GOTREF(__pyx_t_4);
8052     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 373, __pyx_L1_error)
8053     __Pyx_GOTREF(__pyx_t_5);
8054     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8055     __pyx_t_4 = NULL;
8056     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
8057       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
8058       if (likely(__pyx_t_4)) {
8059         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
8060         __Pyx_INCREF(__pyx_t_4);
8061         __Pyx_INCREF(function);
8062         __Pyx_DECREF_SET(__pyx_t_5, function);
8063       }
8064     }
8065     __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
8066     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
8067     if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 373, __pyx_L1_error)
8068     __Pyx_GOTREF(__pyx_t_2);
8069     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8070     if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
8071       __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
8072       __pyx_t_7 = NULL;
8073     } else {
8074       __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 373, __pyx_L1_error)
8075       __Pyx_GOTREF(__pyx_t_5);
8076       __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 373, __pyx_L1_error)
8077     }
8078     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8079     for (;;) {
8080       if (likely(!__pyx_t_7)) {
8081         if (likely(PyList_CheckExact(__pyx_t_5))) {
8082           if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
8083           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8084           __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 373, __pyx_L1_error)
8085           #else
8086           __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 373, __pyx_L1_error)
8087           __Pyx_GOTREF(__pyx_t_2);
8088           #endif
8089         } else {
8090           if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
8091           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8092           __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 373, __pyx_L1_error)
8093           #else
8094           __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 373, __pyx_L1_error)
8095           __Pyx_GOTREF(__pyx_t_2);
8096           #endif
8097         }
8098       } else {
8099         __pyx_t_2 = __pyx_t_7(__pyx_t_5);
8100         if (unlikely(!__pyx_t_2)) {
8101           PyObject* exc_type = PyErr_Occurred();
8102           if (exc_type) {
8103             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
8104             else __PYX_ERR(0, 373, __pyx_L1_error)
8105           }
8106           break;
8107         }
8108         __Pyx_GOTREF(__pyx_t_2);
8109       }
8110       __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_2);
8111       __pyx_t_2 = 0;
8112 
8113       /* "cylp/cy/CyClpSimplex.pyx":374
8114  *                 d = {}
8115  *                 for v in inds.varIndex.keys():
8116  *                     d[v] = ret[inds.varIndex[v]]             # <<<<<<<<<<<<<<
8117  *                     var = m.getVarByName(v)
8118  *                     if var.dims:
8119  */
8120       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 374, __pyx_L1_error)
8121       __Pyx_GOTREF(__pyx_t_2);
8122       __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 374, __pyx_L1_error)
8123       __Pyx_GOTREF(__pyx_t_4);
8124       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8125       __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 374, __pyx_L1_error)
8126       __Pyx_GOTREF(__pyx_t_2);
8127       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8128       if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 374, __pyx_L1_error)
8129       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8130 
8131       /* "cylp/cy/CyClpSimplex.pyx":375
8132  *                 for v in inds.varIndex.keys():
8133  *                     d[v] = ret[inds.varIndex[v]]
8134  *                     var = m.getVarByName(v)             # <<<<<<<<<<<<<<
8135  *                     if var.dims:
8136  *                         d[v] = CyLPSolution()
8137  */
8138       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_getVarByName); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 375, __pyx_L1_error)
8139       __Pyx_GOTREF(__pyx_t_4);
8140       __pyx_t_8 = NULL;
8141       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
8142         __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
8143         if (likely(__pyx_t_8)) {
8144           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
8145           __Pyx_INCREF(__pyx_t_8);
8146           __Pyx_INCREF(function);
8147           __Pyx_DECREF_SET(__pyx_t_4, function);
8148         }
8149       }
8150       __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_v_v) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_v);
8151       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
8152       if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 375, __pyx_L1_error)
8153       __Pyx_GOTREF(__pyx_t_2);
8154       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8155       __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_2);
8156       __pyx_t_2 = 0;
8157 
8158       /* "cylp/cy/CyClpSimplex.pyx":376
8159  *                     d[v] = ret[inds.varIndex[v]]
8160  *                     var = m.getVarByName(v)
8161  *                     if var.dims:             # <<<<<<<<<<<<<<
8162  *                         d[v] = CyLPSolution()
8163  *                         dimRanges = [range(i) for i in var.dims]
8164  */
8165       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 376, __pyx_L1_error)
8166       __Pyx_GOTREF(__pyx_t_2);
8167       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 376, __pyx_L1_error)
8168       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8169       if (__pyx_t_3) {
8170 
8171         /* "cylp/cy/CyClpSimplex.pyx":377
8172  *                     var = m.getVarByName(v)
8173  *                     if var.dims:
8174  *                         d[v] = CyLPSolution()             # <<<<<<<<<<<<<<
8175  *                         dimRanges = [range(i) for i in var.dims]
8176  *                         for element in product(*dimRanges):
8177  */
8178         __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 377, __pyx_L1_error)
8179         __Pyx_GOTREF(__pyx_t_4);
8180         __pyx_t_8 = NULL;
8181         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
8182           __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
8183           if (likely(__pyx_t_8)) {
8184             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
8185             __Pyx_INCREF(__pyx_t_8);
8186             __Pyx_INCREF(function);
8187             __Pyx_DECREF_SET(__pyx_t_4, function);
8188           }
8189         }
8190         __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
8191         __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
8192         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 377, __pyx_L1_error)
8193         __Pyx_GOTREF(__pyx_t_2);
8194         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8195         if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 377, __pyx_L1_error)
8196         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8197 
8198         /* "cylp/cy/CyClpSimplex.pyx":378
8199  *                     if var.dims:
8200  *                         d[v] = CyLPSolution()
8201  *                         dimRanges = [range(i) for i in var.dims]             # <<<<<<<<<<<<<<
8202  *                         for element in product(*dimRanges):
8203  *                             d[v][element] = ret[var.__getitem__(element).indices[0]]
8204  */
8205         __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 378, __pyx_L1_error)
8206         __Pyx_GOTREF(__pyx_t_2);
8207         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error)
8208         __Pyx_GOTREF(__pyx_t_4);
8209         if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
8210           __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
8211           __pyx_t_10 = NULL;
8212         } else {
8213           __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 378, __pyx_L1_error)
8214           __Pyx_GOTREF(__pyx_t_8);
8215           __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 378, __pyx_L1_error)
8216         }
8217         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8218         for (;;) {
8219           if (likely(!__pyx_t_10)) {
8220             if (likely(PyList_CheckExact(__pyx_t_8))) {
8221               if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
8222               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8223               __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 378, __pyx_L1_error)
8224               #else
8225               __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error)
8226               __Pyx_GOTREF(__pyx_t_4);
8227               #endif
8228             } else {
8229               if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
8230               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8231               __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 378, __pyx_L1_error)
8232               #else
8233               __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error)
8234               __Pyx_GOTREF(__pyx_t_4);
8235               #endif
8236             }
8237           } else {
8238             __pyx_t_4 = __pyx_t_10(__pyx_t_8);
8239             if (unlikely(!__pyx_t_4)) {
8240               PyObject* exc_type = PyErr_Occurred();
8241               if (exc_type) {
8242                 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
8243                 else __PYX_ERR(0, 378, __pyx_L1_error)
8244               }
8245               break;
8246             }
8247             __Pyx_GOTREF(__pyx_t_4);
8248           }
8249           __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
8250           __pyx_t_4 = 0;
8251           __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error)
8252           __Pyx_GOTREF(__pyx_t_4);
8253           if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 378, __pyx_L1_error)
8254           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8255         }
8256         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
8257         __Pyx_XDECREF_SET(__pyx_v_dimRanges, ((PyObject*)__pyx_t_2));
8258         __pyx_t_2 = 0;
8259 
8260         /* "cylp/cy/CyClpSimplex.pyx":379
8261  *                         d[v] = CyLPSolution()
8262  *                         dimRanges = [range(i) for i in var.dims]
8263  *                         for element in product(*dimRanges):             # <<<<<<<<<<<<<<
8264  *                             d[v][element] = ret[var.__getitem__(element).indices[0]]
8265  *                 ret = d
8266  */
8267         __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 379, __pyx_L1_error)
8268         __Pyx_GOTREF(__pyx_t_2);
8269         __pyx_t_8 = PySequence_Tuple(__pyx_v_dimRanges); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 379, __pyx_L1_error)
8270         __Pyx_GOTREF(__pyx_t_8);
8271         __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error)
8272         __Pyx_GOTREF(__pyx_t_4);
8273         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8274         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
8275         if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
8276           __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
8277           __pyx_t_10 = NULL;
8278         } else {
8279           __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 379, __pyx_L1_error)
8280           __Pyx_GOTREF(__pyx_t_8);
8281           __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 379, __pyx_L1_error)
8282         }
8283         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8284         for (;;) {
8285           if (likely(!__pyx_t_10)) {
8286             if (likely(PyList_CheckExact(__pyx_t_8))) {
8287               if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
8288               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8289               __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 379, __pyx_L1_error)
8290               #else
8291               __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error)
8292               __Pyx_GOTREF(__pyx_t_4);
8293               #endif
8294             } else {
8295               if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
8296               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8297               __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 379, __pyx_L1_error)
8298               #else
8299               __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error)
8300               __Pyx_GOTREF(__pyx_t_4);
8301               #endif
8302             }
8303           } else {
8304             __pyx_t_4 = __pyx_t_10(__pyx_t_8);
8305             if (unlikely(!__pyx_t_4)) {
8306               PyObject* exc_type = PyErr_Occurred();
8307               if (exc_type) {
8308                 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
8309                 else __PYX_ERR(0, 379, __pyx_L1_error)
8310               }
8311               break;
8312             }
8313             __Pyx_GOTREF(__pyx_t_4);
8314           }
8315           __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_4);
8316           __pyx_t_4 = 0;
8317 
8318           /* "cylp/cy/CyClpSimplex.pyx":380
8319  *                         dimRanges = [range(i) for i in var.dims]
8320  *                         for element in product(*dimRanges):
8321  *                             d[v][element] = ret[var.__getitem__(element).indices[0]]             # <<<<<<<<<<<<<<
8322  *                 ret = d
8323  *             else:
8324  */
8325           __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_getitem); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 380, __pyx_L1_error)
8326           __Pyx_GOTREF(__pyx_t_2);
8327           __pyx_t_11 = NULL;
8328           if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8329             __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2);
8330             if (likely(__pyx_t_11)) {
8331               PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8332               __Pyx_INCREF(__pyx_t_11);
8333               __Pyx_INCREF(function);
8334               __Pyx_DECREF_SET(__pyx_t_2, function);
8335             }
8336           }
8337           __pyx_t_4 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_11, __pyx_v_element) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_element);
8338           __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
8339           if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error)
8340           __Pyx_GOTREF(__pyx_t_4);
8341           __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8342           __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 380, __pyx_L1_error)
8343           __Pyx_GOTREF(__pyx_t_2);
8344           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8345           __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error)
8346           __Pyx_GOTREF(__pyx_t_4);
8347           __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8348           __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 380, __pyx_L1_error)
8349           __Pyx_GOTREF(__pyx_t_2);
8350           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8351           __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error)
8352           __Pyx_GOTREF(__pyx_t_4);
8353           if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_element, __pyx_t_2) < 0)) __PYX_ERR(0, 380, __pyx_L1_error)
8354           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8355           __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8356 
8357           /* "cylp/cy/CyClpSimplex.pyx":379
8358  *                         d[v] = CyLPSolution()
8359  *                         dimRanges = [range(i) for i in var.dims]
8360  *                         for element in product(*dimRanges):             # <<<<<<<<<<<<<<
8361  *                             d[v][element] = ret[var.__getitem__(element).indices[0]]
8362  *                 ret = d
8363  */
8364         }
8365         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
8366 
8367         /* "cylp/cy/CyClpSimplex.pyx":376
8368  *                     d[v] = ret[inds.varIndex[v]]
8369  *                     var = m.getVarByName(v)
8370  *                     if var.dims:             # <<<<<<<<<<<<<<
8371  *                         d[v] = CyLPSolution()
8372  *                         dimRanges = [range(i) for i in var.dims]
8373  */
8374       }
8375 
8376       /* "cylp/cy/CyClpSimplex.pyx":373
8377  *                 inds = m.inds
8378  *                 d = {}
8379  *                 for v in inds.varIndex.keys():             # <<<<<<<<<<<<<<
8380  *                     d[v] = ret[inds.varIndex[v]]
8381  *                     var = m.getVarByName(v)
8382  */
8383     }
8384     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8385 
8386     /* "cylp/cy/CyClpSimplex.pyx":381
8387  *                         for element in product(*dimRanges):
8388  *                             d[v][element] = ret[var.__getitem__(element).indices[0]]
8389  *                 ret = d             # <<<<<<<<<<<<<<
8390  *             else:
8391  *                 names = self.variableNames
8392  */
8393     __Pyx_INCREF(__pyx_v_d);
8394     __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);
8395 
8396     /* "cylp/cy/CyClpSimplex.pyx":369
8397  *         def __get__(self):
8398  *             ret = <object>self.CppSelf.getDualColumnSolution()
8399  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
8400  *                 m = self.cyLPModel
8401  *                 inds = m.inds
8402  */
8403     goto __pyx_L3;
8404   }
8405 
8406   /* "cylp/cy/CyClpSimplex.pyx":383
8407  *                 ret = d
8408  *             else:
8409  *                 names = self.variableNames             # <<<<<<<<<<<<<<
8410  *                 if names:
8411  *                     d = CyLPSolution()
8412  */
8413   /*else*/ {
8414     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_variableNames); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 383, __pyx_L1_error)
8415     __Pyx_GOTREF(__pyx_t_5);
8416     __pyx_v_names = __pyx_t_5;
8417     __pyx_t_5 = 0;
8418 
8419     /* "cylp/cy/CyClpSimplex.pyx":384
8420  *             else:
8421  *                 names = self.variableNames
8422  *                 if names:             # <<<<<<<<<<<<<<
8423  *                     d = CyLPSolution()
8424  *                     for i in range(len(names)):
8425  */
8426     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_names); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 384, __pyx_L1_error)
8427     if (__pyx_t_3) {
8428 
8429       /* "cylp/cy/CyClpSimplex.pyx":385
8430  *                 names = self.variableNames
8431  *                 if names:
8432  *                     d = CyLPSolution()             # <<<<<<<<<<<<<<
8433  *                     for i in range(len(names)):
8434  *                         d[names[i]] = ret[i]
8435  */
8436       __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 385, __pyx_L1_error)
8437       __Pyx_GOTREF(__pyx_t_8);
8438       __pyx_t_2 = NULL;
8439       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
8440         __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8);
8441         if (likely(__pyx_t_2)) {
8442           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
8443           __Pyx_INCREF(__pyx_t_2);
8444           __Pyx_INCREF(function);
8445           __Pyx_DECREF_SET(__pyx_t_8, function);
8446         }
8447       }
8448       __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
8449       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
8450       if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 385, __pyx_L1_error)
8451       __Pyx_GOTREF(__pyx_t_5);
8452       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
8453       __pyx_v_d = __pyx_t_5;
8454       __pyx_t_5 = 0;
8455 
8456       /* "cylp/cy/CyClpSimplex.pyx":386
8457  *                 if names:
8458  *                     d = CyLPSolution()
8459  *                     for i in range(len(names)):             # <<<<<<<<<<<<<<
8460  *                         d[names[i]] = ret[i]
8461  *                     ret = d
8462  */
8463       __pyx_t_6 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 386, __pyx_L1_error)
8464       __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error)
8465       __Pyx_GOTREF(__pyx_t_5);
8466       __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 386, __pyx_L1_error)
8467       __Pyx_GOTREF(__pyx_t_8);
8468       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8469       if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
8470         __pyx_t_5 = __pyx_t_8; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
8471         __pyx_t_7 = NULL;
8472       } else {
8473         __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error)
8474         __Pyx_GOTREF(__pyx_t_5);
8475         __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L1_error)
8476       }
8477       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
8478       for (;;) {
8479         if (likely(!__pyx_t_7)) {
8480           if (likely(PyList_CheckExact(__pyx_t_5))) {
8481             if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
8482             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8483             __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 386, __pyx_L1_error)
8484             #else
8485             __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 386, __pyx_L1_error)
8486             __Pyx_GOTREF(__pyx_t_8);
8487             #endif
8488           } else {
8489             if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
8490             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8491             __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 386, __pyx_L1_error)
8492             #else
8493             __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 386, __pyx_L1_error)
8494             __Pyx_GOTREF(__pyx_t_8);
8495             #endif
8496           }
8497         } else {
8498           __pyx_t_8 = __pyx_t_7(__pyx_t_5);
8499           if (unlikely(!__pyx_t_8)) {
8500             PyObject* exc_type = PyErr_Occurred();
8501             if (exc_type) {
8502               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
8503               else __PYX_ERR(0, 386, __pyx_L1_error)
8504             }
8505             break;
8506           }
8507           __Pyx_GOTREF(__pyx_t_8);
8508         }
8509         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8);
8510         __pyx_t_8 = 0;
8511 
8512         /* "cylp/cy/CyClpSimplex.pyx":387
8513  *                     d = CyLPSolution()
8514  *                     for i in range(len(names)):
8515  *                         d[names[i]] = ret[i]             # <<<<<<<<<<<<<<
8516  *                     ret = d
8517  *             return ret
8518  */
8519         __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 387, __pyx_L1_error)
8520         __Pyx_GOTREF(__pyx_t_8);
8521         __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 387, __pyx_L1_error)
8522         __Pyx_GOTREF(__pyx_t_2);
8523         if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_t_2, __pyx_t_8) < 0)) __PYX_ERR(0, 387, __pyx_L1_error)
8524         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8525         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
8526 
8527         /* "cylp/cy/CyClpSimplex.pyx":386
8528  *                 if names:
8529  *                     d = CyLPSolution()
8530  *                     for i in range(len(names)):             # <<<<<<<<<<<<<<
8531  *                         d[names[i]] = ret[i]
8532  *                     ret = d
8533  */
8534       }
8535       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8536 
8537       /* "cylp/cy/CyClpSimplex.pyx":388
8538  *                     for i in range(len(names)):
8539  *                         d[names[i]] = ret[i]
8540  *                     ret = d             # <<<<<<<<<<<<<<
8541  *             return ret
8542  *
8543  */
8544       __Pyx_INCREF(__pyx_v_d);
8545       __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);
8546 
8547       /* "cylp/cy/CyClpSimplex.pyx":384
8548  *             else:
8549  *                 names = self.variableNames
8550  *                 if names:             # <<<<<<<<<<<<<<
8551  *                     d = CyLPSolution()
8552  *                     for i in range(len(names)):
8553  */
8554     }
8555   }
8556   __pyx_L3:;
8557 
8558   /* "cylp/cy/CyClpSimplex.pyx":389
8559  *                         d[names[i]] = ret[i]
8560  *                     ret = d
8561  *             return ret             # <<<<<<<<<<<<<<
8562  *
8563  *     property primalConstraintSolution:
8564  */
8565   __Pyx_XDECREF(__pyx_r);
8566   __Pyx_INCREF(__pyx_v_ret);
8567   __pyx_r = __pyx_v_ret;
8568   goto __pyx_L0;
8569 
8570   /* "cylp/cy/CyClpSimplex.pyx":367
8571  *         :rtype: Numpy array
8572  *         '''
8573  *         def __get__(self):             # <<<<<<<<<<<<<<
8574  *             ret = <object>self.CppSelf.getDualColumnSolution()
8575  *             if self.cyLPModel:
8576  */
8577 
8578   /* function exit code */
8579   __pyx_L1_error:;
8580   __Pyx_XDECREF(__pyx_t_2);
8581   __Pyx_XDECREF(__pyx_t_4);
8582   __Pyx_XDECREF(__pyx_t_5);
8583   __Pyx_XDECREF(__pyx_t_8);
8584   __Pyx_XDECREF(__pyx_t_11);
8585   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualVariableSolution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
8586   __pyx_r = NULL;
8587   __pyx_L0:;
8588   __Pyx_XDECREF(__pyx_v_ret);
8589   __Pyx_XDECREF(__pyx_v_m);
8590   __Pyx_XDECREF(__pyx_v_inds);
8591   __Pyx_XDECREF(__pyx_v_d);
8592   __Pyx_XDECREF(__pyx_v_v);
8593   __Pyx_XDECREF(__pyx_v_var);
8594   __Pyx_XDECREF(__pyx_v_dimRanges);
8595   __Pyx_XDECREF(__pyx_v_element);
8596   __Pyx_XDECREF(__pyx_v_names);
8597   __Pyx_XDECREF(__pyx_v_i);
8598   __Pyx_XGIVEREF(__pyx_r);
8599   __Pyx_TraceReturn(__pyx_r, 0);
8600   __Pyx_RefNannyFinishContext();
8601   return __pyx_r;
8602 }
8603 
8604 /* "cylp/cy/CyClpSimplex.pyx":397
8605  *         :rtype: Numpy array
8606  *         '''
8607  *         def __get__(self):             # <<<<<<<<<<<<<<
8608  *             ret = <object>self.CppSelf.getPrimalRowSolution()
8609  *             if self.cyLPModel:
8610  */
8611 
8612 /* Python wrapper */
8613 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution_1__get__(PyObject *__pyx_v_self); /*proto*/
8614 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution_1__get__(PyObject *__pyx_v_self) {
8615   PyObject *__pyx_r = 0;
8616   __Pyx_RefNannyDeclarations
8617   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
8618   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
8619 
8620   /* function exit code */
8621   __Pyx_RefNannyFinishContext();
8622   return __pyx_r;
8623 }
8624 
8625 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
8626   PyObject *__pyx_v_ret = NULL;
8627   PyObject *__pyx_v_m = NULL;
8628   PyObject *__pyx_v_inds = NULL;
8629   PyObject *__pyx_v_d = NULL;
8630   PyObject *__pyx_v_c = NULL;
8631   PyObject *__pyx_r = NULL;
8632   __Pyx_TraceDeclarations
8633   __Pyx_RefNannyDeclarations
8634   PyObject *__pyx_t_1;
8635   PyObject *__pyx_t_2 = NULL;
8636   int __pyx_t_3;
8637   PyObject *__pyx_t_4 = NULL;
8638   PyObject *__pyx_t_5 = NULL;
8639   Py_ssize_t __pyx_t_6;
8640   PyObject *(*__pyx_t_7)(PyObject *);
8641   int __pyx_lineno = 0;
8642   const char *__pyx_filename = NULL;
8643   int __pyx_clineno = 0;
8644   __Pyx_RefNannySetupContext("__get__", 0);
8645   __Pyx_TraceCall("__get__", __pyx_f[0], 397, 0, __PYX_ERR(0, 397, __pyx_L1_error));
8646 
8647   /* "cylp/cy/CyClpSimplex.pyx":398
8648  *         '''
8649  *         def __get__(self):
8650  *             ret = <object>self.CppSelf.getPrimalRowSolution()             # <<<<<<<<<<<<<<
8651  *             if self.cyLPModel:
8652  *                 m = self.cyLPModel
8653  */
8654   __pyx_t_1 = __pyx_v_self->CppSelf->getPrimalRowSolution();
8655   __pyx_t_2 = ((PyObject *)__pyx_t_1);
8656   __Pyx_INCREF(__pyx_t_2);
8657   __pyx_v_ret = __pyx_t_2;
8658   __pyx_t_2 = 0;
8659 
8660   /* "cylp/cy/CyClpSimplex.pyx":399
8661  *         def __get__(self):
8662  *             ret = <object>self.CppSelf.getPrimalRowSolution()
8663  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
8664  *                 m = self.cyLPModel
8665  *                 inds = m.inds
8666  */
8667   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 399, __pyx_L1_error)
8668   if (__pyx_t_3) {
8669 
8670     /* "cylp/cy/CyClpSimplex.pyx":400
8671  *             ret = <object>self.CppSelf.getPrimalRowSolution()
8672  *             if self.cyLPModel:
8673  *                 m = self.cyLPModel             # <<<<<<<<<<<<<<
8674  *                 inds = m.inds
8675  *                 d = {}
8676  */
8677     __pyx_t_2 = __pyx_v_self->cyLPModel;
8678     __Pyx_INCREF(__pyx_t_2);
8679     __pyx_v_m = __pyx_t_2;
8680     __pyx_t_2 = 0;
8681 
8682     /* "cylp/cy/CyClpSimplex.pyx":401
8683  *             if self.cyLPModel:
8684  *                 m = self.cyLPModel
8685  *                 inds = m.inds             # <<<<<<<<<<<<<<
8686  *                 d = {}
8687  *                 for c in inds.constIndex.keys():
8688  */
8689     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 401, __pyx_L1_error)
8690     __Pyx_GOTREF(__pyx_t_2);
8691     __pyx_v_inds = __pyx_t_2;
8692     __pyx_t_2 = 0;
8693 
8694     /* "cylp/cy/CyClpSimplex.pyx":402
8695  *                 m = self.cyLPModel
8696  *                 inds = m.inds
8697  *                 d = {}             # <<<<<<<<<<<<<<
8698  *                 for c in inds.constIndex.keys():
8699  *                     d[c] = ret[inds.constIndex[c]]
8700  */
8701     __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 402, __pyx_L1_error)
8702     __Pyx_GOTREF(__pyx_t_2);
8703     __pyx_v_d = ((PyObject*)__pyx_t_2);
8704     __pyx_t_2 = 0;
8705 
8706     /* "cylp/cy/CyClpSimplex.pyx":403
8707  *                 inds = m.inds
8708  *                 d = {}
8709  *                 for c in inds.constIndex.keys():             # <<<<<<<<<<<<<<
8710  *                     d[c] = ret[inds.constIndex[c]]
8711  *                 ret = d
8712  */
8713     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_constIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 403, __pyx_L1_error)
8714     __Pyx_GOTREF(__pyx_t_4);
8715     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 403, __pyx_L1_error)
8716     __Pyx_GOTREF(__pyx_t_5);
8717     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8718     __pyx_t_4 = NULL;
8719     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
8720       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
8721       if (likely(__pyx_t_4)) {
8722         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
8723         __Pyx_INCREF(__pyx_t_4);
8724         __Pyx_INCREF(function);
8725         __Pyx_DECREF_SET(__pyx_t_5, function);
8726       }
8727     }
8728     __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
8729     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
8730     if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 403, __pyx_L1_error)
8731     __Pyx_GOTREF(__pyx_t_2);
8732     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8733     if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
8734       __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
8735       __pyx_t_7 = NULL;
8736     } else {
8737       __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 403, __pyx_L1_error)
8738       __Pyx_GOTREF(__pyx_t_5);
8739       __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 403, __pyx_L1_error)
8740     }
8741     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8742     for (;;) {
8743       if (likely(!__pyx_t_7)) {
8744         if (likely(PyList_CheckExact(__pyx_t_5))) {
8745           if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
8746           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8747           __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 403, __pyx_L1_error)
8748           #else
8749           __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 403, __pyx_L1_error)
8750           __Pyx_GOTREF(__pyx_t_2);
8751           #endif
8752         } else {
8753           if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
8754           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8755           __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 403, __pyx_L1_error)
8756           #else
8757           __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 403, __pyx_L1_error)
8758           __Pyx_GOTREF(__pyx_t_2);
8759           #endif
8760         }
8761       } else {
8762         __pyx_t_2 = __pyx_t_7(__pyx_t_5);
8763         if (unlikely(!__pyx_t_2)) {
8764           PyObject* exc_type = PyErr_Occurred();
8765           if (exc_type) {
8766             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
8767             else __PYX_ERR(0, 403, __pyx_L1_error)
8768           }
8769           break;
8770         }
8771         __Pyx_GOTREF(__pyx_t_2);
8772       }
8773       __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_2);
8774       __pyx_t_2 = 0;
8775 
8776       /* "cylp/cy/CyClpSimplex.pyx":404
8777  *                 d = {}
8778  *                 for c in inds.constIndex.keys():
8779  *                     d[c] = ret[inds.constIndex[c]]             # <<<<<<<<<<<<<<
8780  *                 ret = d
8781  *             else:
8782  */
8783       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_constIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 404, __pyx_L1_error)
8784       __Pyx_GOTREF(__pyx_t_2);
8785       __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 404, __pyx_L1_error)
8786       __Pyx_GOTREF(__pyx_t_4);
8787       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8788       __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 404, __pyx_L1_error)
8789       __Pyx_GOTREF(__pyx_t_2);
8790       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8791       if (unlikely(PyDict_SetItem(__pyx_v_d, __pyx_v_c, __pyx_t_2) < 0)) __PYX_ERR(0, 404, __pyx_L1_error)
8792       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8793 
8794       /* "cylp/cy/CyClpSimplex.pyx":403
8795  *                 inds = m.inds
8796  *                 d = {}
8797  *                 for c in inds.constIndex.keys():             # <<<<<<<<<<<<<<
8798  *                     d[c] = ret[inds.constIndex[c]]
8799  *                 ret = d
8800  */
8801     }
8802     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8803 
8804     /* "cylp/cy/CyClpSimplex.pyx":405
8805  *                 for c in inds.constIndex.keys():
8806  *                     d[c] = ret[inds.constIndex[c]]
8807  *                 ret = d             # <<<<<<<<<<<<<<
8808  *             else:
8809  *                 pass
8810  */
8811     __Pyx_INCREF(__pyx_v_d);
8812     __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);
8813 
8814     /* "cylp/cy/CyClpSimplex.pyx":399
8815  *         def __get__(self):
8816  *             ret = <object>self.CppSelf.getPrimalRowSolution()
8817  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
8818  *                 m = self.cyLPModel
8819  *                 inds = m.inds
8820  */
8821     goto __pyx_L3;
8822   }
8823 
8824   /* "cylp/cy/CyClpSimplex.pyx":407
8825  *                 ret = d
8826  *             else:
8827  *                 pass             # <<<<<<<<<<<<<<
8828  *                 #names = self.variableNames
8829  *                 #if names:
8830  */
8831   /*else*/ {
8832   }
8833   __pyx_L3:;
8834 
8835   /* "cylp/cy/CyClpSimplex.pyx":414
8836  *                 #        d[names[i]] = ret[i]
8837  *                 #    ret = d
8838  *             return ret             # <<<<<<<<<<<<<<
8839  *
8840  *
8841  */
8842   __Pyx_XDECREF(__pyx_r);
8843   __Pyx_INCREF(__pyx_v_ret);
8844   __pyx_r = __pyx_v_ret;
8845   goto __pyx_L0;
8846 
8847   /* "cylp/cy/CyClpSimplex.pyx":397
8848  *         :rtype: Numpy array
8849  *         '''
8850  *         def __get__(self):             # <<<<<<<<<<<<<<
8851  *             ret = <object>self.CppSelf.getPrimalRowSolution()
8852  *             if self.cyLPModel:
8853  */
8854 
8855   /* function exit code */
8856   __pyx_L1_error:;
8857   __Pyx_XDECREF(__pyx_t_2);
8858   __Pyx_XDECREF(__pyx_t_4);
8859   __Pyx_XDECREF(__pyx_t_5);
8860   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalConstraintSolution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
8861   __pyx_r = NULL;
8862   __pyx_L0:;
8863   __Pyx_XDECREF(__pyx_v_ret);
8864   __Pyx_XDECREF(__pyx_v_m);
8865   __Pyx_XDECREF(__pyx_v_inds);
8866   __Pyx_XDECREF(__pyx_v_d);
8867   __Pyx_XDECREF(__pyx_v_c);
8868   __Pyx_XGIVEREF(__pyx_r);
8869   __Pyx_TraceReturn(__pyx_r, 0);
8870   __Pyx_RefNannyFinishContext();
8871   return __pyx_r;
8872 }
8873 
8874 /* "cylp/cy/CyClpSimplex.pyx":423
8875  *         :rtype: Numpy array
8876  *         '''
8877  *         def __get__(self):             # <<<<<<<<<<<<<<
8878  *             ret =  <object>self.CppSelf.getDualRowSolution()
8879  *             if self.cyLPModel:
8880  */
8881 
8882 /* Python wrapper */
8883 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution_1__get__(PyObject *__pyx_v_self); /*proto*/
8884 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution_1__get__(PyObject *__pyx_v_self) {
8885   PyObject *__pyx_r = 0;
8886   __Pyx_RefNannyDeclarations
8887   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
8888   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
8889 
8890   /* function exit code */
8891   __Pyx_RefNannyFinishContext();
8892   return __pyx_r;
8893 }
8894 
8895 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
8896   PyObject *__pyx_v_ret = NULL;
8897   PyObject *__pyx_v_m = NULL;
8898   PyObject *__pyx_v_inds = NULL;
8899   PyObject *__pyx_v_d = NULL;
8900   PyObject *__pyx_v_c = NULL;
8901   PyObject *__pyx_r = NULL;
8902   __Pyx_TraceDeclarations
8903   __Pyx_RefNannyDeclarations
8904   PyObject *__pyx_t_1;
8905   PyObject *__pyx_t_2 = NULL;
8906   int __pyx_t_3;
8907   PyObject *__pyx_t_4 = NULL;
8908   PyObject *__pyx_t_5 = NULL;
8909   Py_ssize_t __pyx_t_6;
8910   PyObject *(*__pyx_t_7)(PyObject *);
8911   int __pyx_lineno = 0;
8912   const char *__pyx_filename = NULL;
8913   int __pyx_clineno = 0;
8914   __Pyx_RefNannySetupContext("__get__", 0);
8915   __Pyx_TraceCall("__get__", __pyx_f[0], 423, 0, __PYX_ERR(0, 423, __pyx_L1_error));
8916 
8917   /* "cylp/cy/CyClpSimplex.pyx":424
8918  *         '''
8919  *         def __get__(self):
8920  *             ret =  <object>self.CppSelf.getDualRowSolution()             # <<<<<<<<<<<<<<
8921  *             if self.cyLPModel:
8922  *                 m = self.cyLPModel
8923  */
8924   __pyx_t_1 = __pyx_v_self->CppSelf->getDualRowSolution();
8925   __pyx_t_2 = ((PyObject *)__pyx_t_1);
8926   __Pyx_INCREF(__pyx_t_2);
8927   __pyx_v_ret = __pyx_t_2;
8928   __pyx_t_2 = 0;
8929 
8930   /* "cylp/cy/CyClpSimplex.pyx":425
8931  *         def __get__(self):
8932  *             ret =  <object>self.CppSelf.getDualRowSolution()
8933  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
8934  *                 m = self.cyLPModel
8935  *                 inds = m.inds
8936  */
8937   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
8938   if (__pyx_t_3) {
8939 
8940     /* "cylp/cy/CyClpSimplex.pyx":426
8941  *             ret =  <object>self.CppSelf.getDualRowSolution()
8942  *             if self.cyLPModel:
8943  *                 m = self.cyLPModel             # <<<<<<<<<<<<<<
8944  *                 inds = m.inds
8945  *                 d = {}
8946  */
8947     __pyx_t_2 = __pyx_v_self->cyLPModel;
8948     __Pyx_INCREF(__pyx_t_2);
8949     __pyx_v_m = __pyx_t_2;
8950     __pyx_t_2 = 0;
8951 
8952     /* "cylp/cy/CyClpSimplex.pyx":427
8953  *             if self.cyLPModel:
8954  *                 m = self.cyLPModel
8955  *                 inds = m.inds             # <<<<<<<<<<<<<<
8956  *                 d = {}
8957  *                 for c in inds.constIndex.keys():
8958  */
8959     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)
8960     __Pyx_GOTREF(__pyx_t_2);
8961     __pyx_v_inds = __pyx_t_2;
8962     __pyx_t_2 = 0;
8963 
8964     /* "cylp/cy/CyClpSimplex.pyx":428
8965  *                 m = self.cyLPModel
8966  *                 inds = m.inds
8967  *                 d = {}             # <<<<<<<<<<<<<<
8968  *                 for c in inds.constIndex.keys():
8969  *                     d[c] = ret[inds.constIndex[c]]
8970  */
8971     __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 428, __pyx_L1_error)
8972     __Pyx_GOTREF(__pyx_t_2);
8973     __pyx_v_d = ((PyObject*)__pyx_t_2);
8974     __pyx_t_2 = 0;
8975 
8976     /* "cylp/cy/CyClpSimplex.pyx":429
8977  *                 inds = m.inds
8978  *                 d = {}
8979  *                 for c in inds.constIndex.keys():             # <<<<<<<<<<<<<<
8980  *                     d[c] = ret[inds.constIndex[c]]
8981  *                 ret = d
8982  */
8983     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_constIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 429, __pyx_L1_error)
8984     __Pyx_GOTREF(__pyx_t_4);
8985     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 429, __pyx_L1_error)
8986     __Pyx_GOTREF(__pyx_t_5);
8987     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8988     __pyx_t_4 = NULL;
8989     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
8990       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
8991       if (likely(__pyx_t_4)) {
8992         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
8993         __Pyx_INCREF(__pyx_t_4);
8994         __Pyx_INCREF(function);
8995         __Pyx_DECREF_SET(__pyx_t_5, function);
8996       }
8997     }
8998     __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
8999     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9000     if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 429, __pyx_L1_error)
9001     __Pyx_GOTREF(__pyx_t_2);
9002     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9003     if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
9004       __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
9005       __pyx_t_7 = NULL;
9006     } else {
9007       __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 429, __pyx_L1_error)
9008       __Pyx_GOTREF(__pyx_t_5);
9009       __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 429, __pyx_L1_error)
9010     }
9011     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9012     for (;;) {
9013       if (likely(!__pyx_t_7)) {
9014         if (likely(PyList_CheckExact(__pyx_t_5))) {
9015           if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
9016           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
9017           __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 429, __pyx_L1_error)
9018           #else
9019           __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 429, __pyx_L1_error)
9020           __Pyx_GOTREF(__pyx_t_2);
9021           #endif
9022         } else {
9023           if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
9024           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
9025           __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 429, __pyx_L1_error)
9026           #else
9027           __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 429, __pyx_L1_error)
9028           __Pyx_GOTREF(__pyx_t_2);
9029           #endif
9030         }
9031       } else {
9032         __pyx_t_2 = __pyx_t_7(__pyx_t_5);
9033         if (unlikely(!__pyx_t_2)) {
9034           PyObject* exc_type = PyErr_Occurred();
9035           if (exc_type) {
9036             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
9037             else __PYX_ERR(0, 429, __pyx_L1_error)
9038           }
9039           break;
9040         }
9041         __Pyx_GOTREF(__pyx_t_2);
9042       }
9043       __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_2);
9044       __pyx_t_2 = 0;
9045 
9046       /* "cylp/cy/CyClpSimplex.pyx":430
9047  *                 d = {}
9048  *                 for c in inds.constIndex.keys():
9049  *                     d[c] = ret[inds.constIndex[c]]             # <<<<<<<<<<<<<<
9050  *                 ret = d
9051  *             else:
9052  */
9053       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_constIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error)
9054       __Pyx_GOTREF(__pyx_t_2);
9055       __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error)
9056       __Pyx_GOTREF(__pyx_t_4);
9057       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9058       __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error)
9059       __Pyx_GOTREF(__pyx_t_2);
9060       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9061       if (unlikely(PyDict_SetItem(__pyx_v_d, __pyx_v_c, __pyx_t_2) < 0)) __PYX_ERR(0, 430, __pyx_L1_error)
9062       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9063 
9064       /* "cylp/cy/CyClpSimplex.pyx":429
9065  *                 inds = m.inds
9066  *                 d = {}
9067  *                 for c in inds.constIndex.keys():             # <<<<<<<<<<<<<<
9068  *                     d[c] = ret[inds.constIndex[c]]
9069  *                 ret = d
9070  */
9071     }
9072     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9073 
9074     /* "cylp/cy/CyClpSimplex.pyx":431
9075  *                 for c in inds.constIndex.keys():
9076  *                     d[c] = ret[inds.constIndex[c]]
9077  *                 ret = d             # <<<<<<<<<<<<<<
9078  *             else:
9079  *                 pass
9080  */
9081     __Pyx_INCREF(__pyx_v_d);
9082     __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);
9083 
9084     /* "cylp/cy/CyClpSimplex.pyx":425
9085  *         def __get__(self):
9086  *             ret =  <object>self.CppSelf.getDualRowSolution()
9087  *             if self.cyLPModel:             # <<<<<<<<<<<<<<
9088  *                 m = self.cyLPModel
9089  *                 inds = m.inds
9090  */
9091     goto __pyx_L3;
9092   }
9093 
9094   /* "cylp/cy/CyClpSimplex.pyx":433
9095  *                 ret = d
9096  *             else:
9097  *                 pass             # <<<<<<<<<<<<<<
9098  *                 #names = self.variableNames
9099  *                 #if names:
9100  */
9101   /*else*/ {
9102   }
9103   __pyx_L3:;
9104 
9105   /* "cylp/cy/CyClpSimplex.pyx":440
9106  *                 #        d[names[i]] = ret[i]
9107  *                 #    ret = d
9108  *             return ret             # <<<<<<<<<<<<<<
9109  *
9110  *     property reducedCosts:
9111  */
9112   __Pyx_XDECREF(__pyx_r);
9113   __Pyx_INCREF(__pyx_v_ret);
9114   __pyx_r = __pyx_v_ret;
9115   goto __pyx_L0;
9116 
9117   /* "cylp/cy/CyClpSimplex.pyx":423
9118  *         :rtype: Numpy array
9119  *         '''
9120  *         def __get__(self):             # <<<<<<<<<<<<<<
9121  *             ret =  <object>self.CppSelf.getDualRowSolution()
9122  *             if self.cyLPModel:
9123  */
9124 
9125   /* function exit code */
9126   __pyx_L1_error:;
9127   __Pyx_XDECREF(__pyx_t_2);
9128   __Pyx_XDECREF(__pyx_t_4);
9129   __Pyx_XDECREF(__pyx_t_5);
9130   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualConstraintSolution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9131   __pyx_r = NULL;
9132   __pyx_L0:;
9133   __Pyx_XDECREF(__pyx_v_ret);
9134   __Pyx_XDECREF(__pyx_v_m);
9135   __Pyx_XDECREF(__pyx_v_inds);
9136   __Pyx_XDECREF(__pyx_v_d);
9137   __Pyx_XDECREF(__pyx_v_c);
9138   __Pyx_XGIVEREF(__pyx_r);
9139   __Pyx_TraceReturn(__pyx_r, 0);
9140   __Pyx_RefNannyFinishContext();
9141   return __pyx_r;
9142 }
9143 
9144 /* "cylp/cy/CyClpSimplex.pyx":448
9145  *         :rtype: Numpy array
9146  *         '''
9147  *         def __get__(self):             # <<<<<<<<<<<<<<
9148  *             return self.getReducedCosts()
9149  *
9150  */
9151 
9152 /* Python wrapper */
9153 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_1__get__(PyObject *__pyx_v_self); /*proto*/
9154 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_1__get__(PyObject *__pyx_v_self) {
9155   PyObject *__pyx_r = 0;
9156   __Pyx_RefNannyDeclarations
9157   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
9158   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
9159 
9160   /* function exit code */
9161   __Pyx_RefNannyFinishContext();
9162   return __pyx_r;
9163 }
9164 
9165 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
9166   PyObject *__pyx_r = NULL;
9167   __Pyx_TraceDeclarations
9168   __Pyx_RefNannyDeclarations
9169   PyObject *__pyx_t_1 = NULL;
9170   int __pyx_lineno = 0;
9171   const char *__pyx_filename = NULL;
9172   int __pyx_clineno = 0;
9173   __Pyx_RefNannySetupContext("__get__", 0);
9174   __Pyx_TraceCall("__get__", __pyx_f[0], 448, 0, __PYX_ERR(0, 448, __pyx_L1_error));
9175 
9176   /* "cylp/cy/CyClpSimplex.pyx":449
9177  *         '''
9178  *         def __get__(self):
9179  *             return self.getReducedCosts()             # <<<<<<<<<<<<<<
9180  *
9181  *         def __set__(self, np.ndarray[np.double_t, ndim=1] rc):
9182  */
9183   __Pyx_XDECREF(__pyx_r);
9184   __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->getReducedCosts(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 449, __pyx_L1_error)
9185   __Pyx_GOTREF(__pyx_t_1);
9186   __pyx_r = __pyx_t_1;
9187   __pyx_t_1 = 0;
9188   goto __pyx_L0;
9189 
9190   /* "cylp/cy/CyClpSimplex.pyx":448
9191  *         :rtype: Numpy array
9192  *         '''
9193  *         def __get__(self):             # <<<<<<<<<<<<<<
9194  *             return self.getReducedCosts()
9195  *
9196  */
9197 
9198   /* function exit code */
9199   __pyx_L1_error:;
9200   __Pyx_XDECREF(__pyx_t_1);
9201   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.reducedCosts.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9202   __pyx_r = NULL;
9203   __pyx_L0:;
9204   __Pyx_XGIVEREF(__pyx_r);
9205   __Pyx_TraceReturn(__pyx_r, 0);
9206   __Pyx_RefNannyFinishContext();
9207   return __pyx_r;
9208 }
9209 
9210 /* "cylp/cy/CyClpSimplex.pyx":451
9211  *             return self.getReducedCosts()
9212  *
9213  *         def __set__(self, np.ndarray[np.double_t, ndim=1] rc):             # <<<<<<<<<<<<<<
9214  *             self.CppSelf.setReducedCosts(<double*> rc.data)
9215  *
9216  */
9217 
9218 /* Python wrapper */
9219 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_rc); /*proto*/
9220 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_rc) {
9221   int __pyx_lineno = 0;
9222   const char *__pyx_filename = NULL;
9223   int __pyx_clineno = 0;
9224   int __pyx_r;
9225   __Pyx_RefNannyDeclarations
9226   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
9227   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rc), __pyx_ptype_5numpy_ndarray, 1, "rc", 0))) __PYX_ERR(0, 451, __pyx_L1_error)
9228   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_rc));
9229 
9230   /* function exit code */
9231   goto __pyx_L0;
9232   __pyx_L1_error:;
9233   __pyx_r = -1;
9234   __pyx_L0:;
9235   __Pyx_RefNannyFinishContext();
9236   return __pyx_r;
9237 }
9238 
9239 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rc) {
9240   __Pyx_LocalBuf_ND __pyx_pybuffernd_rc;
9241   __Pyx_Buffer __pyx_pybuffer_rc;
9242   int __pyx_r;
9243   __Pyx_TraceDeclarations
9244   __Pyx_RefNannyDeclarations
9245   int __pyx_lineno = 0;
9246   const char *__pyx_filename = NULL;
9247   int __pyx_clineno = 0;
9248   __Pyx_RefNannySetupContext("__set__", 0);
9249   __Pyx_TraceCall("__set__", __pyx_f[0], 451, 0, __PYX_ERR(0, 451, __pyx_L1_error));
9250   __pyx_pybuffer_rc.pybuffer.buf = NULL;
9251   __pyx_pybuffer_rc.refcount = 0;
9252   __pyx_pybuffernd_rc.data = NULL;
9253   __pyx_pybuffernd_rc.rcbuffer = &__pyx_pybuffer_rc;
9254   {
9255     __Pyx_BufFmt_StackElem __pyx_stack[1];
9256     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rc.rcbuffer->pybuffer, (PyObject*)__pyx_v_rc, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 451, __pyx_L1_error)
9257   }
9258   __pyx_pybuffernd_rc.diminfo[0].strides = __pyx_pybuffernd_rc.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rc.diminfo[0].shape = __pyx_pybuffernd_rc.rcbuffer->pybuffer.shape[0];
9259 
9260   /* "cylp/cy/CyClpSimplex.pyx":452
9261  *
9262  *         def __set__(self, np.ndarray[np.double_t, ndim=1] rc):
9263  *             self.CppSelf.setReducedCosts(<double*> rc.data)             # <<<<<<<<<<<<<<
9264  *
9265  *     cpdef getReducedCosts(self):
9266  */
9267   __pyx_v_self->CppSelf->setReducedCosts(((double *)__pyx_v_rc->data));
9268 
9269   /* "cylp/cy/CyClpSimplex.pyx":451
9270  *             return self.getReducedCosts()
9271  *
9272  *         def __set__(self, np.ndarray[np.double_t, ndim=1] rc):             # <<<<<<<<<<<<<<
9273  *             self.CppSelf.setReducedCosts(<double*> rc.data)
9274  *
9275  */
9276 
9277   /* function exit code */
9278   __pyx_r = 0;
9279   goto __pyx_L0;
9280   __pyx_L1_error:;
9281   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
9282     __Pyx_PyThreadState_declare
9283     __Pyx_PyThreadState_assign
9284     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
9285     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rc.rcbuffer->pybuffer);
9286   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
9287   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.reducedCosts.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9288   __pyx_r = -1;
9289   goto __pyx_L2;
9290   __pyx_L0:;
9291   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rc.rcbuffer->pybuffer);
9292   __pyx_L2:;
9293   __Pyx_TraceReturn(Py_None, 0);
9294   __Pyx_RefNannyFinishContext();
9295   return __pyx_r;
9296 }
9297 
9298 /* "cylp/cy/CyClpSimplex.pyx":454
9299  *             self.CppSelf.setReducedCosts(<double*> rc.data)
9300  *
9301  *     cpdef getReducedCosts(self):             # <<<<<<<<<<<<<<
9302  *         return <object>self.CppSelf.getReducedCosts()
9303  *
9304  */
9305 
9306 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
9307 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getReducedCosts(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch) {
9308   PyObject *__pyx_r = NULL;
9309   __Pyx_TraceDeclarations
9310   __Pyx_RefNannyDeclarations
9311   PyObject *__pyx_t_1 = NULL;
9312   PyObject *__pyx_t_2 = NULL;
9313   PyObject *__pyx_t_3 = NULL;
9314   PyObject *__pyx_t_4 = NULL;
9315   PyObject *__pyx_t_5;
9316   int __pyx_lineno = 0;
9317   const char *__pyx_filename = NULL;
9318   int __pyx_clineno = 0;
9319   __Pyx_RefNannySetupContext("getReducedCosts", 0);
9320   __Pyx_TraceCall("getReducedCosts", __pyx_f[0], 454, 0, __PYX_ERR(0, 454, __pyx_L1_error));
9321   /* Check if called by wrapper */
9322   if (unlikely(__pyx_skip_dispatch)) ;
9323   /* Check if overridden in Python */
9324   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
9325     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
9326     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
9327     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
9328       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
9329       #endif
9330       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getReducedCosts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L1_error)
9331       __Pyx_GOTREF(__pyx_t_1);
9332       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts)) {
9333         __Pyx_XDECREF(__pyx_r);
9334         __Pyx_INCREF(__pyx_t_1);
9335         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
9336         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
9337           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
9338           if (likely(__pyx_t_4)) {
9339             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9340             __Pyx_INCREF(__pyx_t_4);
9341             __Pyx_INCREF(function);
9342             __Pyx_DECREF_SET(__pyx_t_3, function);
9343           }
9344         }
9345         __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
9346         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9347         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 454, __pyx_L1_error)
9348         __Pyx_GOTREF(__pyx_t_2);
9349         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9350         __pyx_r = __pyx_t_2;
9351         __pyx_t_2 = 0;
9352         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9353         goto __pyx_L0;
9354       }
9355       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
9356       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
9357       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
9358       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
9359         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
9360       }
9361       #endif
9362       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9363       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
9364     }
9365     #endif
9366   }
9367 
9368   /* "cylp/cy/CyClpSimplex.pyx":455
9369  *
9370  *     cpdef getReducedCosts(self):
9371  *         return <object>self.CppSelf.getReducedCosts()             # <<<<<<<<<<<<<<
9372  *
9373  *     property objectiveOffset:
9374  */
9375   __Pyx_XDECREF(__pyx_r);
9376   __pyx_t_5 = __pyx_v_self->CppSelf->getReducedCosts();
9377   __Pyx_INCREF(((PyObject *)__pyx_t_5));
9378   __pyx_r = ((PyObject *)__pyx_t_5);
9379   goto __pyx_L0;
9380 
9381   /* "cylp/cy/CyClpSimplex.pyx":454
9382  *             self.CppSelf.setReducedCosts(<double*> rc.data)
9383  *
9384  *     cpdef getReducedCosts(self):             # <<<<<<<<<<<<<<
9385  *         return <object>self.CppSelf.getReducedCosts()
9386  *
9387  */
9388 
9389   /* function exit code */
9390   __pyx_L1_error:;
9391   __Pyx_XDECREF(__pyx_t_1);
9392   __Pyx_XDECREF(__pyx_t_2);
9393   __Pyx_XDECREF(__pyx_t_3);
9394   __Pyx_XDECREF(__pyx_t_4);
9395   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getReducedCosts", __pyx_clineno, __pyx_lineno, __pyx_filename);
9396   __pyx_r = 0;
9397   __pyx_L0:;
9398   __Pyx_XGIVEREF(__pyx_r);
9399   __Pyx_TraceReturn(__pyx_r, 0);
9400   __Pyx_RefNannyFinishContext();
9401   return __pyx_r;
9402 }
9403 
9404 /* Python wrapper */
9405 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
9406 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts[] = "CyClpSimplex.getReducedCosts(self)";
9407 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
9408   PyObject *__pyx_r = 0;
9409   __Pyx_RefNannyDeclarations
9410   __Pyx_RefNannySetupContext("getReducedCosts (wrapper)", 0);
9411   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
9412 
9413   /* function exit code */
9414   __Pyx_RefNannyFinishContext();
9415   return __pyx_r;
9416 }
9417 
9418 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
9419   PyObject *__pyx_r = NULL;
9420   __Pyx_TraceDeclarations
9421   __Pyx_RefNannyDeclarations
9422   PyObject *__pyx_t_1 = NULL;
9423   int __pyx_lineno = 0;
9424   const char *__pyx_filename = NULL;
9425   int __pyx_clineno = 0;
9426   __Pyx_RefNannySetupContext("getReducedCosts", 0);
9427   __Pyx_TraceCall("getReducedCosts (wrapper)", __pyx_f[0], 454, 0, __PYX_ERR(0, 454, __pyx_L1_error));
9428   __Pyx_XDECREF(__pyx_r);
9429   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getReducedCosts(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L1_error)
9430   __Pyx_GOTREF(__pyx_t_1);
9431   __pyx_r = __pyx_t_1;
9432   __pyx_t_1 = 0;
9433   goto __pyx_L0;
9434 
9435   /* function exit code */
9436   __pyx_L1_error:;
9437   __Pyx_XDECREF(__pyx_t_1);
9438   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getReducedCosts", __pyx_clineno, __pyx_lineno, __pyx_filename);
9439   __pyx_r = NULL;
9440   __pyx_L0:;
9441   __Pyx_XGIVEREF(__pyx_r);
9442   __Pyx_TraceReturn(__pyx_r, 0);
9443   __Pyx_RefNannyFinishContext();
9444   return __pyx_r;
9445 }
9446 
9447 /* "cylp/cy/CyClpSimplex.pyx":461
9448  *         The constant value in the objective function. A float.
9449  *         '''
9450  *         def __get__(self):             # <<<<<<<<<<<<<<
9451  *             return self.CppSelf.objectiveOffset()
9452  *
9453  */
9454 
9455 /* Python wrapper */
9456 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_1__get__(PyObject *__pyx_v_self); /*proto*/
9457 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_1__get__(PyObject *__pyx_v_self) {
9458   PyObject *__pyx_r = 0;
9459   __Pyx_RefNannyDeclarations
9460   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
9461   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
9462 
9463   /* function exit code */
9464   __Pyx_RefNannyFinishContext();
9465   return __pyx_r;
9466 }
9467 
9468 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
9469   PyObject *__pyx_r = NULL;
9470   __Pyx_TraceDeclarations
9471   __Pyx_RefNannyDeclarations
9472   PyObject *__pyx_t_1 = NULL;
9473   int __pyx_lineno = 0;
9474   const char *__pyx_filename = NULL;
9475   int __pyx_clineno = 0;
9476   __Pyx_RefNannySetupContext("__get__", 0);
9477   __Pyx_TraceCall("__get__", __pyx_f[0], 461, 0, __PYX_ERR(0, 461, __pyx_L1_error));
9478 
9479   /* "cylp/cy/CyClpSimplex.pyx":462
9480  *         '''
9481  *         def __get__(self):
9482  *             return self.CppSelf.objectiveOffset()             # <<<<<<<<<<<<<<
9483  *
9484  *         def __set__(self, value):
9485  */
9486   __Pyx_XDECREF(__pyx_r);
9487   __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->objectiveOffset()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 462, __pyx_L1_error)
9488   __Pyx_GOTREF(__pyx_t_1);
9489   __pyx_r = __pyx_t_1;
9490   __pyx_t_1 = 0;
9491   goto __pyx_L0;
9492 
9493   /* "cylp/cy/CyClpSimplex.pyx":461
9494  *         The constant value in the objective function. A float.
9495  *         '''
9496  *         def __get__(self):             # <<<<<<<<<<<<<<
9497  *             return self.CppSelf.objectiveOffset()
9498  *
9499  */
9500 
9501   /* function exit code */
9502   __pyx_L1_error:;
9503   __Pyx_XDECREF(__pyx_t_1);
9504   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveOffset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9505   __pyx_r = NULL;
9506   __pyx_L0:;
9507   __Pyx_XGIVEREF(__pyx_r);
9508   __Pyx_TraceReturn(__pyx_r, 0);
9509   __Pyx_RefNannyFinishContext();
9510   return __pyx_r;
9511 }
9512 
9513 /* "cylp/cy/CyClpSimplex.pyx":464
9514  *             return self.CppSelf.objectiveOffset()
9515  *
9516  *         def __set__(self, value):             # <<<<<<<<<<<<<<
9517  *             self.CppSelf.setObjectiveOffset(value)
9518  *
9519  */
9520 
9521 /* Python wrapper */
9522 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
9523 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
9524   int __pyx_r;
9525   __Pyx_RefNannyDeclarations
9526   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
9527   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));
9528 
9529   /* function exit code */
9530   __Pyx_RefNannyFinishContext();
9531   return __pyx_r;
9532 }
9533 
9534 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
9535   int __pyx_r;
9536   __Pyx_TraceDeclarations
9537   __Pyx_RefNannyDeclarations
9538   double __pyx_t_1;
9539   int __pyx_lineno = 0;
9540   const char *__pyx_filename = NULL;
9541   int __pyx_clineno = 0;
9542   __Pyx_RefNannySetupContext("__set__", 0);
9543   __Pyx_TraceCall("__set__", __pyx_f[0], 464, 0, __PYX_ERR(0, 464, __pyx_L1_error));
9544 
9545   /* "cylp/cy/CyClpSimplex.pyx":465
9546  *
9547  *         def __set__(self, value):
9548  *             self.CppSelf.setObjectiveOffset(value)             # <<<<<<<<<<<<<<
9549  *
9550  *     property variablesUpper:
9551  */
9552   __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 465, __pyx_L1_error)
9553   __pyx_v_self->CppSelf->setObjectiveOffset(__pyx_t_1);
9554 
9555   /* "cylp/cy/CyClpSimplex.pyx":464
9556  *             return self.CppSelf.objectiveOffset()
9557  *
9558  *         def __set__(self, value):             # <<<<<<<<<<<<<<
9559  *             self.CppSelf.setObjectiveOffset(value)
9560  *
9561  */
9562 
9563   /* function exit code */
9564   __pyx_r = 0;
9565   goto __pyx_L0;
9566   __pyx_L1_error:;
9567   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveOffset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9568   __pyx_r = -1;
9569   __pyx_L0:;
9570   __Pyx_TraceReturn(Py_None, 0);
9571   __Pyx_RefNannyFinishContext();
9572   return __pyx_r;
9573 }
9574 
9575 /* "cylp/cy/CyClpSimplex.pyx":473
9576  *         :rtype: Numpy array
9577  *         '''
9578  *         def __get__(self):             # <<<<<<<<<<<<<<
9579  *             return <object>self.CppSelf.getColUpper()
9580  *
9581  */
9582 
9583 /* Python wrapper */
9584 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_1__get__(PyObject *__pyx_v_self); /*proto*/
9585 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_1__get__(PyObject *__pyx_v_self) {
9586   PyObject *__pyx_r = 0;
9587   __Pyx_RefNannyDeclarations
9588   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
9589   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
9590 
9591   /* function exit code */
9592   __Pyx_RefNannyFinishContext();
9593   return __pyx_r;
9594 }
9595 
9596 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
9597   PyObject *__pyx_r = NULL;
9598   __Pyx_TraceDeclarations
9599   __Pyx_RefNannyDeclarations
9600   PyObject *__pyx_t_1;
9601   int __pyx_lineno = 0;
9602   const char *__pyx_filename = NULL;
9603   int __pyx_clineno = 0;
9604   __Pyx_RefNannySetupContext("__get__", 0);
9605   __Pyx_TraceCall("__get__", __pyx_f[0], 473, 0, __PYX_ERR(0, 473, __pyx_L1_error));
9606 
9607   /* "cylp/cy/CyClpSimplex.pyx":474
9608  *         '''
9609  *         def __get__(self):
9610  *             return <object>self.CppSelf.getColUpper()             # <<<<<<<<<<<<<<
9611  *
9612  *         def __set__(self, upperArray):
9613  */
9614   __Pyx_XDECREF(__pyx_r);
9615   __pyx_t_1 = __pyx_v_self->CppSelf->getColUpper();
9616   __Pyx_INCREF(((PyObject *)__pyx_t_1));
9617   __pyx_r = ((PyObject *)__pyx_t_1);
9618   goto __pyx_L0;
9619 
9620   /* "cylp/cy/CyClpSimplex.pyx":473
9621  *         :rtype: Numpy array
9622  *         '''
9623  *         def __get__(self):             # <<<<<<<<<<<<<<
9624  *             return <object>self.CppSelf.getColUpper()
9625  *
9626  */
9627 
9628   /* function exit code */
9629   __pyx_L1_error:;
9630   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variablesUpper.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9631   __pyx_r = NULL;
9632   __pyx_L0:;
9633   __Pyx_XGIVEREF(__pyx_r);
9634   __Pyx_TraceReturn(__pyx_r, 0);
9635   __Pyx_RefNannyFinishContext();
9636   return __pyx_r;
9637 }
9638 
9639 /* "cylp/cy/CyClpSimplex.pyx":476
9640  *             return <object>self.CppSelf.getColUpper()
9641  *
9642  *         def __set__(self, upperArray):             # <<<<<<<<<<<<<<
9643  *             self.setColumnUpperFirstElements(upperArray)
9644  *
9645  */
9646 
9647 /* Python wrapper */
9648 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_upperArray); /*proto*/
9649 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_upperArray) {
9650   int __pyx_r;
9651   __Pyx_RefNannyDeclarations
9652   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
9653   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_upperArray));
9654 
9655   /* function exit code */
9656   __Pyx_RefNannyFinishContext();
9657   return __pyx_r;
9658 }
9659 
9660 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_upperArray) {
9661   int __pyx_r;
9662   __Pyx_TraceDeclarations
9663   __Pyx_RefNannyDeclarations
9664   PyObject *__pyx_t_1 = NULL;
9665   PyObject *__pyx_t_2 = NULL;
9666   PyObject *__pyx_t_3 = NULL;
9667   int __pyx_lineno = 0;
9668   const char *__pyx_filename = NULL;
9669   int __pyx_clineno = 0;
9670   __Pyx_RefNannySetupContext("__set__", 0);
9671   __Pyx_TraceCall("__set__", __pyx_f[0], 476, 0, __PYX_ERR(0, 476, __pyx_L1_error));
9672 
9673   /* "cylp/cy/CyClpSimplex.pyx":477
9674  *
9675  *         def __set__(self, upperArray):
9676  *             self.setColumnUpperFirstElements(upperArray)             # <<<<<<<<<<<<<<
9677  *
9678  *     property variablesLower:
9679  */
9680   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setColumnUpperFirstElements); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 477, __pyx_L1_error)
9681   __Pyx_GOTREF(__pyx_t_2);
9682   __pyx_t_3 = NULL;
9683   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9684     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9685     if (likely(__pyx_t_3)) {
9686       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9687       __Pyx_INCREF(__pyx_t_3);
9688       __Pyx_INCREF(function);
9689       __Pyx_DECREF_SET(__pyx_t_2, function);
9690     }
9691   }
9692   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_upperArray) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_upperArray);
9693   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9694   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 477, __pyx_L1_error)
9695   __Pyx_GOTREF(__pyx_t_1);
9696   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9697   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9698 
9699   /* "cylp/cy/CyClpSimplex.pyx":476
9700  *             return <object>self.CppSelf.getColUpper()
9701  *
9702  *         def __set__(self, upperArray):             # <<<<<<<<<<<<<<
9703  *             self.setColumnUpperFirstElements(upperArray)
9704  *
9705  */
9706 
9707   /* function exit code */
9708   __pyx_r = 0;
9709   goto __pyx_L0;
9710   __pyx_L1_error:;
9711   __Pyx_XDECREF(__pyx_t_1);
9712   __Pyx_XDECREF(__pyx_t_2);
9713   __Pyx_XDECREF(__pyx_t_3);
9714   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variablesUpper.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9715   __pyx_r = -1;
9716   __pyx_L0:;
9717   __Pyx_TraceReturn(Py_None, 0);
9718   __Pyx_RefNannyFinishContext();
9719   return __pyx_r;
9720 }
9721 
9722 /* "cylp/cy/CyClpSimplex.pyx":485
9723  *         :rtype: Numpy array
9724  *         '''
9725  *         def __get__(self):             # <<<<<<<<<<<<<<
9726  *             return <object>self.CppSelf.getColLower()
9727  *
9728  */
9729 
9730 /* Python wrapper */
9731 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_1__get__(PyObject *__pyx_v_self); /*proto*/
9732 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_1__get__(PyObject *__pyx_v_self) {
9733   PyObject *__pyx_r = 0;
9734   __Pyx_RefNannyDeclarations
9735   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
9736   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
9737 
9738   /* function exit code */
9739   __Pyx_RefNannyFinishContext();
9740   return __pyx_r;
9741 }
9742 
9743 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
9744   PyObject *__pyx_r = NULL;
9745   __Pyx_TraceDeclarations
9746   __Pyx_RefNannyDeclarations
9747   PyObject *__pyx_t_1;
9748   int __pyx_lineno = 0;
9749   const char *__pyx_filename = NULL;
9750   int __pyx_clineno = 0;
9751   __Pyx_RefNannySetupContext("__get__", 0);
9752   __Pyx_TraceCall("__get__", __pyx_f[0], 485, 0, __PYX_ERR(0, 485, __pyx_L1_error));
9753 
9754   /* "cylp/cy/CyClpSimplex.pyx":486
9755  *         '''
9756  *         def __get__(self):
9757  *             return <object>self.CppSelf.getColLower()             # <<<<<<<<<<<<<<
9758  *
9759  *         def __set__(self, lowerArray):
9760  */
9761   __Pyx_XDECREF(__pyx_r);
9762   __pyx_t_1 = __pyx_v_self->CppSelf->getColLower();
9763   __Pyx_INCREF(((PyObject *)__pyx_t_1));
9764   __pyx_r = ((PyObject *)__pyx_t_1);
9765   goto __pyx_L0;
9766 
9767   /* "cylp/cy/CyClpSimplex.pyx":485
9768  *         :rtype: Numpy array
9769  *         '''
9770  *         def __get__(self):             # <<<<<<<<<<<<<<
9771  *             return <object>self.CppSelf.getColLower()
9772  *
9773  */
9774 
9775   /* function exit code */
9776   __pyx_L1_error:;
9777   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variablesLower.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9778   __pyx_r = NULL;
9779   __pyx_L0:;
9780   __Pyx_XGIVEREF(__pyx_r);
9781   __Pyx_TraceReturn(__pyx_r, 0);
9782   __Pyx_RefNannyFinishContext();
9783   return __pyx_r;
9784 }
9785 
9786 /* "cylp/cy/CyClpSimplex.pyx":488
9787  *             return <object>self.CppSelf.getColLower()
9788  *
9789  *         def __set__(self, lowerArray):             # <<<<<<<<<<<<<<
9790  *             self.setColumnLowerFirstElements(lowerArray)
9791  *
9792  */
9793 
9794 /* Python wrapper */
9795 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_lowerArray); /*proto*/
9796 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_lowerArray) {
9797   int __pyx_r;
9798   __Pyx_RefNannyDeclarations
9799   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
9800   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_lowerArray));
9801 
9802   /* function exit code */
9803   __Pyx_RefNannyFinishContext();
9804   return __pyx_r;
9805 }
9806 
9807 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_lowerArray) {
9808   int __pyx_r;
9809   __Pyx_TraceDeclarations
9810   __Pyx_RefNannyDeclarations
9811   PyObject *__pyx_t_1 = NULL;
9812   PyObject *__pyx_t_2 = NULL;
9813   PyObject *__pyx_t_3 = NULL;
9814   int __pyx_lineno = 0;
9815   const char *__pyx_filename = NULL;
9816   int __pyx_clineno = 0;
9817   __Pyx_RefNannySetupContext("__set__", 0);
9818   __Pyx_TraceCall("__set__", __pyx_f[0], 488, 0, __PYX_ERR(0, 488, __pyx_L1_error));
9819 
9820   /* "cylp/cy/CyClpSimplex.pyx":489
9821  *
9822  *         def __set__(self, lowerArray):
9823  *             self.setColumnLowerFirstElements(lowerArray)             # <<<<<<<<<<<<<<
9824  *
9825  *     property constraintsUpper:
9826  */
9827   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setColumnLowerFirstElements); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 489, __pyx_L1_error)
9828   __Pyx_GOTREF(__pyx_t_2);
9829   __pyx_t_3 = NULL;
9830   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9831     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9832     if (likely(__pyx_t_3)) {
9833       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9834       __Pyx_INCREF(__pyx_t_3);
9835       __Pyx_INCREF(function);
9836       __Pyx_DECREF_SET(__pyx_t_2, function);
9837     }
9838   }
9839   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_lowerArray) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_lowerArray);
9840   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9841   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L1_error)
9842   __Pyx_GOTREF(__pyx_t_1);
9843   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9844   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9845 
9846   /* "cylp/cy/CyClpSimplex.pyx":488
9847  *             return <object>self.CppSelf.getColLower()
9848  *
9849  *         def __set__(self, lowerArray):             # <<<<<<<<<<<<<<
9850  *             self.setColumnLowerFirstElements(lowerArray)
9851  *
9852  */
9853 
9854   /* function exit code */
9855   __pyx_r = 0;
9856   goto __pyx_L0;
9857   __pyx_L1_error:;
9858   __Pyx_XDECREF(__pyx_t_1);
9859   __Pyx_XDECREF(__pyx_t_2);
9860   __Pyx_XDECREF(__pyx_t_3);
9861   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variablesLower.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9862   __pyx_r = -1;
9863   __pyx_L0:;
9864   __Pyx_TraceReturn(Py_None, 0);
9865   __Pyx_RefNannyFinishContext();
9866   return __pyx_r;
9867 }
9868 
9869 /* "cylp/cy/CyClpSimplex.pyx":497
9870  *         :rtype: Numpy array
9871  *         '''
9872  *         def __get__(self):             # <<<<<<<<<<<<<<
9873  *             return <object>self.CppSelf.getRowUpper()
9874  *
9875  */
9876 
9877 /* Python wrapper */
9878 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_1__get__(PyObject *__pyx_v_self); /*proto*/
9879 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_1__get__(PyObject *__pyx_v_self) {
9880   PyObject *__pyx_r = 0;
9881   __Pyx_RefNannyDeclarations
9882   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
9883   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
9884 
9885   /* function exit code */
9886   __Pyx_RefNannyFinishContext();
9887   return __pyx_r;
9888 }
9889 
9890 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
9891   PyObject *__pyx_r = NULL;
9892   __Pyx_TraceDeclarations
9893   __Pyx_RefNannyDeclarations
9894   PyObject *__pyx_t_1;
9895   int __pyx_lineno = 0;
9896   const char *__pyx_filename = NULL;
9897   int __pyx_clineno = 0;
9898   __Pyx_RefNannySetupContext("__get__", 0);
9899   __Pyx_TraceCall("__get__", __pyx_f[0], 497, 0, __PYX_ERR(0, 497, __pyx_L1_error));
9900 
9901   /* "cylp/cy/CyClpSimplex.pyx":498
9902  *         '''
9903  *         def __get__(self):
9904  *             return <object>self.CppSelf.getRowUpper()             # <<<<<<<<<<<<<<
9905  *
9906  *         def __set__(self, upperArray):
9907  */
9908   __Pyx_XDECREF(__pyx_r);
9909   __pyx_t_1 = __pyx_v_self->CppSelf->getRowUpper();
9910   __Pyx_INCREF(((PyObject *)__pyx_t_1));
9911   __pyx_r = ((PyObject *)__pyx_t_1);
9912   goto __pyx_L0;
9913 
9914   /* "cylp/cy/CyClpSimplex.pyx":497
9915  *         :rtype: Numpy array
9916  *         '''
9917  *         def __get__(self):             # <<<<<<<<<<<<<<
9918  *             return <object>self.CppSelf.getRowUpper()
9919  *
9920  */
9921 
9922   /* function exit code */
9923   __pyx_L1_error:;
9924   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintsUpper.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9925   __pyx_r = NULL;
9926   __pyx_L0:;
9927   __Pyx_XGIVEREF(__pyx_r);
9928   __Pyx_TraceReturn(__pyx_r, 0);
9929   __Pyx_RefNannyFinishContext();
9930   return __pyx_r;
9931 }
9932 
9933 /* "cylp/cy/CyClpSimplex.pyx":500
9934  *             return <object>self.CppSelf.getRowUpper()
9935  *
9936  *         def __set__(self, upperArray):             # <<<<<<<<<<<<<<
9937  *             self.setRowUpperArray(upperArray)
9938  *
9939  */
9940 
9941 /* Python wrapper */
9942 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_upperArray); /*proto*/
9943 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_upperArray) {
9944   int __pyx_r;
9945   __Pyx_RefNannyDeclarations
9946   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
9947   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_upperArray));
9948 
9949   /* function exit code */
9950   __Pyx_RefNannyFinishContext();
9951   return __pyx_r;
9952 }
9953 
9954 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_upperArray) {
9955   int __pyx_r;
9956   __Pyx_TraceDeclarations
9957   __Pyx_RefNannyDeclarations
9958   PyObject *__pyx_t_1 = NULL;
9959   PyObject *__pyx_t_2 = NULL;
9960   PyObject *__pyx_t_3 = NULL;
9961   int __pyx_lineno = 0;
9962   const char *__pyx_filename = NULL;
9963   int __pyx_clineno = 0;
9964   __Pyx_RefNannySetupContext("__set__", 0);
9965   __Pyx_TraceCall("__set__", __pyx_f[0], 500, 0, __PYX_ERR(0, 500, __pyx_L1_error));
9966 
9967   /* "cylp/cy/CyClpSimplex.pyx":501
9968  *
9969  *         def __set__(self, upperArray):
9970  *             self.setRowUpperArray(upperArray)             # <<<<<<<<<<<<<<
9971  *
9972  *     property constraintsLower:
9973  */
9974   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setRowUpperArray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 501, __pyx_L1_error)
9975   __Pyx_GOTREF(__pyx_t_2);
9976   __pyx_t_3 = NULL;
9977   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9978     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
9979     if (likely(__pyx_t_3)) {
9980       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9981       __Pyx_INCREF(__pyx_t_3);
9982       __Pyx_INCREF(function);
9983       __Pyx_DECREF_SET(__pyx_t_2, function);
9984     }
9985   }
9986   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_upperArray) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_upperArray);
9987   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9988   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 501, __pyx_L1_error)
9989   __Pyx_GOTREF(__pyx_t_1);
9990   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9991   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9992 
9993   /* "cylp/cy/CyClpSimplex.pyx":500
9994  *             return <object>self.CppSelf.getRowUpper()
9995  *
9996  *         def __set__(self, upperArray):             # <<<<<<<<<<<<<<
9997  *             self.setRowUpperArray(upperArray)
9998  *
9999  */
10000 
10001   /* function exit code */
10002   __pyx_r = 0;
10003   goto __pyx_L0;
10004   __pyx_L1_error:;
10005   __Pyx_XDECREF(__pyx_t_1);
10006   __Pyx_XDECREF(__pyx_t_2);
10007   __Pyx_XDECREF(__pyx_t_3);
10008   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintsUpper.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10009   __pyx_r = -1;
10010   __pyx_L0:;
10011   __Pyx_TraceReturn(Py_None, 0);
10012   __Pyx_RefNannyFinishContext();
10013   return __pyx_r;
10014 }
10015 
10016 /* "cylp/cy/CyClpSimplex.pyx":509
10017  *         :rtype: Numpy array
10018  *         '''
10019  *         def __get__(self):             # <<<<<<<<<<<<<<
10020  *             return <object>self.CppSelf.getRowLower()
10021  *
10022  */
10023 
10024 /* Python wrapper */
10025 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_1__get__(PyObject *__pyx_v_self); /*proto*/
10026 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_1__get__(PyObject *__pyx_v_self) {
10027   PyObject *__pyx_r = 0;
10028   __Pyx_RefNannyDeclarations
10029   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10030   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10031 
10032   /* function exit code */
10033   __Pyx_RefNannyFinishContext();
10034   return __pyx_r;
10035 }
10036 
10037 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10038   PyObject *__pyx_r = NULL;
10039   __Pyx_TraceDeclarations
10040   __Pyx_RefNannyDeclarations
10041   PyObject *__pyx_t_1;
10042   int __pyx_lineno = 0;
10043   const char *__pyx_filename = NULL;
10044   int __pyx_clineno = 0;
10045   __Pyx_RefNannySetupContext("__get__", 0);
10046   __Pyx_TraceCall("__get__", __pyx_f[0], 509, 0, __PYX_ERR(0, 509, __pyx_L1_error));
10047 
10048   /* "cylp/cy/CyClpSimplex.pyx":510
10049  *         '''
10050  *         def __get__(self):
10051  *             return <object>self.CppSelf.getRowLower()             # <<<<<<<<<<<<<<
10052  *
10053  *         def __set__(self, lowerArray):
10054  */
10055   __Pyx_XDECREF(__pyx_r);
10056   __pyx_t_1 = __pyx_v_self->CppSelf->getRowLower();
10057   __Pyx_INCREF(((PyObject *)__pyx_t_1));
10058   __pyx_r = ((PyObject *)__pyx_t_1);
10059   goto __pyx_L0;
10060 
10061   /* "cylp/cy/CyClpSimplex.pyx":509
10062  *         :rtype: Numpy array
10063  *         '''
10064  *         def __get__(self):             # <<<<<<<<<<<<<<
10065  *             return <object>self.CppSelf.getRowLower()
10066  *
10067  */
10068 
10069   /* function exit code */
10070   __pyx_L1_error:;
10071   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintsLower.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10072   __pyx_r = NULL;
10073   __pyx_L0:;
10074   __Pyx_XGIVEREF(__pyx_r);
10075   __Pyx_TraceReturn(__pyx_r, 0);
10076   __Pyx_RefNannyFinishContext();
10077   return __pyx_r;
10078 }
10079 
10080 /* "cylp/cy/CyClpSimplex.pyx":512
10081  *             return <object>self.CppSelf.getRowLower()
10082  *
10083  *         def __set__(self, lowerArray):             # <<<<<<<<<<<<<<
10084  *             self.setRowLowerArray(lowerArray)
10085  *
10086  */
10087 
10088 /* Python wrapper */
10089 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_lowerArray); /*proto*/
10090 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_lowerArray) {
10091   int __pyx_r;
10092   __Pyx_RefNannyDeclarations
10093   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
10094   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_lowerArray));
10095 
10096   /* function exit code */
10097   __Pyx_RefNannyFinishContext();
10098   return __pyx_r;
10099 }
10100 
10101 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_lowerArray) {
10102   int __pyx_r;
10103   __Pyx_TraceDeclarations
10104   __Pyx_RefNannyDeclarations
10105   PyObject *__pyx_t_1 = NULL;
10106   PyObject *__pyx_t_2 = NULL;
10107   PyObject *__pyx_t_3 = NULL;
10108   int __pyx_lineno = 0;
10109   const char *__pyx_filename = NULL;
10110   int __pyx_clineno = 0;
10111   __Pyx_RefNannySetupContext("__set__", 0);
10112   __Pyx_TraceCall("__set__", __pyx_f[0], 512, 0, __PYX_ERR(0, 512, __pyx_L1_error));
10113 
10114   /* "cylp/cy/CyClpSimplex.pyx":513
10115  *
10116  *         def __set__(self, lowerArray):
10117  *             self.setRowLowerArray(lowerArray)             # <<<<<<<<<<<<<<
10118  *
10119  *     property lower:
10120  */
10121   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setRowLowerArray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 513, __pyx_L1_error)
10122   __Pyx_GOTREF(__pyx_t_2);
10123   __pyx_t_3 = NULL;
10124   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10125     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10126     if (likely(__pyx_t_3)) {
10127       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10128       __Pyx_INCREF(__pyx_t_3);
10129       __Pyx_INCREF(function);
10130       __Pyx_DECREF_SET(__pyx_t_2, function);
10131     }
10132   }
10133   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_lowerArray) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_lowerArray);
10134   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10135   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 513, __pyx_L1_error)
10136   __Pyx_GOTREF(__pyx_t_1);
10137   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10138   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10139 
10140   /* "cylp/cy/CyClpSimplex.pyx":512
10141  *             return <object>self.CppSelf.getRowLower()
10142  *
10143  *         def __set__(self, lowerArray):             # <<<<<<<<<<<<<<
10144  *             self.setRowLowerArray(lowerArray)
10145  *
10146  */
10147 
10148   /* function exit code */
10149   __pyx_r = 0;
10150   goto __pyx_L0;
10151   __pyx_L1_error:;
10152   __Pyx_XDECREF(__pyx_t_1);
10153   __Pyx_XDECREF(__pyx_t_2);
10154   __Pyx_XDECREF(__pyx_t_3);
10155   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintsLower.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10156   __pyx_r = -1;
10157   __pyx_L0:;
10158   __Pyx_TraceReturn(Py_None, 0);
10159   __Pyx_RefNannyFinishContext();
10160   return __pyx_r;
10161 }
10162 
10163 /* "cylp/cy/CyClpSimplex.pyx":521
10164  *         :rtype: Numpy array
10165  *         '''
10166  *         def __get__(self):             # <<<<<<<<<<<<<<
10167  *             return <object>self.CppSelf.getLower()
10168  *
10169  */
10170 
10171 /* Python wrapper */
10172 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower_1__get__(PyObject *__pyx_v_self); /*proto*/
10173 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower_1__get__(PyObject *__pyx_v_self) {
10174   PyObject *__pyx_r = 0;
10175   __Pyx_RefNannyDeclarations
10176   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10177   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10178 
10179   /* function exit code */
10180   __Pyx_RefNannyFinishContext();
10181   return __pyx_r;
10182 }
10183 
10184 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10185   PyObject *__pyx_r = NULL;
10186   __Pyx_TraceDeclarations
10187   __Pyx_RefNannyDeclarations
10188   PyObject *__pyx_t_1;
10189   int __pyx_lineno = 0;
10190   const char *__pyx_filename = NULL;
10191   int __pyx_clineno = 0;
10192   __Pyx_RefNannySetupContext("__get__", 0);
10193   __Pyx_TraceCall("__get__", __pyx_f[0], 521, 0, __PYX_ERR(0, 521, __pyx_L1_error));
10194 
10195   /* "cylp/cy/CyClpSimplex.pyx":522
10196  *         '''
10197  *         def __get__(self):
10198  *             return <object>self.CppSelf.getLower()             # <<<<<<<<<<<<<<
10199  *
10200  *     property upper:
10201  */
10202   __Pyx_XDECREF(__pyx_r);
10203   __pyx_t_1 = __pyx_v_self->CppSelf->getLower();
10204   __Pyx_INCREF(((PyObject *)__pyx_t_1));
10205   __pyx_r = ((PyObject *)__pyx_t_1);
10206   goto __pyx_L0;
10207 
10208   /* "cylp/cy/CyClpSimplex.pyx":521
10209  *         :rtype: Numpy array
10210  *         '''
10211  *         def __get__(self):             # <<<<<<<<<<<<<<
10212  *             return <object>self.CppSelf.getLower()
10213  *
10214  */
10215 
10216   /* function exit code */
10217   __pyx_L1_error:;
10218   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.lower.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10219   __pyx_r = NULL;
10220   __pyx_L0:;
10221   __Pyx_XGIVEREF(__pyx_r);
10222   __Pyx_TraceReturn(__pyx_r, 0);
10223   __Pyx_RefNannyFinishContext();
10224   return __pyx_r;
10225 }
10226 
10227 /* "cylp/cy/CyClpSimplex.pyx":530
10228  *         :rtype: Numpy array
10229  *         '''
10230  *         def __get__(self):             # <<<<<<<<<<<<<<
10231  *             return <object>self.CppSelf.getUpper()
10232  *
10233  */
10234 
10235 /* Python wrapper */
10236 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper_1__get__(PyObject *__pyx_v_self); /*proto*/
10237 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper_1__get__(PyObject *__pyx_v_self) {
10238   PyObject *__pyx_r = 0;
10239   __Pyx_RefNannyDeclarations
10240   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10241   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10242 
10243   /* function exit code */
10244   __Pyx_RefNannyFinishContext();
10245   return __pyx_r;
10246 }
10247 
10248 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10249   PyObject *__pyx_r = NULL;
10250   __Pyx_TraceDeclarations
10251   __Pyx_RefNannyDeclarations
10252   PyObject *__pyx_t_1;
10253   int __pyx_lineno = 0;
10254   const char *__pyx_filename = NULL;
10255   int __pyx_clineno = 0;
10256   __Pyx_RefNannySetupContext("__get__", 0);
10257   __Pyx_TraceCall("__get__", __pyx_f[0], 530, 0, __PYX_ERR(0, 530, __pyx_L1_error));
10258 
10259   /* "cylp/cy/CyClpSimplex.pyx":531
10260  *         '''
10261  *         def __get__(self):
10262  *             return <object>self.CppSelf.getUpper()             # <<<<<<<<<<<<<<
10263  *
10264  *     property variableScale:
10265  */
10266   __Pyx_XDECREF(__pyx_r);
10267   __pyx_t_1 = __pyx_v_self->CppSelf->getUpper();
10268   __Pyx_INCREF(((PyObject *)__pyx_t_1));
10269   __pyx_r = ((PyObject *)__pyx_t_1);
10270   goto __pyx_L0;
10271 
10272   /* "cylp/cy/CyClpSimplex.pyx":530
10273  *         :rtype: Numpy array
10274  *         '''
10275  *         def __get__(self):             # <<<<<<<<<<<<<<
10276  *             return <object>self.CppSelf.getUpper()
10277  *
10278  */
10279 
10280   /* function exit code */
10281   __pyx_L1_error:;
10282   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.upper.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10283   __pyx_r = NULL;
10284   __pyx_L0:;
10285   __Pyx_XGIVEREF(__pyx_r);
10286   __Pyx_TraceReturn(__pyx_r, 0);
10287   __Pyx_RefNannyFinishContext();
10288   return __pyx_r;
10289 }
10290 
10291 /* "cylp/cy/CyClpSimplex.pyx":539
10292  *         :rtype: Numpy array
10293  *         '''
10294  *         def __get__(self):             # <<<<<<<<<<<<<<
10295  *             return <object>self.CppSelf.getColumnScale()
10296  *
10297  */
10298 
10299 /* Python wrapper */
10300 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale_1__get__(PyObject *__pyx_v_self); /*proto*/
10301 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale_1__get__(PyObject *__pyx_v_self) {
10302   PyObject *__pyx_r = 0;
10303   __Pyx_RefNannyDeclarations
10304   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10305   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10306 
10307   /* function exit code */
10308   __Pyx_RefNannyFinishContext();
10309   return __pyx_r;
10310 }
10311 
10312 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10313   PyObject *__pyx_r = NULL;
10314   __Pyx_TraceDeclarations
10315   __Pyx_RefNannyDeclarations
10316   PyObject *__pyx_t_1;
10317   int __pyx_lineno = 0;
10318   const char *__pyx_filename = NULL;
10319   int __pyx_clineno = 0;
10320   __Pyx_RefNannySetupContext("__get__", 0);
10321   __Pyx_TraceCall("__get__", __pyx_f[0], 539, 0, __PYX_ERR(0, 539, __pyx_L1_error));
10322 
10323   /* "cylp/cy/CyClpSimplex.pyx":540
10324  *         '''
10325  *         def __get__(self):
10326  *             return <object>self.CppSelf.getColumnScale()             # <<<<<<<<<<<<<<
10327  *
10328  *     property constraintScale:
10329  */
10330   __Pyx_XDECREF(__pyx_r);
10331   __pyx_t_1 = __pyx_v_self->CppSelf->getColumnScale();
10332   __Pyx_INCREF(((PyObject *)__pyx_t_1));
10333   __pyx_r = ((PyObject *)__pyx_t_1);
10334   goto __pyx_L0;
10335 
10336   /* "cylp/cy/CyClpSimplex.pyx":539
10337  *         :rtype: Numpy array
10338  *         '''
10339  *         def __get__(self):             # <<<<<<<<<<<<<<
10340  *             return <object>self.CppSelf.getColumnScale()
10341  *
10342  */
10343 
10344   /* function exit code */
10345   __pyx_L1_error:;
10346   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variableScale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10347   __pyx_r = NULL;
10348   __pyx_L0:;
10349   __Pyx_XGIVEREF(__pyx_r);
10350   __Pyx_TraceReturn(__pyx_r, 0);
10351   __Pyx_RefNannyFinishContext();
10352   return __pyx_r;
10353 }
10354 
10355 /* "cylp/cy/CyClpSimplex.pyx":548
10356  *         :rtype: Numpy array
10357  *         '''
10358  *         def __get__(self):             # <<<<<<<<<<<<<<
10359  *             return <object>self.CppSelf.getRowScale()
10360  *
10361  */
10362 
10363 /* Python wrapper */
10364 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale_1__get__(PyObject *__pyx_v_self); /*proto*/
10365 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale_1__get__(PyObject *__pyx_v_self) {
10366   PyObject *__pyx_r = 0;
10367   __Pyx_RefNannyDeclarations
10368   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10369   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10370 
10371   /* function exit code */
10372   __Pyx_RefNannyFinishContext();
10373   return __pyx_r;
10374 }
10375 
10376 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10377   PyObject *__pyx_r = NULL;
10378   __Pyx_TraceDeclarations
10379   __Pyx_RefNannyDeclarations
10380   PyObject *__pyx_t_1;
10381   int __pyx_lineno = 0;
10382   const char *__pyx_filename = NULL;
10383   int __pyx_clineno = 0;
10384   __Pyx_RefNannySetupContext("__get__", 0);
10385   __Pyx_TraceCall("__get__", __pyx_f[0], 548, 0, __PYX_ERR(0, 548, __pyx_L1_error));
10386 
10387   /* "cylp/cy/CyClpSimplex.pyx":549
10388  *         '''
10389  *         def __get__(self):
10390  *             return <object>self.CppSelf.getRowScale()             # <<<<<<<<<<<<<<
10391  *
10392  *     property integerInformation:
10393  */
10394   __Pyx_XDECREF(__pyx_r);
10395   __pyx_t_1 = __pyx_v_self->CppSelf->getRowScale();
10396   __Pyx_INCREF(((PyObject *)__pyx_t_1));
10397   __pyx_r = ((PyObject *)__pyx_t_1);
10398   goto __pyx_L0;
10399 
10400   /* "cylp/cy/CyClpSimplex.pyx":548
10401  *         :rtype: Numpy array
10402  *         '''
10403  *         def __get__(self):             # <<<<<<<<<<<<<<
10404  *             return <object>self.CppSelf.getRowScale()
10405  *
10406  */
10407 
10408   /* function exit code */
10409   __pyx_L1_error:;
10410   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintScale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10411   __pyx_r = NULL;
10412   __pyx_L0:;
10413   __Pyx_XGIVEREF(__pyx_r);
10414   __Pyx_TraceReturn(__pyx_r, 0);
10415   __Pyx_RefNannyFinishContext();
10416   return __pyx_r;
10417 }
10418 
10419 /* "cylp/cy/CyClpSimplex.pyx":558
10420  *         :rtype: Numpy array
10421  *         '''
10422  *         def __get__(self):             # <<<<<<<<<<<<<<
10423  *             return <object>self.CppSelf.getIntegerInformation()
10424  *
10425  */
10426 
10427 /* Python wrapper */
10428 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation_1__get__(PyObject *__pyx_v_self); /*proto*/
10429 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation_1__get__(PyObject *__pyx_v_self) {
10430   PyObject *__pyx_r = 0;
10431   __Pyx_RefNannyDeclarations
10432   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10433   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10434 
10435   /* function exit code */
10436   __Pyx_RefNannyFinishContext();
10437   return __pyx_r;
10438 }
10439 
10440 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10441   PyObject *__pyx_r = NULL;
10442   __Pyx_TraceDeclarations
10443   __Pyx_RefNannyDeclarations
10444   PyObject *__pyx_t_1;
10445   int __pyx_lineno = 0;
10446   const char *__pyx_filename = NULL;
10447   int __pyx_clineno = 0;
10448   __Pyx_RefNannySetupContext("__get__", 0);
10449   __Pyx_TraceCall("__get__", __pyx_f[0], 558, 0, __PYX_ERR(0, 558, __pyx_L1_error));
10450 
10451   /* "cylp/cy/CyClpSimplex.pyx":559
10452  *         '''
10453  *         def __get__(self):
10454  *             return <object>self.CppSelf.getIntegerInformation()             # <<<<<<<<<<<<<<
10455  *
10456  *     property status:
10457  */
10458   __Pyx_XDECREF(__pyx_r);
10459   __pyx_t_1 = __pyx_v_self->CppSelf->getIntegerInformation();
10460   __Pyx_INCREF(((PyObject *)__pyx_t_1));
10461   __pyx_r = ((PyObject *)__pyx_t_1);
10462   goto __pyx_L0;
10463 
10464   /* "cylp/cy/CyClpSimplex.pyx":558
10465  *         :rtype: Numpy array
10466  *         '''
10467  *         def __get__(self):             # <<<<<<<<<<<<<<
10468  *             return <object>self.CppSelf.getIntegerInformation()
10469  *
10470  */
10471 
10472   /* function exit code */
10473   __pyx_L1_error:;
10474   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.integerInformation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10475   __pyx_r = NULL;
10476   __pyx_L0:;
10477   __Pyx_XGIVEREF(__pyx_r);
10478   __Pyx_TraceReturn(__pyx_r, 0);
10479   __Pyx_RefNannyFinishContext();
10480   return __pyx_r;
10481 }
10482 
10483 /* "cylp/cy/CyClpSimplex.pyx":565
10484  *         A Numpy array of all the variables' status
10485  *         '''
10486  *         def __get__(self):             # <<<<<<<<<<<<<<
10487  *             return self.getStatusArray()
10488  *
10489  */
10490 
10491 /* Python wrapper */
10492 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status_1__get__(PyObject *__pyx_v_self); /*proto*/
10493 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status_1__get__(PyObject *__pyx_v_self) {
10494   PyObject *__pyx_r = 0;
10495   __Pyx_RefNannyDeclarations
10496   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10497   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10498 
10499   /* function exit code */
10500   __Pyx_RefNannyFinishContext();
10501   return __pyx_r;
10502 }
10503 
10504 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10505   PyObject *__pyx_r = NULL;
10506   __Pyx_TraceDeclarations
10507   __Pyx_RefNannyDeclarations
10508   PyObject *__pyx_t_1 = NULL;
10509   int __pyx_lineno = 0;
10510   const char *__pyx_filename = NULL;
10511   int __pyx_clineno = 0;
10512   __Pyx_RefNannySetupContext("__get__", 0);
10513   __Pyx_TraceCall("__get__", __pyx_f[0], 565, 0, __PYX_ERR(0, 565, __pyx_L1_error));
10514 
10515   /* "cylp/cy/CyClpSimplex.pyx":566
10516  *         '''
10517  *         def __get__(self):
10518  *             return self.getStatusArray()             # <<<<<<<<<<<<<<
10519  *
10520  *     cpdef getStatusArray(self):
10521  */
10522   __Pyx_XDECREF(__pyx_r);
10523   __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->getStatusArray(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error)
10524   __Pyx_GOTREF(__pyx_t_1);
10525   __pyx_r = __pyx_t_1;
10526   __pyx_t_1 = 0;
10527   goto __pyx_L0;
10528 
10529   /* "cylp/cy/CyClpSimplex.pyx":565
10530  *         A Numpy array of all the variables' status
10531  *         '''
10532  *         def __get__(self):             # <<<<<<<<<<<<<<
10533  *             return self.getStatusArray()
10534  *
10535  */
10536 
10537   /* function exit code */
10538   __pyx_L1_error:;
10539   __Pyx_XDECREF(__pyx_t_1);
10540   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.status.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10541   __pyx_r = NULL;
10542   __pyx_L0:;
10543   __Pyx_XGIVEREF(__pyx_r);
10544   __Pyx_TraceReturn(__pyx_r, 0);
10545   __Pyx_RefNannyFinishContext();
10546   return __pyx_r;
10547 }
10548 
10549 /* "cylp/cy/CyClpSimplex.pyx":568
10550  *             return self.getStatusArray()
10551  *
10552  *     cpdef getStatusArray(self):             # <<<<<<<<<<<<<<
10553  *         return <object>self.CppSelf.getStatusArray()
10554  *
10555  */
10556 
10557 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
10558 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getStatusArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch) {
10559   PyObject *__pyx_r = NULL;
10560   __Pyx_TraceDeclarations
10561   __Pyx_RefNannyDeclarations
10562   PyObject *__pyx_t_1 = NULL;
10563   PyObject *__pyx_t_2 = NULL;
10564   PyObject *__pyx_t_3 = NULL;
10565   PyObject *__pyx_t_4 = NULL;
10566   PyObject *__pyx_t_5;
10567   int __pyx_lineno = 0;
10568   const char *__pyx_filename = NULL;
10569   int __pyx_clineno = 0;
10570   __Pyx_RefNannySetupContext("getStatusArray", 0);
10571   __Pyx_TraceCall("getStatusArray", __pyx_f[0], 568, 0, __PYX_ERR(0, 568, __pyx_L1_error));
10572   /* Check if called by wrapper */
10573   if (unlikely(__pyx_skip_dispatch)) ;
10574   /* Check if overridden in Python */
10575   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
10576     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
10577     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
10578     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
10579       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
10580       #endif
10581       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getStatusArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 568, __pyx_L1_error)
10582       __Pyx_GOTREF(__pyx_t_1);
10583       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray)) {
10584         __Pyx_XDECREF(__pyx_r);
10585         __Pyx_INCREF(__pyx_t_1);
10586         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
10587         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
10588           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
10589           if (likely(__pyx_t_4)) {
10590             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
10591             __Pyx_INCREF(__pyx_t_4);
10592             __Pyx_INCREF(function);
10593             __Pyx_DECREF_SET(__pyx_t_3, function);
10594           }
10595         }
10596         __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
10597         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
10598         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 568, __pyx_L1_error)
10599         __Pyx_GOTREF(__pyx_t_2);
10600         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10601         __pyx_r = __pyx_t_2;
10602         __pyx_t_2 = 0;
10603         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10604         goto __pyx_L0;
10605       }
10606       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
10607       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
10608       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
10609       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
10610         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
10611       }
10612       #endif
10613       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10614       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
10615     }
10616     #endif
10617   }
10618 
10619   /* "cylp/cy/CyClpSimplex.pyx":569
10620  *
10621  *     cpdef getStatusArray(self):
10622  *         return <object>self.CppSelf.getStatusArray()             # <<<<<<<<<<<<<<
10623  *
10624  *     property freeOrSuperBasicVarInds:
10625  */
10626   __Pyx_XDECREF(__pyx_r);
10627   __pyx_t_5 = __pyx_v_self->CppSelf->getStatusArray();
10628   __Pyx_INCREF(((PyObject *)__pyx_t_5));
10629   __pyx_r = ((PyObject *)__pyx_t_5);
10630   goto __pyx_L0;
10631 
10632   /* "cylp/cy/CyClpSimplex.pyx":568
10633  *             return self.getStatusArray()
10634  *
10635  *     cpdef getStatusArray(self):             # <<<<<<<<<<<<<<
10636  *         return <object>self.CppSelf.getStatusArray()
10637  *
10638  */
10639 
10640   /* function exit code */
10641   __pyx_L1_error:;
10642   __Pyx_XDECREF(__pyx_t_1);
10643   __Pyx_XDECREF(__pyx_t_2);
10644   __Pyx_XDECREF(__pyx_t_3);
10645   __Pyx_XDECREF(__pyx_t_4);
10646   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getStatusArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
10647   __pyx_r = 0;
10648   __pyx_L0:;
10649   __Pyx_XGIVEREF(__pyx_r);
10650   __Pyx_TraceReturn(__pyx_r, 0);
10651   __Pyx_RefNannyFinishContext();
10652   return __pyx_r;
10653 }
10654 
10655 /* Python wrapper */
10656 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
10657 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray[] = "CyClpSimplex.getStatusArray(self)";
10658 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
10659   PyObject *__pyx_r = 0;
10660   __Pyx_RefNannyDeclarations
10661   __Pyx_RefNannySetupContext("getStatusArray (wrapper)", 0);
10662   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10663 
10664   /* function exit code */
10665   __Pyx_RefNannyFinishContext();
10666   return __pyx_r;
10667 }
10668 
10669 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10670   PyObject *__pyx_r = NULL;
10671   __Pyx_TraceDeclarations
10672   __Pyx_RefNannyDeclarations
10673   PyObject *__pyx_t_1 = NULL;
10674   int __pyx_lineno = 0;
10675   const char *__pyx_filename = NULL;
10676   int __pyx_clineno = 0;
10677   __Pyx_RefNannySetupContext("getStatusArray", 0);
10678   __Pyx_TraceCall("getStatusArray (wrapper)", __pyx_f[0], 568, 0, __PYX_ERR(0, 568, __pyx_L1_error));
10679   __Pyx_XDECREF(__pyx_r);
10680   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getStatusArray(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 568, __pyx_L1_error)
10681   __Pyx_GOTREF(__pyx_t_1);
10682   __pyx_r = __pyx_t_1;
10683   __pyx_t_1 = 0;
10684   goto __pyx_L0;
10685 
10686   /* function exit code */
10687   __pyx_L1_error:;
10688   __Pyx_XDECREF(__pyx_t_1);
10689   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getStatusArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
10690   __pyx_r = NULL;
10691   __pyx_L0:;
10692   __Pyx_XGIVEREF(__pyx_r);
10693   __Pyx_TraceReturn(__pyx_r, 0);
10694   __Pyx_RefNannyFinishContext();
10695   return __pyx_r;
10696 }
10697 
10698 /* "cylp/cy/CyClpSimplex.pyx":575
10699  *         The index set of variables that are *free* or *superbasic*.
10700  *         '''
10701  *         def __get__(self):             # <<<<<<<<<<<<<<
10702  *             status = self.status
10703  *             return np.where((status & 7 == 4) | (status & 7 == 0))[0]
10704  */
10705 
10706 /* Python wrapper */
10707 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds_1__get__(PyObject *__pyx_v_self); /*proto*/
10708 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds_1__get__(PyObject *__pyx_v_self) {
10709   PyObject *__pyx_r = 0;
10710   __Pyx_RefNannyDeclarations
10711   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10712   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10713 
10714   /* function exit code */
10715   __Pyx_RefNannyFinishContext();
10716   return __pyx_r;
10717 }
10718 
10719 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10720   PyObject *__pyx_v_status = NULL;
10721   PyObject *__pyx_r = NULL;
10722   __Pyx_TraceDeclarations
10723   __Pyx_RefNannyDeclarations
10724   PyObject *__pyx_t_1 = NULL;
10725   PyObject *__pyx_t_2 = NULL;
10726   PyObject *__pyx_t_3 = NULL;
10727   PyObject *__pyx_t_4 = NULL;
10728   PyObject *__pyx_t_5 = NULL;
10729   int __pyx_lineno = 0;
10730   const char *__pyx_filename = NULL;
10731   int __pyx_clineno = 0;
10732   __Pyx_RefNannySetupContext("__get__", 0);
10733   __Pyx_TraceCall("__get__", __pyx_f[0], 575, 0, __PYX_ERR(0, 575, __pyx_L1_error));
10734 
10735   /* "cylp/cy/CyClpSimplex.pyx":576
10736  *         '''
10737  *         def __get__(self):
10738  *             status = self.status             # <<<<<<<<<<<<<<
10739  *             return np.where((status & 7 == 4) | (status & 7 == 0))[0]
10740  *
10741  */
10742   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __pyx_L1_error)
10743   __Pyx_GOTREF(__pyx_t_1);
10744   __pyx_v_status = __pyx_t_1;
10745   __pyx_t_1 = 0;
10746 
10747   /* "cylp/cy/CyClpSimplex.pyx":577
10748  *         def __get__(self):
10749  *             status = self.status
10750  *             return np.where((status & 7 == 4) | (status & 7 == 0))[0]             # <<<<<<<<<<<<<<
10751  *
10752  *     property notBasicOrFixedOrFlaggedVarInds:
10753  */
10754   __Pyx_XDECREF(__pyx_r);
10755   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error)
10756   __Pyx_GOTREF(__pyx_t_2);
10757   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_where); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 577, __pyx_L1_error)
10758   __Pyx_GOTREF(__pyx_t_3);
10759   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10760   __pyx_t_2 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error)
10761   __Pyx_GOTREF(__pyx_t_2);
10762   __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_2, __pyx_int_4, 4, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 577, __pyx_L1_error)
10763   __Pyx_GOTREF(__pyx_t_4);
10764   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10765   __pyx_t_2 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error)
10766   __Pyx_GOTREF(__pyx_t_2);
10767   __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_2, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 577, __pyx_L1_error)
10768   __Pyx_GOTREF(__pyx_t_5);
10769   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10770   __pyx_t_2 = PyNumber_Or(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error)
10771   __Pyx_GOTREF(__pyx_t_2);
10772   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10773   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10774   __pyx_t_5 = NULL;
10775   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
10776     __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
10777     if (likely(__pyx_t_5)) {
10778       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
10779       __Pyx_INCREF(__pyx_t_5);
10780       __Pyx_INCREF(function);
10781       __Pyx_DECREF_SET(__pyx_t_3, function);
10782     }
10783   }
10784   __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
10785   __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
10786   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10787   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error)
10788   __Pyx_GOTREF(__pyx_t_1);
10789   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10790   __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 577, __pyx_L1_error)
10791   __Pyx_GOTREF(__pyx_t_3);
10792   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10793   __pyx_r = __pyx_t_3;
10794   __pyx_t_3 = 0;
10795   goto __pyx_L0;
10796 
10797   /* "cylp/cy/CyClpSimplex.pyx":575
10798  *         The index set of variables that are *free* or *superbasic*.
10799  *         '''
10800  *         def __get__(self):             # <<<<<<<<<<<<<<
10801  *             status = self.status
10802  *             return np.where((status & 7 == 4) | (status & 7 == 0))[0]
10803  */
10804 
10805   /* function exit code */
10806   __pyx_L1_error:;
10807   __Pyx_XDECREF(__pyx_t_1);
10808   __Pyx_XDECREF(__pyx_t_2);
10809   __Pyx_XDECREF(__pyx_t_3);
10810   __Pyx_XDECREF(__pyx_t_4);
10811   __Pyx_XDECREF(__pyx_t_5);
10812   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.freeOrSuperBasicVarInds.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10813   __pyx_r = NULL;
10814   __pyx_L0:;
10815   __Pyx_XDECREF(__pyx_v_status);
10816   __Pyx_XGIVEREF(__pyx_r);
10817   __Pyx_TraceReturn(__pyx_r, 0);
10818   __Pyx_RefNannyFinishContext();
10819   return __pyx_r;
10820 }
10821 
10822 /* "cylp/cy/CyClpSimplex.pyx":583
10823  *         The index set of variables that are not *basic* or *fixed*.
10824  *         '''
10825  *         def __get__(self):             # <<<<<<<<<<<<<<
10826  *             status = self.status
10827  *             return np.where((status & 7 != 1) &
10828  */
10829 
10830 /* Python wrapper */
10831 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds_1__get__(PyObject *__pyx_v_self); /*proto*/
10832 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds_1__get__(PyObject *__pyx_v_self) {
10833   PyObject *__pyx_r = 0;
10834   __Pyx_RefNannyDeclarations
10835   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10836   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
10837 
10838   /* function exit code */
10839   __Pyx_RefNannyFinishContext();
10840   return __pyx_r;
10841 }
10842 
10843 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
10844   PyObject *__pyx_v_status = NULL;
10845   PyObject *__pyx_r = NULL;
10846   __Pyx_TraceDeclarations
10847   __Pyx_RefNannyDeclarations
10848   PyObject *__pyx_t_1 = NULL;
10849   PyObject *__pyx_t_2 = NULL;
10850   PyObject *__pyx_t_3 = NULL;
10851   PyObject *__pyx_t_4 = NULL;
10852   PyObject *__pyx_t_5 = NULL;
10853   int __pyx_lineno = 0;
10854   const char *__pyx_filename = NULL;
10855   int __pyx_clineno = 0;
10856   __Pyx_RefNannySetupContext("__get__", 0);
10857   __Pyx_TraceCall("__get__", __pyx_f[0], 583, 0, __PYX_ERR(0, 583, __pyx_L1_error));
10858 
10859   /* "cylp/cy/CyClpSimplex.pyx":584
10860  *         '''
10861  *         def __get__(self):
10862  *             status = self.status             # <<<<<<<<<<<<<<
10863  *             return np.where((status & 7 != 1) &
10864  *                             (status & 7 != 5) &
10865  */
10866   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error)
10867   __Pyx_GOTREF(__pyx_t_1);
10868   __pyx_v_status = __pyx_t_1;
10869   __pyx_t_1 = 0;
10870 
10871   /* "cylp/cy/CyClpSimplex.pyx":585
10872  *         def __get__(self):
10873  *             status = self.status
10874  *             return np.where((status & 7 != 1) &             # <<<<<<<<<<<<<<
10875  *                             (status & 7 != 5) &
10876  *                             (status & 64 == 0))[0]
10877  */
10878   __Pyx_XDECREF(__pyx_r);
10879   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
10880   __Pyx_GOTREF(__pyx_t_2);
10881   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_where); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 585, __pyx_L1_error)
10882   __Pyx_GOTREF(__pyx_t_3);
10883   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10884   __pyx_t_2 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
10885   __Pyx_GOTREF(__pyx_t_2);
10886   __pyx_t_4 = __Pyx_PyInt_NeObjC(__pyx_t_2, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 585, __pyx_L1_error)
10887   __Pyx_GOTREF(__pyx_t_4);
10888   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10889 
10890   /* "cylp/cy/CyClpSimplex.pyx":586
10891  *             status = self.status
10892  *             return np.where((status & 7 != 1) &
10893  *                             (status & 7 != 5) &             # <<<<<<<<<<<<<<
10894  *                             (status & 64 == 0))[0]
10895  *
10896  */
10897   __pyx_t_2 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 586, __pyx_L1_error)
10898   __Pyx_GOTREF(__pyx_t_2);
10899   __pyx_t_5 = __Pyx_PyInt_NeObjC(__pyx_t_2, __pyx_int_5, 5, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 586, __pyx_L1_error)
10900   __Pyx_GOTREF(__pyx_t_5);
10901   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10902 
10903   /* "cylp/cy/CyClpSimplex.pyx":585
10904  *         def __get__(self):
10905  *             status = self.status
10906  *             return np.where((status & 7 != 1) &             # <<<<<<<<<<<<<<
10907  *                             (status & 7 != 5) &
10908  *                             (status & 64 == 0))[0]
10909  */
10910   __pyx_t_2 = PyNumber_And(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
10911   __Pyx_GOTREF(__pyx_t_2);
10912   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10913   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10914 
10915   /* "cylp/cy/CyClpSimplex.pyx":587
10916  *             return np.where((status & 7 != 1) &
10917  *                             (status & 7 != 5) &
10918  *                             (status & 64 == 0))[0]             # <<<<<<<<<<<<<<
10919  *
10920  *     property varIsFree:
10921  */
10922   __pyx_t_5 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_64, 64, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 587, __pyx_L1_error)
10923   __Pyx_GOTREF(__pyx_t_5);
10924   __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 587, __pyx_L1_error)
10925   __Pyx_GOTREF(__pyx_t_4);
10926   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10927 
10928   /* "cylp/cy/CyClpSimplex.pyx":586
10929  *             status = self.status
10930  *             return np.where((status & 7 != 1) &
10931  *                             (status & 7 != 5) &             # <<<<<<<<<<<<<<
10932  *                             (status & 64 == 0))[0]
10933  *
10934  */
10935   __pyx_t_5 = PyNumber_And(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 586, __pyx_L1_error)
10936   __Pyx_GOTREF(__pyx_t_5);
10937   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10938   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10939   __pyx_t_4 = NULL;
10940   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
10941     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
10942     if (likely(__pyx_t_4)) {
10943       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
10944       __Pyx_INCREF(__pyx_t_4);
10945       __Pyx_INCREF(function);
10946       __Pyx_DECREF_SET(__pyx_t_3, function);
10947     }
10948   }
10949   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5);
10950   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
10951   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10952   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L1_error)
10953   __Pyx_GOTREF(__pyx_t_1);
10954   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10955 
10956   /* "cylp/cy/CyClpSimplex.pyx":587
10957  *             return np.where((status & 7 != 1) &
10958  *                             (status & 7 != 5) &
10959  *                             (status & 64 == 0))[0]             # <<<<<<<<<<<<<<
10960  *
10961  *     property varIsFree:
10962  */
10963   __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 587, __pyx_L1_error)
10964   __Pyx_GOTREF(__pyx_t_3);
10965   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10966   __pyx_r = __pyx_t_3;
10967   __pyx_t_3 = 0;
10968   goto __pyx_L0;
10969 
10970   /* "cylp/cy/CyClpSimplex.pyx":583
10971  *         The index set of variables that are not *basic* or *fixed*.
10972  *         '''
10973  *         def __get__(self):             # <<<<<<<<<<<<<<
10974  *             status = self.status
10975  *             return np.where((status & 7 != 1) &
10976  */
10977 
10978   /* function exit code */
10979   __pyx_L1_error:;
10980   __Pyx_XDECREF(__pyx_t_1);
10981   __Pyx_XDECREF(__pyx_t_2);
10982   __Pyx_XDECREF(__pyx_t_3);
10983   __Pyx_XDECREF(__pyx_t_4);
10984   __Pyx_XDECREF(__pyx_t_5);
10985   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.notBasicOrFixedOrFlaggedVarInds.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10986   __pyx_r = NULL;
10987   __pyx_L0:;
10988   __Pyx_XDECREF(__pyx_v_status);
10989   __Pyx_XGIVEREF(__pyx_r);
10990   __Pyx_TraceReturn(__pyx_r, 0);
10991   __Pyx_RefNannyFinishContext();
10992   return __pyx_r;
10993 }
10994 
10995 /* "cylp/cy/CyClpSimplex.pyx":593
10996  *         The index set of variables that are *free*.
10997  *         '''
10998  *         def __get__(self):             # <<<<<<<<<<<<<<
10999  *             status = self.status
11000  *             return (status & 7 == 0)
11001  */
11002 
11003 /* Python wrapper */
11004 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree_1__get__(PyObject *__pyx_v_self); /*proto*/
11005 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree_1__get__(PyObject *__pyx_v_self) {
11006   PyObject *__pyx_r = 0;
11007   __Pyx_RefNannyDeclarations
11008   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11009   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11010 
11011   /* function exit code */
11012   __Pyx_RefNannyFinishContext();
11013   return __pyx_r;
11014 }
11015 
11016 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11017   PyObject *__pyx_v_status = NULL;
11018   PyObject *__pyx_r = NULL;
11019   __Pyx_TraceDeclarations
11020   __Pyx_RefNannyDeclarations
11021   PyObject *__pyx_t_1 = NULL;
11022   PyObject *__pyx_t_2 = NULL;
11023   int __pyx_lineno = 0;
11024   const char *__pyx_filename = NULL;
11025   int __pyx_clineno = 0;
11026   __Pyx_RefNannySetupContext("__get__", 0);
11027   __Pyx_TraceCall("__get__", __pyx_f[0], 593, 0, __PYX_ERR(0, 593, __pyx_L1_error));
11028 
11029   /* "cylp/cy/CyClpSimplex.pyx":594
11030  *         '''
11031  *         def __get__(self):
11032  *             status = self.status             # <<<<<<<<<<<<<<
11033  *             return (status & 7 == 0)
11034  *
11035  */
11036   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error)
11037   __Pyx_GOTREF(__pyx_t_1);
11038   __pyx_v_status = __pyx_t_1;
11039   __pyx_t_1 = 0;
11040 
11041   /* "cylp/cy/CyClpSimplex.pyx":595
11042  *         def __get__(self):
11043  *             status = self.status
11044  *             return (status & 7 == 0)             # <<<<<<<<<<<<<<
11045  *
11046  *     property varIsBasic:
11047  */
11048   __Pyx_XDECREF(__pyx_r);
11049   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L1_error)
11050   __Pyx_GOTREF(__pyx_t_1);
11051   __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 595, __pyx_L1_error)
11052   __Pyx_GOTREF(__pyx_t_2);
11053   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11054   __pyx_r = __pyx_t_2;
11055   __pyx_t_2 = 0;
11056   goto __pyx_L0;
11057 
11058   /* "cylp/cy/CyClpSimplex.pyx":593
11059  *         The index set of variables that are *free*.
11060  *         '''
11061  *         def __get__(self):             # <<<<<<<<<<<<<<
11062  *             status = self.status
11063  *             return (status & 7 == 0)
11064  */
11065 
11066   /* function exit code */
11067   __pyx_L1_error:;
11068   __Pyx_XDECREF(__pyx_t_1);
11069   __Pyx_XDECREF(__pyx_t_2);
11070   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsFree.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11071   __pyx_r = NULL;
11072   __pyx_L0:;
11073   __Pyx_XDECREF(__pyx_v_status);
11074   __Pyx_XGIVEREF(__pyx_r);
11075   __Pyx_TraceReturn(__pyx_r, 0);
11076   __Pyx_RefNannyFinishContext();
11077   return __pyx_r;
11078 }
11079 
11080 /* "cylp/cy/CyClpSimplex.pyx":601
11081  *         The index set of variables that are *basic*.
11082  *         '''
11083  *         def __get__(self):             # <<<<<<<<<<<<<<
11084  *             status = self.status
11085  *             return (status & 7 == 1)
11086  */
11087 
11088 /* Python wrapper */
11089 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic_1__get__(PyObject *__pyx_v_self); /*proto*/
11090 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic_1__get__(PyObject *__pyx_v_self) {
11091   PyObject *__pyx_r = 0;
11092   __Pyx_RefNannyDeclarations
11093   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11094   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11095 
11096   /* function exit code */
11097   __Pyx_RefNannyFinishContext();
11098   return __pyx_r;
11099 }
11100 
11101 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11102   PyObject *__pyx_v_status = NULL;
11103   PyObject *__pyx_r = NULL;
11104   __Pyx_TraceDeclarations
11105   __Pyx_RefNannyDeclarations
11106   PyObject *__pyx_t_1 = NULL;
11107   PyObject *__pyx_t_2 = NULL;
11108   int __pyx_lineno = 0;
11109   const char *__pyx_filename = NULL;
11110   int __pyx_clineno = 0;
11111   __Pyx_RefNannySetupContext("__get__", 0);
11112   __Pyx_TraceCall("__get__", __pyx_f[0], 601, 0, __PYX_ERR(0, 601, __pyx_L1_error));
11113 
11114   /* "cylp/cy/CyClpSimplex.pyx":602
11115  *         '''
11116  *         def __get__(self):
11117  *             status = self.status             # <<<<<<<<<<<<<<
11118  *             return (status & 7 == 1)
11119  *
11120  */
11121   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error)
11122   __Pyx_GOTREF(__pyx_t_1);
11123   __pyx_v_status = __pyx_t_1;
11124   __pyx_t_1 = 0;
11125 
11126   /* "cylp/cy/CyClpSimplex.pyx":603
11127  *         def __get__(self):
11128  *             status = self.status
11129  *             return (status & 7 == 1)             # <<<<<<<<<<<<<<
11130  *
11131  *     property varIsAtUpperBound:
11132  */
11133   __Pyx_XDECREF(__pyx_r);
11134   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 603, __pyx_L1_error)
11135   __Pyx_GOTREF(__pyx_t_1);
11136   __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 603, __pyx_L1_error)
11137   __Pyx_GOTREF(__pyx_t_2);
11138   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11139   __pyx_r = __pyx_t_2;
11140   __pyx_t_2 = 0;
11141   goto __pyx_L0;
11142 
11143   /* "cylp/cy/CyClpSimplex.pyx":601
11144  *         The index set of variables that are *basic*.
11145  *         '''
11146  *         def __get__(self):             # <<<<<<<<<<<<<<
11147  *             status = self.status
11148  *             return (status & 7 == 1)
11149  */
11150 
11151   /* function exit code */
11152   __pyx_L1_error:;
11153   __Pyx_XDECREF(__pyx_t_1);
11154   __Pyx_XDECREF(__pyx_t_2);
11155   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsBasic.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11156   __pyx_r = NULL;
11157   __pyx_L0:;
11158   __Pyx_XDECREF(__pyx_v_status);
11159   __Pyx_XGIVEREF(__pyx_r);
11160   __Pyx_TraceReturn(__pyx_r, 0);
11161   __Pyx_RefNannyFinishContext();
11162   return __pyx_r;
11163 }
11164 
11165 /* "cylp/cy/CyClpSimplex.pyx":609
11166  *         The index set of variables that are at their upper bound.
11167  *         '''
11168  *         def __get__(self):             # <<<<<<<<<<<<<<
11169  *             status = self.status
11170  *             return (status & 7 == 2)
11171  */
11172 
11173 /* Python wrapper */
11174 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound_1__get__(PyObject *__pyx_v_self); /*proto*/
11175 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound_1__get__(PyObject *__pyx_v_self) {
11176   PyObject *__pyx_r = 0;
11177   __Pyx_RefNannyDeclarations
11178   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11179   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11180 
11181   /* function exit code */
11182   __Pyx_RefNannyFinishContext();
11183   return __pyx_r;
11184 }
11185 
11186 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11187   PyObject *__pyx_v_status = NULL;
11188   PyObject *__pyx_r = NULL;
11189   __Pyx_TraceDeclarations
11190   __Pyx_RefNannyDeclarations
11191   PyObject *__pyx_t_1 = NULL;
11192   PyObject *__pyx_t_2 = NULL;
11193   int __pyx_lineno = 0;
11194   const char *__pyx_filename = NULL;
11195   int __pyx_clineno = 0;
11196   __Pyx_RefNannySetupContext("__get__", 0);
11197   __Pyx_TraceCall("__get__", __pyx_f[0], 609, 0, __PYX_ERR(0, 609, __pyx_L1_error));
11198 
11199   /* "cylp/cy/CyClpSimplex.pyx":610
11200  *         '''
11201  *         def __get__(self):
11202  *             status = self.status             # <<<<<<<<<<<<<<
11203  *             return (status & 7 == 2)
11204  *
11205  */
11206   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 610, __pyx_L1_error)
11207   __Pyx_GOTREF(__pyx_t_1);
11208   __pyx_v_status = __pyx_t_1;
11209   __pyx_t_1 = 0;
11210 
11211   /* "cylp/cy/CyClpSimplex.pyx":611
11212  *         def __get__(self):
11213  *             status = self.status
11214  *             return (status & 7 == 2)             # <<<<<<<<<<<<<<
11215  *
11216  *     property varIsAtLowerBound:
11217  */
11218   __Pyx_XDECREF(__pyx_r);
11219   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 611, __pyx_L1_error)
11220   __Pyx_GOTREF(__pyx_t_1);
11221   __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 611, __pyx_L1_error)
11222   __Pyx_GOTREF(__pyx_t_2);
11223   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11224   __pyx_r = __pyx_t_2;
11225   __pyx_t_2 = 0;
11226   goto __pyx_L0;
11227 
11228   /* "cylp/cy/CyClpSimplex.pyx":609
11229  *         The index set of variables that are at their upper bound.
11230  *         '''
11231  *         def __get__(self):             # <<<<<<<<<<<<<<
11232  *             status = self.status
11233  *             return (status & 7 == 2)
11234  */
11235 
11236   /* function exit code */
11237   __pyx_L1_error:;
11238   __Pyx_XDECREF(__pyx_t_1);
11239   __Pyx_XDECREF(__pyx_t_2);
11240   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsAtUpperBound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11241   __pyx_r = NULL;
11242   __pyx_L0:;
11243   __Pyx_XDECREF(__pyx_v_status);
11244   __Pyx_XGIVEREF(__pyx_r);
11245   __Pyx_TraceReturn(__pyx_r, 0);
11246   __Pyx_RefNannyFinishContext();
11247   return __pyx_r;
11248 }
11249 
11250 /* "cylp/cy/CyClpSimplex.pyx":617
11251  *         The index set of variables that are at their lower bound.
11252  *         '''
11253  *         def __get__(self):             # <<<<<<<<<<<<<<
11254  *             status = self.status
11255  *             return (status & 7 == 3)
11256  */
11257 
11258 /* Python wrapper */
11259 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound_1__get__(PyObject *__pyx_v_self); /*proto*/
11260 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound_1__get__(PyObject *__pyx_v_self) {
11261   PyObject *__pyx_r = 0;
11262   __Pyx_RefNannyDeclarations
11263   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11264   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11265 
11266   /* function exit code */
11267   __Pyx_RefNannyFinishContext();
11268   return __pyx_r;
11269 }
11270 
11271 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11272   PyObject *__pyx_v_status = NULL;
11273   PyObject *__pyx_r = NULL;
11274   __Pyx_TraceDeclarations
11275   __Pyx_RefNannyDeclarations
11276   PyObject *__pyx_t_1 = NULL;
11277   PyObject *__pyx_t_2 = NULL;
11278   int __pyx_lineno = 0;
11279   const char *__pyx_filename = NULL;
11280   int __pyx_clineno = 0;
11281   __Pyx_RefNannySetupContext("__get__", 0);
11282   __Pyx_TraceCall("__get__", __pyx_f[0], 617, 0, __PYX_ERR(0, 617, __pyx_L1_error));
11283 
11284   /* "cylp/cy/CyClpSimplex.pyx":618
11285  *         '''
11286  *         def __get__(self):
11287  *             status = self.status             # <<<<<<<<<<<<<<
11288  *             return (status & 7 == 3)
11289  *
11290  */
11291   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 618, __pyx_L1_error)
11292   __Pyx_GOTREF(__pyx_t_1);
11293   __pyx_v_status = __pyx_t_1;
11294   __pyx_t_1 = 0;
11295 
11296   /* "cylp/cy/CyClpSimplex.pyx":619
11297  *         def __get__(self):
11298  *             status = self.status
11299  *             return (status & 7 == 3)             # <<<<<<<<<<<<<<
11300  *
11301  *     property varIsSuperBasic:
11302  */
11303   __Pyx_XDECREF(__pyx_r);
11304   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 619, __pyx_L1_error)
11305   __Pyx_GOTREF(__pyx_t_1);
11306   __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 619, __pyx_L1_error)
11307   __Pyx_GOTREF(__pyx_t_2);
11308   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11309   __pyx_r = __pyx_t_2;
11310   __pyx_t_2 = 0;
11311   goto __pyx_L0;
11312 
11313   /* "cylp/cy/CyClpSimplex.pyx":617
11314  *         The index set of variables that are at their lower bound.
11315  *         '''
11316  *         def __get__(self):             # <<<<<<<<<<<<<<
11317  *             status = self.status
11318  *             return (status & 7 == 3)
11319  */
11320 
11321   /* function exit code */
11322   __pyx_L1_error:;
11323   __Pyx_XDECREF(__pyx_t_1);
11324   __Pyx_XDECREF(__pyx_t_2);
11325   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsAtLowerBound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11326   __pyx_r = NULL;
11327   __pyx_L0:;
11328   __Pyx_XDECREF(__pyx_v_status);
11329   __Pyx_XGIVEREF(__pyx_r);
11330   __Pyx_TraceReturn(__pyx_r, 0);
11331   __Pyx_RefNannyFinishContext();
11332   return __pyx_r;
11333 }
11334 
11335 /* "cylp/cy/CyClpSimplex.pyx":625
11336  *         The index set of variables that are *superbasic*.
11337  *         '''
11338  *         def __get__(self):             # <<<<<<<<<<<<<<
11339  *             status = self.status
11340  *             return (status & 7 == 4)
11341  */
11342 
11343 /* Python wrapper */
11344 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic_1__get__(PyObject *__pyx_v_self); /*proto*/
11345 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic_1__get__(PyObject *__pyx_v_self) {
11346   PyObject *__pyx_r = 0;
11347   __Pyx_RefNannyDeclarations
11348   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11349   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11350 
11351   /* function exit code */
11352   __Pyx_RefNannyFinishContext();
11353   return __pyx_r;
11354 }
11355 
11356 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11357   PyObject *__pyx_v_status = NULL;
11358   PyObject *__pyx_r = NULL;
11359   __Pyx_TraceDeclarations
11360   __Pyx_RefNannyDeclarations
11361   PyObject *__pyx_t_1 = NULL;
11362   PyObject *__pyx_t_2 = NULL;
11363   int __pyx_lineno = 0;
11364   const char *__pyx_filename = NULL;
11365   int __pyx_clineno = 0;
11366   __Pyx_RefNannySetupContext("__get__", 0);
11367   __Pyx_TraceCall("__get__", __pyx_f[0], 625, 0, __PYX_ERR(0, 625, __pyx_L1_error));
11368 
11369   /* "cylp/cy/CyClpSimplex.pyx":626
11370  *         '''
11371  *         def __get__(self):
11372  *             status = self.status             # <<<<<<<<<<<<<<
11373  *             return (status & 7 == 4)
11374  *
11375  */
11376   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 626, __pyx_L1_error)
11377   __Pyx_GOTREF(__pyx_t_1);
11378   __pyx_v_status = __pyx_t_1;
11379   __pyx_t_1 = 0;
11380 
11381   /* "cylp/cy/CyClpSimplex.pyx":627
11382  *         def __get__(self):
11383  *             status = self.status
11384  *             return (status & 7 == 4)             # <<<<<<<<<<<<<<
11385  *
11386  *     property varIsFixed:
11387  */
11388   __Pyx_XDECREF(__pyx_r);
11389   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 627, __pyx_L1_error)
11390   __Pyx_GOTREF(__pyx_t_1);
11391   __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_4, 4, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 627, __pyx_L1_error)
11392   __Pyx_GOTREF(__pyx_t_2);
11393   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11394   __pyx_r = __pyx_t_2;
11395   __pyx_t_2 = 0;
11396   goto __pyx_L0;
11397 
11398   /* "cylp/cy/CyClpSimplex.pyx":625
11399  *         The index set of variables that are *superbasic*.
11400  *         '''
11401  *         def __get__(self):             # <<<<<<<<<<<<<<
11402  *             status = self.status
11403  *             return (status & 7 == 4)
11404  */
11405 
11406   /* function exit code */
11407   __pyx_L1_error:;
11408   __Pyx_XDECREF(__pyx_t_1);
11409   __Pyx_XDECREF(__pyx_t_2);
11410   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsSuperBasic.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11411   __pyx_r = NULL;
11412   __pyx_L0:;
11413   __Pyx_XDECREF(__pyx_v_status);
11414   __Pyx_XGIVEREF(__pyx_r);
11415   __Pyx_TraceReturn(__pyx_r, 0);
11416   __Pyx_RefNannyFinishContext();
11417   return __pyx_r;
11418 }
11419 
11420 /* "cylp/cy/CyClpSimplex.pyx":633
11421  *         The index set of variables that are *fixed*.
11422  *         '''
11423  *         def __get__(self):             # <<<<<<<<<<<<<<
11424  *             status = self.status
11425  *             return (status & 7 == 5)
11426  */
11427 
11428 /* Python wrapper */
11429 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed_1__get__(PyObject *__pyx_v_self); /*proto*/
11430 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed_1__get__(PyObject *__pyx_v_self) {
11431   PyObject *__pyx_r = 0;
11432   __Pyx_RefNannyDeclarations
11433   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11434   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11435 
11436   /* function exit code */
11437   __Pyx_RefNannyFinishContext();
11438   return __pyx_r;
11439 }
11440 
11441 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11442   PyObject *__pyx_v_status = NULL;
11443   PyObject *__pyx_r = NULL;
11444   __Pyx_TraceDeclarations
11445   __Pyx_RefNannyDeclarations
11446   PyObject *__pyx_t_1 = NULL;
11447   PyObject *__pyx_t_2 = NULL;
11448   int __pyx_lineno = 0;
11449   const char *__pyx_filename = NULL;
11450   int __pyx_clineno = 0;
11451   __Pyx_RefNannySetupContext("__get__", 0);
11452   __Pyx_TraceCall("__get__", __pyx_f[0], 633, 0, __PYX_ERR(0, 633, __pyx_L1_error));
11453 
11454   /* "cylp/cy/CyClpSimplex.pyx":634
11455  *         '''
11456  *         def __get__(self):
11457  *             status = self.status             # <<<<<<<<<<<<<<
11458  *             return (status & 7 == 5)
11459  *
11460  */
11461   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 634, __pyx_L1_error)
11462   __Pyx_GOTREF(__pyx_t_1);
11463   __pyx_v_status = __pyx_t_1;
11464   __pyx_t_1 = 0;
11465 
11466   /* "cylp/cy/CyClpSimplex.pyx":635
11467  *         def __get__(self):
11468  *             status = self.status
11469  *             return (status & 7 == 5)             # <<<<<<<<<<<<<<
11470  *
11471  *     property varIsFlagged:
11472  */
11473   __Pyx_XDECREF(__pyx_r);
11474   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 635, __pyx_L1_error)
11475   __Pyx_GOTREF(__pyx_t_1);
11476   __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_5, 5, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 635, __pyx_L1_error)
11477   __Pyx_GOTREF(__pyx_t_2);
11478   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11479   __pyx_r = __pyx_t_2;
11480   __pyx_t_2 = 0;
11481   goto __pyx_L0;
11482 
11483   /* "cylp/cy/CyClpSimplex.pyx":633
11484  *         The index set of variables that are *fixed*.
11485  *         '''
11486  *         def __get__(self):             # <<<<<<<<<<<<<<
11487  *             status = self.status
11488  *             return (status & 7 == 5)
11489  */
11490 
11491   /* function exit code */
11492   __pyx_L1_error:;
11493   __Pyx_XDECREF(__pyx_t_1);
11494   __Pyx_XDECREF(__pyx_t_2);
11495   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsFixed.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11496   __pyx_r = NULL;
11497   __pyx_L0:;
11498   __Pyx_XDECREF(__pyx_v_status);
11499   __Pyx_XGIVEREF(__pyx_r);
11500   __Pyx_TraceReturn(__pyx_r, 0);
11501   __Pyx_RefNannyFinishContext();
11502   return __pyx_r;
11503 }
11504 
11505 /* "cylp/cy/CyClpSimplex.pyx":641
11506  *         The index set of variables that are *flagged*.
11507  *         '''
11508  *         def __get__(self):             # <<<<<<<<<<<<<<
11509  *             status = self.status
11510  *             return (status & 64 != 0)
11511  */
11512 
11513 /* Python wrapper */
11514 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged_1__get__(PyObject *__pyx_v_self); /*proto*/
11515 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged_1__get__(PyObject *__pyx_v_self) {
11516   PyObject *__pyx_r = 0;
11517   __Pyx_RefNannyDeclarations
11518   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11519   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11520 
11521   /* function exit code */
11522   __Pyx_RefNannyFinishContext();
11523   return __pyx_r;
11524 }
11525 
11526 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11527   PyObject *__pyx_v_status = NULL;
11528   PyObject *__pyx_r = NULL;
11529   __Pyx_TraceDeclarations
11530   __Pyx_RefNannyDeclarations
11531   PyObject *__pyx_t_1 = NULL;
11532   PyObject *__pyx_t_2 = NULL;
11533   int __pyx_lineno = 0;
11534   const char *__pyx_filename = NULL;
11535   int __pyx_clineno = 0;
11536   __Pyx_RefNannySetupContext("__get__", 0);
11537   __Pyx_TraceCall("__get__", __pyx_f[0], 641, 0, __PYX_ERR(0, 641, __pyx_L1_error));
11538 
11539   /* "cylp/cy/CyClpSimplex.pyx":642
11540  *         '''
11541  *         def __get__(self):
11542  *             status = self.status             # <<<<<<<<<<<<<<
11543  *             return (status & 64 != 0)
11544  *
11545  */
11546   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L1_error)
11547   __Pyx_GOTREF(__pyx_t_1);
11548   __pyx_v_status = __pyx_t_1;
11549   __pyx_t_1 = 0;
11550 
11551   /* "cylp/cy/CyClpSimplex.pyx":643
11552  *         def __get__(self):
11553  *             status = self.status
11554  *             return (status & 64 != 0)             # <<<<<<<<<<<<<<
11555  *
11556  *     property varNotFree:
11557  */
11558   __Pyx_XDECREF(__pyx_r);
11559   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_64, 64, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error)
11560   __Pyx_GOTREF(__pyx_t_1);
11561   __pyx_t_2 = __Pyx_PyInt_NeObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 643, __pyx_L1_error)
11562   __Pyx_GOTREF(__pyx_t_2);
11563   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11564   __pyx_r = __pyx_t_2;
11565   __pyx_t_2 = 0;
11566   goto __pyx_L0;
11567 
11568   /* "cylp/cy/CyClpSimplex.pyx":641
11569  *         The index set of variables that are *flagged*.
11570  *         '''
11571  *         def __get__(self):             # <<<<<<<<<<<<<<
11572  *             status = self.status
11573  *             return (status & 64 != 0)
11574  */
11575 
11576   /* function exit code */
11577   __pyx_L1_error:;
11578   __Pyx_XDECREF(__pyx_t_1);
11579   __Pyx_XDECREF(__pyx_t_2);
11580   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsFlagged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11581   __pyx_r = NULL;
11582   __pyx_L0:;
11583   __Pyx_XDECREF(__pyx_v_status);
11584   __Pyx_XGIVEREF(__pyx_r);
11585   __Pyx_TraceReturn(__pyx_r, 0);
11586   __Pyx_RefNannyFinishContext();
11587   return __pyx_r;
11588 }
11589 
11590 /* "cylp/cy/CyClpSimplex.pyx":649
11591  *         The index set of variables that are NOT *free*.
11592  *         '''
11593  *         def __get__(self):             # <<<<<<<<<<<<<<
11594  *             status = self.status
11595  *             return (status & 7 != 0)
11596  */
11597 
11598 /* Python wrapper */
11599 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree_1__get__(PyObject *__pyx_v_self); /*proto*/
11600 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree_1__get__(PyObject *__pyx_v_self) {
11601   PyObject *__pyx_r = 0;
11602   __Pyx_RefNannyDeclarations
11603   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11604   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11605 
11606   /* function exit code */
11607   __Pyx_RefNannyFinishContext();
11608   return __pyx_r;
11609 }
11610 
11611 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11612   PyObject *__pyx_v_status = NULL;
11613   PyObject *__pyx_r = NULL;
11614   __Pyx_TraceDeclarations
11615   __Pyx_RefNannyDeclarations
11616   PyObject *__pyx_t_1 = NULL;
11617   PyObject *__pyx_t_2 = NULL;
11618   int __pyx_lineno = 0;
11619   const char *__pyx_filename = NULL;
11620   int __pyx_clineno = 0;
11621   __Pyx_RefNannySetupContext("__get__", 0);
11622   __Pyx_TraceCall("__get__", __pyx_f[0], 649, 0, __PYX_ERR(0, 649, __pyx_L1_error));
11623 
11624   /* "cylp/cy/CyClpSimplex.pyx":650
11625  *         '''
11626  *         def __get__(self):
11627  *             status = self.status             # <<<<<<<<<<<<<<
11628  *             return (status & 7 != 0)
11629  *
11630  */
11631   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 650, __pyx_L1_error)
11632   __Pyx_GOTREF(__pyx_t_1);
11633   __pyx_v_status = __pyx_t_1;
11634   __pyx_t_1 = 0;
11635 
11636   /* "cylp/cy/CyClpSimplex.pyx":651
11637  *         def __get__(self):
11638  *             status = self.status
11639  *             return (status & 7 != 0)             # <<<<<<<<<<<<<<
11640  *
11641  *     property varNotBasic:
11642  */
11643   __Pyx_XDECREF(__pyx_r);
11644   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 651, __pyx_L1_error)
11645   __Pyx_GOTREF(__pyx_t_1);
11646   __pyx_t_2 = __Pyx_PyInt_NeObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 651, __pyx_L1_error)
11647   __Pyx_GOTREF(__pyx_t_2);
11648   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11649   __pyx_r = __pyx_t_2;
11650   __pyx_t_2 = 0;
11651   goto __pyx_L0;
11652 
11653   /* "cylp/cy/CyClpSimplex.pyx":649
11654  *         The index set of variables that are NOT *free*.
11655  *         '''
11656  *         def __get__(self):             # <<<<<<<<<<<<<<
11657  *             status = self.status
11658  *             return (status & 7 != 0)
11659  */
11660 
11661   /* function exit code */
11662   __pyx_L1_error:;
11663   __Pyx_XDECREF(__pyx_t_1);
11664   __Pyx_XDECREF(__pyx_t_2);
11665   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotFree.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11666   __pyx_r = NULL;
11667   __pyx_L0:;
11668   __Pyx_XDECREF(__pyx_v_status);
11669   __Pyx_XGIVEREF(__pyx_r);
11670   __Pyx_TraceReturn(__pyx_r, 0);
11671   __Pyx_RefNannyFinishContext();
11672   return __pyx_r;
11673 }
11674 
11675 /* "cylp/cy/CyClpSimplex.pyx":657
11676  *         The index set of variables that are NOT *basic*.
11677  *         '''
11678  *         def __get__(self):             # <<<<<<<<<<<<<<
11679  *             status = self.status
11680  *             return (status & 7 != 1)
11681  */
11682 
11683 /* Python wrapper */
11684 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic_1__get__(PyObject *__pyx_v_self); /*proto*/
11685 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic_1__get__(PyObject *__pyx_v_self) {
11686   PyObject *__pyx_r = 0;
11687   __Pyx_RefNannyDeclarations
11688   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11689   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11690 
11691   /* function exit code */
11692   __Pyx_RefNannyFinishContext();
11693   return __pyx_r;
11694 }
11695 
11696 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11697   PyObject *__pyx_v_status = NULL;
11698   PyObject *__pyx_r = NULL;
11699   __Pyx_TraceDeclarations
11700   __Pyx_RefNannyDeclarations
11701   PyObject *__pyx_t_1 = NULL;
11702   PyObject *__pyx_t_2 = NULL;
11703   int __pyx_lineno = 0;
11704   const char *__pyx_filename = NULL;
11705   int __pyx_clineno = 0;
11706   __Pyx_RefNannySetupContext("__get__", 0);
11707   __Pyx_TraceCall("__get__", __pyx_f[0], 657, 0, __PYX_ERR(0, 657, __pyx_L1_error));
11708 
11709   /* "cylp/cy/CyClpSimplex.pyx":658
11710  *         '''
11711  *         def __get__(self):
11712  *             status = self.status             # <<<<<<<<<<<<<<
11713  *             return (status & 7 != 1)
11714  *
11715  */
11716   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 658, __pyx_L1_error)
11717   __Pyx_GOTREF(__pyx_t_1);
11718   __pyx_v_status = __pyx_t_1;
11719   __pyx_t_1 = 0;
11720 
11721   /* "cylp/cy/CyClpSimplex.pyx":659
11722  *         def __get__(self):
11723  *             status = self.status
11724  *             return (status & 7 != 1)             # <<<<<<<<<<<<<<
11725  *
11726  *     property varNotAtUpperBound:
11727  */
11728   __Pyx_XDECREF(__pyx_r);
11729   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 659, __pyx_L1_error)
11730   __Pyx_GOTREF(__pyx_t_1);
11731   __pyx_t_2 = __Pyx_PyInt_NeObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 659, __pyx_L1_error)
11732   __Pyx_GOTREF(__pyx_t_2);
11733   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11734   __pyx_r = __pyx_t_2;
11735   __pyx_t_2 = 0;
11736   goto __pyx_L0;
11737 
11738   /* "cylp/cy/CyClpSimplex.pyx":657
11739  *         The index set of variables that are NOT *basic*.
11740  *         '''
11741  *         def __get__(self):             # <<<<<<<<<<<<<<
11742  *             status = self.status
11743  *             return (status & 7 != 1)
11744  */
11745 
11746   /* function exit code */
11747   __pyx_L1_error:;
11748   __Pyx_XDECREF(__pyx_t_1);
11749   __Pyx_XDECREF(__pyx_t_2);
11750   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotBasic.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11751   __pyx_r = NULL;
11752   __pyx_L0:;
11753   __Pyx_XDECREF(__pyx_v_status);
11754   __Pyx_XGIVEREF(__pyx_r);
11755   __Pyx_TraceReturn(__pyx_r, 0);
11756   __Pyx_RefNannyFinishContext();
11757   return __pyx_r;
11758 }
11759 
11760 /* "cylp/cy/CyClpSimplex.pyx":665
11761  *         The index set of variables that are NOT at their upper bound.
11762  *         '''
11763  *         def __get__(self):             # <<<<<<<<<<<<<<
11764  *             status = self.status
11765  *             return (status & 7 != 2)
11766  */
11767 
11768 /* Python wrapper */
11769 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound_1__get__(PyObject *__pyx_v_self); /*proto*/
11770 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound_1__get__(PyObject *__pyx_v_self) {
11771   PyObject *__pyx_r = 0;
11772   __Pyx_RefNannyDeclarations
11773   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11774   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11775 
11776   /* function exit code */
11777   __Pyx_RefNannyFinishContext();
11778   return __pyx_r;
11779 }
11780 
11781 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11782   PyObject *__pyx_v_status = NULL;
11783   PyObject *__pyx_r = NULL;
11784   __Pyx_TraceDeclarations
11785   __Pyx_RefNannyDeclarations
11786   PyObject *__pyx_t_1 = NULL;
11787   PyObject *__pyx_t_2 = NULL;
11788   int __pyx_lineno = 0;
11789   const char *__pyx_filename = NULL;
11790   int __pyx_clineno = 0;
11791   __Pyx_RefNannySetupContext("__get__", 0);
11792   __Pyx_TraceCall("__get__", __pyx_f[0], 665, 0, __PYX_ERR(0, 665, __pyx_L1_error));
11793 
11794   /* "cylp/cy/CyClpSimplex.pyx":666
11795  *         '''
11796  *         def __get__(self):
11797  *             status = self.status             # <<<<<<<<<<<<<<
11798  *             return (status & 7 != 2)
11799  *
11800  */
11801   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 666, __pyx_L1_error)
11802   __Pyx_GOTREF(__pyx_t_1);
11803   __pyx_v_status = __pyx_t_1;
11804   __pyx_t_1 = 0;
11805 
11806   /* "cylp/cy/CyClpSimplex.pyx":667
11807  *         def __get__(self):
11808  *             status = self.status
11809  *             return (status & 7 != 2)             # <<<<<<<<<<<<<<
11810  *
11811  *     property varNotAtLowerBound:
11812  */
11813   __Pyx_XDECREF(__pyx_r);
11814   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 667, __pyx_L1_error)
11815   __Pyx_GOTREF(__pyx_t_1);
11816   __pyx_t_2 = __Pyx_PyInt_NeObjC(__pyx_t_1, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 667, __pyx_L1_error)
11817   __Pyx_GOTREF(__pyx_t_2);
11818   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11819   __pyx_r = __pyx_t_2;
11820   __pyx_t_2 = 0;
11821   goto __pyx_L0;
11822 
11823   /* "cylp/cy/CyClpSimplex.pyx":665
11824  *         The index set of variables that are NOT at their upper bound.
11825  *         '''
11826  *         def __get__(self):             # <<<<<<<<<<<<<<
11827  *             status = self.status
11828  *             return (status & 7 != 2)
11829  */
11830 
11831   /* function exit code */
11832   __pyx_L1_error:;
11833   __Pyx_XDECREF(__pyx_t_1);
11834   __Pyx_XDECREF(__pyx_t_2);
11835   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotAtUpperBound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11836   __pyx_r = NULL;
11837   __pyx_L0:;
11838   __Pyx_XDECREF(__pyx_v_status);
11839   __Pyx_XGIVEREF(__pyx_r);
11840   __Pyx_TraceReturn(__pyx_r, 0);
11841   __Pyx_RefNannyFinishContext();
11842   return __pyx_r;
11843 }
11844 
11845 /* "cylp/cy/CyClpSimplex.pyx":673
11846  *         The index set of variables that are NOT at their lower bound.
11847  *         '''
11848  *         def __get__(self):             # <<<<<<<<<<<<<<
11849  *             status = self.status
11850  *             return (status & 7 != 3)
11851  */
11852 
11853 /* Python wrapper */
11854 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound_1__get__(PyObject *__pyx_v_self); /*proto*/
11855 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound_1__get__(PyObject *__pyx_v_self) {
11856   PyObject *__pyx_r = 0;
11857   __Pyx_RefNannyDeclarations
11858   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11859   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11860 
11861   /* function exit code */
11862   __Pyx_RefNannyFinishContext();
11863   return __pyx_r;
11864 }
11865 
11866 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11867   PyObject *__pyx_v_status = NULL;
11868   PyObject *__pyx_r = NULL;
11869   __Pyx_TraceDeclarations
11870   __Pyx_RefNannyDeclarations
11871   PyObject *__pyx_t_1 = NULL;
11872   PyObject *__pyx_t_2 = NULL;
11873   int __pyx_lineno = 0;
11874   const char *__pyx_filename = NULL;
11875   int __pyx_clineno = 0;
11876   __Pyx_RefNannySetupContext("__get__", 0);
11877   __Pyx_TraceCall("__get__", __pyx_f[0], 673, 0, __PYX_ERR(0, 673, __pyx_L1_error));
11878 
11879   /* "cylp/cy/CyClpSimplex.pyx":674
11880  *         '''
11881  *         def __get__(self):
11882  *             status = self.status             # <<<<<<<<<<<<<<
11883  *             return (status & 7 != 3)
11884  *
11885  */
11886   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 674, __pyx_L1_error)
11887   __Pyx_GOTREF(__pyx_t_1);
11888   __pyx_v_status = __pyx_t_1;
11889   __pyx_t_1 = 0;
11890 
11891   /* "cylp/cy/CyClpSimplex.pyx":675
11892  *         def __get__(self):
11893  *             status = self.status
11894  *             return (status & 7 != 3)             # <<<<<<<<<<<<<<
11895  *
11896  *     property varNotSuperBasic:
11897  */
11898   __Pyx_XDECREF(__pyx_r);
11899   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 675, __pyx_L1_error)
11900   __Pyx_GOTREF(__pyx_t_1);
11901   __pyx_t_2 = __Pyx_PyInt_NeObjC(__pyx_t_1, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 675, __pyx_L1_error)
11902   __Pyx_GOTREF(__pyx_t_2);
11903   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11904   __pyx_r = __pyx_t_2;
11905   __pyx_t_2 = 0;
11906   goto __pyx_L0;
11907 
11908   /* "cylp/cy/CyClpSimplex.pyx":673
11909  *         The index set of variables that are NOT at their lower bound.
11910  *         '''
11911  *         def __get__(self):             # <<<<<<<<<<<<<<
11912  *             status = self.status
11913  *             return (status & 7 != 3)
11914  */
11915 
11916   /* function exit code */
11917   __pyx_L1_error:;
11918   __Pyx_XDECREF(__pyx_t_1);
11919   __Pyx_XDECREF(__pyx_t_2);
11920   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotAtLowerBound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11921   __pyx_r = NULL;
11922   __pyx_L0:;
11923   __Pyx_XDECREF(__pyx_v_status);
11924   __Pyx_XGIVEREF(__pyx_r);
11925   __Pyx_TraceReturn(__pyx_r, 0);
11926   __Pyx_RefNannyFinishContext();
11927   return __pyx_r;
11928 }
11929 
11930 /* "cylp/cy/CyClpSimplex.pyx":681
11931  *         The index set of variables that are NOT *superbasic*.
11932  *         '''
11933  *         def __get__(self):             # <<<<<<<<<<<<<<
11934  *             status = self.status
11935  *             return (status & 7 != 4)
11936  */
11937 
11938 /* Python wrapper */
11939 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic_1__get__(PyObject *__pyx_v_self); /*proto*/
11940 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic_1__get__(PyObject *__pyx_v_self) {
11941   PyObject *__pyx_r = 0;
11942   __Pyx_RefNannyDeclarations
11943   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
11944   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
11945 
11946   /* function exit code */
11947   __Pyx_RefNannyFinishContext();
11948   return __pyx_r;
11949 }
11950 
11951 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
11952   PyObject *__pyx_v_status = NULL;
11953   PyObject *__pyx_r = NULL;
11954   __Pyx_TraceDeclarations
11955   __Pyx_RefNannyDeclarations
11956   PyObject *__pyx_t_1 = NULL;
11957   PyObject *__pyx_t_2 = NULL;
11958   int __pyx_lineno = 0;
11959   const char *__pyx_filename = NULL;
11960   int __pyx_clineno = 0;
11961   __Pyx_RefNannySetupContext("__get__", 0);
11962   __Pyx_TraceCall("__get__", __pyx_f[0], 681, 0, __PYX_ERR(0, 681, __pyx_L1_error));
11963 
11964   /* "cylp/cy/CyClpSimplex.pyx":682
11965  *         '''
11966  *         def __get__(self):
11967  *             status = self.status             # <<<<<<<<<<<<<<
11968  *             return (status & 7 != 4)
11969  *
11970  */
11971   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 682, __pyx_L1_error)
11972   __Pyx_GOTREF(__pyx_t_1);
11973   __pyx_v_status = __pyx_t_1;
11974   __pyx_t_1 = 0;
11975 
11976   /* "cylp/cy/CyClpSimplex.pyx":683
11977  *         def __get__(self):
11978  *             status = self.status
11979  *             return (status & 7 != 4)             # <<<<<<<<<<<<<<
11980  *
11981  *     property varNotFixed:
11982  */
11983   __Pyx_XDECREF(__pyx_r);
11984   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error)
11985   __Pyx_GOTREF(__pyx_t_1);
11986   __pyx_t_2 = __Pyx_PyInt_NeObjC(__pyx_t_1, __pyx_int_4, 4, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 683, __pyx_L1_error)
11987   __Pyx_GOTREF(__pyx_t_2);
11988   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11989   __pyx_r = __pyx_t_2;
11990   __pyx_t_2 = 0;
11991   goto __pyx_L0;
11992 
11993   /* "cylp/cy/CyClpSimplex.pyx":681
11994  *         The index set of variables that are NOT *superbasic*.
11995  *         '''
11996  *         def __get__(self):             # <<<<<<<<<<<<<<
11997  *             status = self.status
11998  *             return (status & 7 != 4)
11999  */
12000 
12001   /* function exit code */
12002   __pyx_L1_error:;
12003   __Pyx_XDECREF(__pyx_t_1);
12004   __Pyx_XDECREF(__pyx_t_2);
12005   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotSuperBasic.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12006   __pyx_r = NULL;
12007   __pyx_L0:;
12008   __Pyx_XDECREF(__pyx_v_status);
12009   __Pyx_XGIVEREF(__pyx_r);
12010   __Pyx_TraceReturn(__pyx_r, 0);
12011   __Pyx_RefNannyFinishContext();
12012   return __pyx_r;
12013 }
12014 
12015 /* "cylp/cy/CyClpSimplex.pyx":689
12016  *         The index set of variables that are NOT *fixed*.
12017  *         '''
12018  *         def __get__(self):             # <<<<<<<<<<<<<<
12019  *             status = self.status
12020  *             return (status & 7 != 5)
12021  */
12022 
12023 /* Python wrapper */
12024 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed_1__get__(PyObject *__pyx_v_self); /*proto*/
12025 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed_1__get__(PyObject *__pyx_v_self) {
12026   PyObject *__pyx_r = 0;
12027   __Pyx_RefNannyDeclarations
12028   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
12029   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
12030 
12031   /* function exit code */
12032   __Pyx_RefNannyFinishContext();
12033   return __pyx_r;
12034 }
12035 
12036 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
12037   PyObject *__pyx_v_status = NULL;
12038   PyObject *__pyx_r = NULL;
12039   __Pyx_TraceDeclarations
12040   __Pyx_RefNannyDeclarations
12041   PyObject *__pyx_t_1 = NULL;
12042   PyObject *__pyx_t_2 = NULL;
12043   int __pyx_lineno = 0;
12044   const char *__pyx_filename = NULL;
12045   int __pyx_clineno = 0;
12046   __Pyx_RefNannySetupContext("__get__", 0);
12047   __Pyx_TraceCall("__get__", __pyx_f[0], 689, 0, __PYX_ERR(0, 689, __pyx_L1_error));
12048 
12049   /* "cylp/cy/CyClpSimplex.pyx":690
12050  *         '''
12051  *         def __get__(self):
12052  *             status = self.status             # <<<<<<<<<<<<<<
12053  *             return (status & 7 != 5)
12054  *
12055  */
12056   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L1_error)
12057   __Pyx_GOTREF(__pyx_t_1);
12058   __pyx_v_status = __pyx_t_1;
12059   __pyx_t_1 = 0;
12060 
12061   /* "cylp/cy/CyClpSimplex.pyx":691
12062  *         def __get__(self):
12063  *             status = self.status
12064  *             return (status & 7 != 5)             # <<<<<<<<<<<<<<
12065  *
12066  *     property varNotFlagged:
12067  */
12068   __Pyx_XDECREF(__pyx_r);
12069   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_7, 7, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 691, __pyx_L1_error)
12070   __Pyx_GOTREF(__pyx_t_1);
12071   __pyx_t_2 = __Pyx_PyInt_NeObjC(__pyx_t_1, __pyx_int_5, 5, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 691, __pyx_L1_error)
12072   __Pyx_GOTREF(__pyx_t_2);
12073   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12074   __pyx_r = __pyx_t_2;
12075   __pyx_t_2 = 0;
12076   goto __pyx_L0;
12077 
12078   /* "cylp/cy/CyClpSimplex.pyx":689
12079  *         The index set of variables that are NOT *fixed*.
12080  *         '''
12081  *         def __get__(self):             # <<<<<<<<<<<<<<
12082  *             status = self.status
12083  *             return (status & 7 != 5)
12084  */
12085 
12086   /* function exit code */
12087   __pyx_L1_error:;
12088   __Pyx_XDECREF(__pyx_t_1);
12089   __Pyx_XDECREF(__pyx_t_2);
12090   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotFixed.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12091   __pyx_r = NULL;
12092   __pyx_L0:;
12093   __Pyx_XDECREF(__pyx_v_status);
12094   __Pyx_XGIVEREF(__pyx_r);
12095   __Pyx_TraceReturn(__pyx_r, 0);
12096   __Pyx_RefNannyFinishContext();
12097   return __pyx_r;
12098 }
12099 
12100 /* "cylp/cy/CyClpSimplex.pyx":697
12101  *         The index set of variables that are NOT flagged.
12102  *         '''
12103  *         def __get__(self):             # <<<<<<<<<<<<<<
12104  *             status = self.status
12105  *             return (status & 64 == 0)
12106  */
12107 
12108 /* Python wrapper */
12109 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged_1__get__(PyObject *__pyx_v_self); /*proto*/
12110 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged_1__get__(PyObject *__pyx_v_self) {
12111   PyObject *__pyx_r = 0;
12112   __Pyx_RefNannyDeclarations
12113   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
12114   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
12115 
12116   /* function exit code */
12117   __Pyx_RefNannyFinishContext();
12118   return __pyx_r;
12119 }
12120 
12121 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
12122   PyObject *__pyx_v_status = NULL;
12123   PyObject *__pyx_r = NULL;
12124   __Pyx_TraceDeclarations
12125   __Pyx_RefNannyDeclarations
12126   PyObject *__pyx_t_1 = NULL;
12127   PyObject *__pyx_t_2 = NULL;
12128   int __pyx_lineno = 0;
12129   const char *__pyx_filename = NULL;
12130   int __pyx_clineno = 0;
12131   __Pyx_RefNannySetupContext("__get__", 0);
12132   __Pyx_TraceCall("__get__", __pyx_f[0], 697, 0, __PYX_ERR(0, 697, __pyx_L1_error));
12133 
12134   /* "cylp/cy/CyClpSimplex.pyx":698
12135  *         '''
12136  *         def __get__(self):
12137  *             status = self.status             # <<<<<<<<<<<<<<
12138  *             return (status & 64 == 0)
12139  *
12140  */
12141   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error)
12142   __Pyx_GOTREF(__pyx_t_1);
12143   __pyx_v_status = __pyx_t_1;
12144   __pyx_t_1 = 0;
12145 
12146   /* "cylp/cy/CyClpSimplex.pyx":699
12147  *         def __get__(self):
12148  *             status = self.status
12149  *             return (status & 64 == 0)             # <<<<<<<<<<<<<<
12150  *
12151  *     property Hessian:
12152  */
12153   __Pyx_XDECREF(__pyx_r);
12154   __pyx_t_1 = __Pyx_PyInt_AndObjC(__pyx_v_status, __pyx_int_64, 64, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L1_error)
12155   __Pyx_GOTREF(__pyx_t_1);
12156   __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error)
12157   __Pyx_GOTREF(__pyx_t_2);
12158   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12159   __pyx_r = __pyx_t_2;
12160   __pyx_t_2 = 0;
12161   goto __pyx_L0;
12162 
12163   /* "cylp/cy/CyClpSimplex.pyx":697
12164  *         The index set of variables that are NOT flagged.
12165  *         '''
12166  *         def __get__(self):             # <<<<<<<<<<<<<<
12167  *             status = self.status
12168  *             return (status & 64 == 0)
12169  */
12170 
12171   /* function exit code */
12172   __pyx_L1_error:;
12173   __Pyx_XDECREF(__pyx_t_1);
12174   __Pyx_XDECREF(__pyx_t_2);
12175   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotFlagged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12176   __pyx_r = NULL;
12177   __pyx_L0:;
12178   __Pyx_XDECREF(__pyx_v_status);
12179   __Pyx_XGIVEREF(__pyx_r);
12180   __Pyx_TraceReturn(__pyx_r, 0);
12181   __Pyx_RefNannyFinishContext();
12182   return __pyx_r;
12183 }
12184 
12185 /* "cylp/cy/CyClpSimplex.pyx":702
12186  *
12187  *     property Hessian:
12188  *         def __get__(self):             # <<<<<<<<<<<<<<
12189  *             return self._Hessian
12190  *
12191  */
12192 
12193 /* Python wrapper */
12194 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_1__get__(PyObject *__pyx_v_self); /*proto*/
12195 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_1__get__(PyObject *__pyx_v_self) {
12196   PyObject *__pyx_r = 0;
12197   __Pyx_RefNannyDeclarations
12198   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
12199   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
12200 
12201   /* function exit code */
12202   __Pyx_RefNannyFinishContext();
12203   return __pyx_r;
12204 }
12205 
12206 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
12207   PyObject *__pyx_r = NULL;
12208   __Pyx_TraceDeclarations
12209   __Pyx_RefNannyDeclarations
12210   int __pyx_lineno = 0;
12211   const char *__pyx_filename = NULL;
12212   int __pyx_clineno = 0;
12213   __Pyx_RefNannySetupContext("__get__", 0);
12214   __Pyx_TraceCall("__get__", __pyx_f[0], 702, 0, __PYX_ERR(0, 702, __pyx_L1_error));
12215 
12216   /* "cylp/cy/CyClpSimplex.pyx":703
12217  *     property Hessian:
12218  *         def __get__(self):
12219  *             return self._Hessian             # <<<<<<<<<<<<<<
12220  *
12221  *         def __set__(self, mat):
12222  */
12223   __Pyx_XDECREF(__pyx_r);
12224   __Pyx_INCREF(__pyx_v_self->_Hessian);
12225   __pyx_r = __pyx_v_self->_Hessian;
12226   goto __pyx_L0;
12227 
12228   /* "cylp/cy/CyClpSimplex.pyx":702
12229  *
12230  *     property Hessian:
12231  *         def __get__(self):             # <<<<<<<<<<<<<<
12232  *             return self._Hessian
12233  *
12234  */
12235 
12236   /* function exit code */
12237   __pyx_L1_error:;
12238   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.Hessian.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12239   __pyx_r = NULL;
12240   __pyx_L0:;
12241   __Pyx_XGIVEREF(__pyx_r);
12242   __Pyx_TraceReturn(__pyx_r, 0);
12243   __Pyx_RefNannyFinishContext();
12244   return __pyx_r;
12245 }
12246 
12247 /* "cylp/cy/CyClpSimplex.pyx":705
12248  *             return self._Hessian
12249  *
12250  *         def __set__(self, mat):             # <<<<<<<<<<<<<<
12251  *             m = None
12252  *             try:
12253  */
12254 
12255 /* Python wrapper */
12256 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/
12257 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mat) {
12258   int __pyx_r;
12259   __Pyx_RefNannyDeclarations
12260   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
12261   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_mat));
12262 
12263   /* function exit code */
12264   __Pyx_RefNannyFinishContext();
12265   return __pyx_r;
12266 }
12267 
12268 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_mat) {
12269   PyObject *__pyx_v_m = NULL;
12270   struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_coinMat = NULL;
12271   PyObject *__pyx_v_n = NULL;
12272   CYTHON_UNUSED PyObject *__pyx_v_i = NULL;
12273   int __pyx_r;
12274   __Pyx_TraceDeclarations
12275   __Pyx_RefNannyDeclarations
12276   PyObject *__pyx_t_1 = NULL;
12277   PyObject *__pyx_t_2 = NULL;
12278   PyObject *__pyx_t_3 = NULL;
12279   PyObject *__pyx_t_4 = NULL;
12280   PyObject *__pyx_t_5 = NULL;
12281   PyObject *__pyx_t_6 = NULL;
12282   PyObject *__pyx_t_7 = NULL;
12283   int __pyx_t_8;
12284   Py_ssize_t __pyx_t_9;
12285   PyObject *(*__pyx_t_10)(PyObject *);
12286   int __pyx_lineno = 0;
12287   const char *__pyx_filename = NULL;
12288   int __pyx_clineno = 0;
12289   __Pyx_RefNannySetupContext("__set__", 0);
12290   __Pyx_TraceCall("__set__", __pyx_f[0], 705, 0, __PYX_ERR(0, 705, __pyx_L1_error));
12291 
12292   /* "cylp/cy/CyClpSimplex.pyx":706
12293  *
12294  *         def __set__(self, mat):
12295  *             m = None             # <<<<<<<<<<<<<<
12296  *             try:
12297  *                 m = mat.tocoo()
12298  */
12299   __Pyx_INCREF(Py_None);
12300   __pyx_v_m = Py_None;
12301 
12302   /* "cylp/cy/CyClpSimplex.pyx":707
12303  *         def __set__(self, mat):
12304  *             m = None
12305  *             try:             # <<<<<<<<<<<<<<
12306  *                 m = mat.tocoo()
12307  *             except:
12308  */
12309   {
12310     __Pyx_PyThreadState_declare
12311     __Pyx_PyThreadState_assign
12312     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
12313     __Pyx_XGOTREF(__pyx_t_1);
12314     __Pyx_XGOTREF(__pyx_t_2);
12315     __Pyx_XGOTREF(__pyx_t_3);
12316     /*try:*/ {
12317 
12318       /* "cylp/cy/CyClpSimplex.pyx":708
12319  *             m = None
12320  *             try:
12321  *                 m = mat.tocoo()             # <<<<<<<<<<<<<<
12322  *             except:
12323  *                 raise Exception('Hessian can be set to a matrix that ' \
12324  */
12325       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_tocoo); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L3_error)
12326       __Pyx_GOTREF(__pyx_t_5);
12327       __pyx_t_6 = NULL;
12328       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
12329         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
12330         if (likely(__pyx_t_6)) {
12331           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
12332           __Pyx_INCREF(__pyx_t_6);
12333           __Pyx_INCREF(function);
12334           __Pyx_DECREF_SET(__pyx_t_5, function);
12335         }
12336       }
12337       __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
12338       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
12339       if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 708, __pyx_L3_error)
12340       __Pyx_GOTREF(__pyx_t_4);
12341       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12342       __Pyx_DECREF_SET(__pyx_v_m, __pyx_t_4);
12343       __pyx_t_4 = 0;
12344 
12345       /* "cylp/cy/CyClpSimplex.pyx":707
12346  *         def __set__(self, mat):
12347  *             m = None
12348  *             try:             # <<<<<<<<<<<<<<
12349  *                 m = mat.tocoo()
12350  *             except:
12351  */
12352     }
12353     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
12354     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
12355     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12356     goto __pyx_L8_try_end;
12357     __pyx_L3_error:;
12358     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
12359     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
12360     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
12361 
12362     /* "cylp/cy/CyClpSimplex.pyx":709
12363  *             try:
12364  *                 m = mat.tocoo()
12365  *             except:             # <<<<<<<<<<<<<<
12366  *                 raise Exception('Hessian can be set to a matrix that ' \
12367  *                                             'implements *tocoo* method')
12368  */
12369     /*except:*/ {
12370       __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.Hessian.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12371       if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(0, 709, __pyx_L5_except_error)
12372       __Pyx_GOTREF(__pyx_t_4);
12373       __Pyx_GOTREF(__pyx_t_5);
12374       __Pyx_GOTREF(__pyx_t_6);
12375 
12376       /* "cylp/cy/CyClpSimplex.pyx":710
12377  *                 m = mat.tocoo()
12378  *             except:
12379  *                 raise Exception('Hessian can be set to a matrix that ' \             # <<<<<<<<<<<<<<
12380  *                                             'implements *tocoo* method')
12381  *             if m:
12382  */
12383       __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 710, __pyx_L5_except_error)
12384       __Pyx_GOTREF(__pyx_t_7);
12385       __Pyx_Raise(__pyx_t_7, 0, 0, 0);
12386       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12387       __PYX_ERR(0, 710, __pyx_L5_except_error)
12388     }
12389     __pyx_L5_except_error:;
12390 
12391     /* "cylp/cy/CyClpSimplex.pyx":707
12392  *         def __set__(self, mat):
12393  *             m = None
12394  *             try:             # <<<<<<<<<<<<<<
12395  *                 m = mat.tocoo()
12396  *             except:
12397  */
12398     __Pyx_XGIVEREF(__pyx_t_1);
12399     __Pyx_XGIVEREF(__pyx_t_2);
12400     __Pyx_XGIVEREF(__pyx_t_3);
12401     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
12402     goto __pyx_L1_error;
12403     __pyx_L8_try_end:;
12404   }
12405 
12406   /* "cylp/cy/CyClpSimplex.pyx":712
12407  *                 raise Exception('Hessian can be set to a matrix that ' \
12408  *                                             'implements *tocoo* method')
12409  *             if m:             # <<<<<<<<<<<<<<
12410  *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
12411  *                 n = self.nVariables
12412  */
12413   __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_m); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 712, __pyx_L1_error)
12414   if (__pyx_t_8) {
12415 
12416     /* "cylp/cy/CyClpSimplex.pyx":713
12417  *                                             'implements *tocoo* method')
12418  *             if m:
12419  *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)             # <<<<<<<<<<<<<<
12420  *                 n = self.nVariables
12421  *                 if coinMat.majorDim < n:
12422  */
12423     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_row); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 713, __pyx_L1_error)
12424     __Pyx_GOTREF(__pyx_t_6);
12425     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_col); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 713, __pyx_L1_error)
12426     __Pyx_GOTREF(__pyx_t_5);
12427     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_data); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 713, __pyx_L1_error)
12428     __Pyx_GOTREF(__pyx_t_4);
12429     __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 713, __pyx_L1_error)
12430     __Pyx_GOTREF(__pyx_t_7);
12431     __Pyx_INCREF(Py_True);
12432     __Pyx_GIVEREF(Py_True);
12433     PyTuple_SET_ITEM(__pyx_t_7, 0, Py_True);
12434     __Pyx_GIVEREF(__pyx_t_6);
12435     PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
12436     __Pyx_GIVEREF(__pyx_t_5);
12437     PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5);
12438     __Pyx_GIVEREF(__pyx_t_4);
12439     PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4);
12440     __pyx_t_6 = 0;
12441     __pyx_t_5 = 0;
12442     __pyx_t_4 = 0;
12443     __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix), __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 713, __pyx_L1_error)
12444     __Pyx_GOTREF(__pyx_t_4);
12445     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12446     __pyx_v_coinMat = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)__pyx_t_4);
12447     __pyx_t_4 = 0;
12448 
12449     /* "cylp/cy/CyClpSimplex.pyx":714
12450  *             if m:
12451  *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
12452  *                 n = self.nVariables             # <<<<<<<<<<<<<<
12453  *                 if coinMat.majorDim < n:
12454  *                     for i in xrange(n - coinMat.majorDim):
12455  */
12456     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 714, __pyx_L1_error)
12457     __Pyx_GOTREF(__pyx_t_4);
12458     __pyx_v_n = __pyx_t_4;
12459     __pyx_t_4 = 0;
12460 
12461     /* "cylp/cy/CyClpSimplex.pyx":715
12462  *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
12463  *                 n = self.nVariables
12464  *                 if coinMat.majorDim < n:             # <<<<<<<<<<<<<<
12465  *                     for i in xrange(n - coinMat.majorDim):
12466  *                         coinMat.appendCol()
12467  */
12468     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coinMat), __pyx_n_s_majorDim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 715, __pyx_L1_error)
12469     __Pyx_GOTREF(__pyx_t_4);
12470     __pyx_t_7 = PyObject_RichCompare(__pyx_t_4, __pyx_v_n, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 715, __pyx_L1_error)
12471     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12472     __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 715, __pyx_L1_error)
12473     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12474     if (__pyx_t_8) {
12475 
12476       /* "cylp/cy/CyClpSimplex.pyx":716
12477  *                 n = self.nVariables
12478  *                 if coinMat.majorDim < n:
12479  *                     for i in xrange(n - coinMat.majorDim):             # <<<<<<<<<<<<<<
12480  *                         coinMat.appendCol()
12481  *                 if coinMat.minorDim < n:
12482  */
12483       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coinMat), __pyx_n_s_majorDim); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 716, __pyx_L1_error)
12484       __Pyx_GOTREF(__pyx_t_7);
12485       __pyx_t_4 = PyNumber_Subtract(__pyx_v_n, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 716, __pyx_L1_error)
12486       __Pyx_GOTREF(__pyx_t_4);
12487       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12488       __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 716, __pyx_L1_error)
12489       __Pyx_GOTREF(__pyx_t_7);
12490       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12491       if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
12492         __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4); __pyx_t_9 = 0;
12493         __pyx_t_10 = NULL;
12494       } else {
12495         __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 716, __pyx_L1_error)
12496         __Pyx_GOTREF(__pyx_t_4);
12497         __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 716, __pyx_L1_error)
12498       }
12499       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12500       for (;;) {
12501         if (likely(!__pyx_t_10)) {
12502           if (likely(PyList_CheckExact(__pyx_t_4))) {
12503             if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break;
12504             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
12505             __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 716, __pyx_L1_error)
12506             #else
12507             __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 716, __pyx_L1_error)
12508             __Pyx_GOTREF(__pyx_t_7);
12509             #endif
12510           } else {
12511             if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
12512             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
12513             __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 716, __pyx_L1_error)
12514             #else
12515             __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 716, __pyx_L1_error)
12516             __Pyx_GOTREF(__pyx_t_7);
12517             #endif
12518           }
12519         } else {
12520           __pyx_t_7 = __pyx_t_10(__pyx_t_4);
12521           if (unlikely(!__pyx_t_7)) {
12522             PyObject* exc_type = PyErr_Occurred();
12523             if (exc_type) {
12524               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
12525               else __PYX_ERR(0, 716, __pyx_L1_error)
12526             }
12527             break;
12528           }
12529           __Pyx_GOTREF(__pyx_t_7);
12530         }
12531         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7);
12532         __pyx_t_7 = 0;
12533 
12534         /* "cylp/cy/CyClpSimplex.pyx":717
12535  *                 if coinMat.majorDim < n:
12536  *                     for i in xrange(n - coinMat.majorDim):
12537  *                         coinMat.appendCol()             # <<<<<<<<<<<<<<
12538  *                 if coinMat.minorDim < n:
12539  *                     for i in xrange(n - coinMat.majorDim):
12540  */
12541         __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coinMat), __pyx_n_s_appendCol); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 717, __pyx_L1_error)
12542         __Pyx_GOTREF(__pyx_t_5);
12543         __pyx_t_6 = NULL;
12544         if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
12545           __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
12546           if (likely(__pyx_t_6)) {
12547             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
12548             __Pyx_INCREF(__pyx_t_6);
12549             __Pyx_INCREF(function);
12550             __Pyx_DECREF_SET(__pyx_t_5, function);
12551           }
12552         }
12553         __pyx_t_7 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
12554         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
12555         if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 717, __pyx_L1_error)
12556         __Pyx_GOTREF(__pyx_t_7);
12557         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12558         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12559 
12560         /* "cylp/cy/CyClpSimplex.pyx":716
12561  *                 n = self.nVariables
12562  *                 if coinMat.majorDim < n:
12563  *                     for i in xrange(n - coinMat.majorDim):             # <<<<<<<<<<<<<<
12564  *                         coinMat.appendCol()
12565  *                 if coinMat.minorDim < n:
12566  */
12567       }
12568       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12569 
12570       /* "cylp/cy/CyClpSimplex.pyx":715
12571  *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
12572  *                 n = self.nVariables
12573  *                 if coinMat.majorDim < n:             # <<<<<<<<<<<<<<
12574  *                     for i in xrange(n - coinMat.majorDim):
12575  *                         coinMat.appendCol()
12576  */
12577     }
12578 
12579     /* "cylp/cy/CyClpSimplex.pyx":718
12580  *                     for i in xrange(n - coinMat.majorDim):
12581  *                         coinMat.appendCol()
12582  *                 if coinMat.minorDim < n:             # <<<<<<<<<<<<<<
12583  *                     for i in xrange(n - coinMat.majorDim):
12584  *                         coinMat.appendRow()
12585  */
12586     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coinMat), __pyx_n_s_minorDim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 718, __pyx_L1_error)
12587     __Pyx_GOTREF(__pyx_t_4);
12588     __pyx_t_7 = PyObject_RichCompare(__pyx_t_4, __pyx_v_n, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
12589     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12590     __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 718, __pyx_L1_error)
12591     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12592     if (__pyx_t_8) {
12593 
12594       /* "cylp/cy/CyClpSimplex.pyx":719
12595  *                         coinMat.appendCol()
12596  *                 if coinMat.minorDim < n:
12597  *                     for i in xrange(n - coinMat.majorDim):             # <<<<<<<<<<<<<<
12598  *                         coinMat.appendRow()
12599  *                 self._Hessian = m
12600  */
12601       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coinMat), __pyx_n_s_majorDim); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 719, __pyx_L1_error)
12602       __Pyx_GOTREF(__pyx_t_7);
12603       __pyx_t_4 = PyNumber_Subtract(__pyx_v_n, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error)
12604       __Pyx_GOTREF(__pyx_t_4);
12605       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12606       __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 719, __pyx_L1_error)
12607       __Pyx_GOTREF(__pyx_t_7);
12608       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12609       if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
12610         __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4); __pyx_t_9 = 0;
12611         __pyx_t_10 = NULL;
12612       } else {
12613         __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error)
12614         __Pyx_GOTREF(__pyx_t_4);
12615         __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 719, __pyx_L1_error)
12616       }
12617       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12618       for (;;) {
12619         if (likely(!__pyx_t_10)) {
12620           if (likely(PyList_CheckExact(__pyx_t_4))) {
12621             if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break;
12622             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
12623             __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
12624             #else
12625             __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 719, __pyx_L1_error)
12626             __Pyx_GOTREF(__pyx_t_7);
12627             #endif
12628           } else {
12629             if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
12630             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
12631             __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
12632             #else
12633             __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 719, __pyx_L1_error)
12634             __Pyx_GOTREF(__pyx_t_7);
12635             #endif
12636           }
12637         } else {
12638           __pyx_t_7 = __pyx_t_10(__pyx_t_4);
12639           if (unlikely(!__pyx_t_7)) {
12640             PyObject* exc_type = PyErr_Occurred();
12641             if (exc_type) {
12642               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
12643               else __PYX_ERR(0, 719, __pyx_L1_error)
12644             }
12645             break;
12646           }
12647           __Pyx_GOTREF(__pyx_t_7);
12648         }
12649         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7);
12650         __pyx_t_7 = 0;
12651 
12652         /* "cylp/cy/CyClpSimplex.pyx":720
12653  *                 if coinMat.minorDim < n:
12654  *                     for i in xrange(n - coinMat.majorDim):
12655  *                         coinMat.appendRow()             # <<<<<<<<<<<<<<
12656  *                 self._Hessian = m
12657  *             self.loadQuadraticObjective(coinMat)
12658  */
12659         __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coinMat), __pyx_n_s_appendRow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 720, __pyx_L1_error)
12660         __Pyx_GOTREF(__pyx_t_5);
12661         __pyx_t_6 = NULL;
12662         if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
12663           __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
12664           if (likely(__pyx_t_6)) {
12665             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
12666             __Pyx_INCREF(__pyx_t_6);
12667             __Pyx_INCREF(function);
12668             __Pyx_DECREF_SET(__pyx_t_5, function);
12669           }
12670         }
12671         __pyx_t_7 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
12672         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
12673         if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 720, __pyx_L1_error)
12674         __Pyx_GOTREF(__pyx_t_7);
12675         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12676         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12677 
12678         /* "cylp/cy/CyClpSimplex.pyx":719
12679  *                         coinMat.appendCol()
12680  *                 if coinMat.minorDim < n:
12681  *                     for i in xrange(n - coinMat.majorDim):             # <<<<<<<<<<<<<<
12682  *                         coinMat.appendRow()
12683  *                 self._Hessian = m
12684  */
12685       }
12686       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12687 
12688       /* "cylp/cy/CyClpSimplex.pyx":718
12689  *                     for i in xrange(n - coinMat.majorDim):
12690  *                         coinMat.appendCol()
12691  *                 if coinMat.minorDim < n:             # <<<<<<<<<<<<<<
12692  *                     for i in xrange(n - coinMat.majorDim):
12693  *                         coinMat.appendRow()
12694  */
12695     }
12696 
12697     /* "cylp/cy/CyClpSimplex.pyx":721
12698  *                     for i in xrange(n - coinMat.majorDim):
12699  *                         coinMat.appendRow()
12700  *                 self._Hessian = m             # <<<<<<<<<<<<<<
12701  *             self.loadQuadraticObjective(coinMat)
12702  *
12703  */
12704     __Pyx_INCREF(__pyx_v_m);
12705     __Pyx_GIVEREF(__pyx_v_m);
12706     __Pyx_GOTREF(__pyx_v_self->_Hessian);
12707     __Pyx_DECREF(__pyx_v_self->_Hessian);
12708     __pyx_v_self->_Hessian = __pyx_v_m;
12709 
12710     /* "cylp/cy/CyClpSimplex.pyx":712
12711  *                 raise Exception('Hessian can be set to a matrix that ' \
12712  *                                             'implements *tocoo* method')
12713  *             if m:             # <<<<<<<<<<<<<<
12714  *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
12715  *                 n = self.nVariables
12716  */
12717   }
12718 
12719   /* "cylp/cy/CyClpSimplex.pyx":722
12720  *                         coinMat.appendRow()
12721  *                 self._Hessian = m
12722  *             self.loadQuadraticObjective(coinMat)             # <<<<<<<<<<<<<<
12723  *
12724  *     property dualTolerance:
12725  */
12726   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_loadQuadraticObjective); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 722, __pyx_L1_error)
12727   __Pyx_GOTREF(__pyx_t_7);
12728   if (unlikely(!__pyx_v_coinMat)) { __Pyx_RaiseUnboundLocalError("coinMat"); __PYX_ERR(0, 722, __pyx_L1_error) }
12729   __pyx_t_5 = NULL;
12730   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
12731     __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
12732     if (likely(__pyx_t_5)) {
12733       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
12734       __Pyx_INCREF(__pyx_t_5);
12735       __Pyx_INCREF(function);
12736       __Pyx_DECREF_SET(__pyx_t_7, function);
12737     }
12738   }
12739   __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, ((PyObject *)__pyx_v_coinMat)) : __Pyx_PyObject_CallOneArg(__pyx_t_7, ((PyObject *)__pyx_v_coinMat));
12740   __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
12741   if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 722, __pyx_L1_error)
12742   __Pyx_GOTREF(__pyx_t_4);
12743   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12744   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12745 
12746   /* "cylp/cy/CyClpSimplex.pyx":705
12747  *             return self._Hessian
12748  *
12749  *         def __set__(self, mat):             # <<<<<<<<<<<<<<
12750  *             m = None
12751  *             try:
12752  */
12753 
12754   /* function exit code */
12755   __pyx_r = 0;
12756   goto __pyx_L0;
12757   __pyx_L1_error:;
12758   __Pyx_XDECREF(__pyx_t_4);
12759   __Pyx_XDECREF(__pyx_t_5);
12760   __Pyx_XDECREF(__pyx_t_6);
12761   __Pyx_XDECREF(__pyx_t_7);
12762   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.Hessian.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12763   __pyx_r = -1;
12764   __pyx_L0:;
12765   __Pyx_XDECREF(__pyx_v_m);
12766   __Pyx_XDECREF((PyObject *)__pyx_v_coinMat);
12767   __Pyx_XDECREF(__pyx_v_n);
12768   __Pyx_XDECREF(__pyx_v_i);
12769   __Pyx_TraceReturn(Py_None, 0);
12770   __Pyx_RefNannyFinishContext();
12771   return __pyx_r;
12772 }
12773 
12774 /* "cylp/cy/CyClpSimplex.pyx":725
12775  *
12776  *     property dualTolerance:
12777  *         def __get__(self):             # <<<<<<<<<<<<<<
12778  *             return self.CppSelf.dualTolerance()
12779  *
12780  */
12781 
12782 /* Python wrapper */
12783 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_1__get__(PyObject *__pyx_v_self); /*proto*/
12784 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_1__get__(PyObject *__pyx_v_self) {
12785   PyObject *__pyx_r = 0;
12786   __Pyx_RefNannyDeclarations
12787   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
12788   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
12789 
12790   /* function exit code */
12791   __Pyx_RefNannyFinishContext();
12792   return __pyx_r;
12793 }
12794 
12795 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
12796   PyObject *__pyx_r = NULL;
12797   __Pyx_TraceDeclarations
12798   __Pyx_RefNannyDeclarations
12799   PyObject *__pyx_t_1 = NULL;
12800   int __pyx_lineno = 0;
12801   const char *__pyx_filename = NULL;
12802   int __pyx_clineno = 0;
12803   __Pyx_RefNannySetupContext("__get__", 0);
12804   __Pyx_TraceCall("__get__", __pyx_f[0], 725, 0, __PYX_ERR(0, 725, __pyx_L1_error));
12805 
12806   /* "cylp/cy/CyClpSimplex.pyx":726
12807  *     property dualTolerance:
12808  *         def __get__(self):
12809  *             return self.CppSelf.dualTolerance()             # <<<<<<<<<<<<<<
12810  *
12811  *         def __set__(self, value):
12812  */
12813   __Pyx_XDECREF(__pyx_r);
12814   __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->dualTolerance()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 726, __pyx_L1_error)
12815   __Pyx_GOTREF(__pyx_t_1);
12816   __pyx_r = __pyx_t_1;
12817   __pyx_t_1 = 0;
12818   goto __pyx_L0;
12819 
12820   /* "cylp/cy/CyClpSimplex.pyx":725
12821  *
12822  *     property dualTolerance:
12823  *         def __get__(self):             # <<<<<<<<<<<<<<
12824  *             return self.CppSelf.dualTolerance()
12825  *
12826  */
12827 
12828   /* function exit code */
12829   __pyx_L1_error:;
12830   __Pyx_XDECREF(__pyx_t_1);
12831   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualTolerance.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12832   __pyx_r = NULL;
12833   __pyx_L0:;
12834   __Pyx_XGIVEREF(__pyx_r);
12835   __Pyx_TraceReturn(__pyx_r, 0);
12836   __Pyx_RefNannyFinishContext();
12837   return __pyx_r;
12838 }
12839 
12840 /* "cylp/cy/CyClpSimplex.pyx":728
12841  *             return self.CppSelf.dualTolerance()
12842  *
12843  *         def __set__(self, value):             # <<<<<<<<<<<<<<
12844  *            self.CppSelf.setDualTolerance(value)
12845  *
12846  */
12847 
12848 /* Python wrapper */
12849 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
12850 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
12851   int __pyx_r;
12852   __Pyx_RefNannyDeclarations
12853   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
12854   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));
12855 
12856   /* function exit code */
12857   __Pyx_RefNannyFinishContext();
12858   return __pyx_r;
12859 }
12860 
12861 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
12862   int __pyx_r;
12863   __Pyx_TraceDeclarations
12864   __Pyx_RefNannyDeclarations
12865   double __pyx_t_1;
12866   int __pyx_lineno = 0;
12867   const char *__pyx_filename = NULL;
12868   int __pyx_clineno = 0;
12869   __Pyx_RefNannySetupContext("__set__", 0);
12870   __Pyx_TraceCall("__set__", __pyx_f[0], 728, 0, __PYX_ERR(0, 728, __pyx_L1_error));
12871 
12872   /* "cylp/cy/CyClpSimplex.pyx":729
12873  *
12874  *         def __set__(self, value):
12875  *            self.CppSelf.setDualTolerance(value)             # <<<<<<<<<<<<<<
12876  *
12877  *     property primalTolerance:
12878  */
12879   __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 729, __pyx_L1_error)
12880   __pyx_v_self->CppSelf->setDualTolerance(__pyx_t_1);
12881 
12882   /* "cylp/cy/CyClpSimplex.pyx":728
12883  *             return self.CppSelf.dualTolerance()
12884  *
12885  *         def __set__(self, value):             # <<<<<<<<<<<<<<
12886  *            self.CppSelf.setDualTolerance(value)
12887  *
12888  */
12889 
12890   /* function exit code */
12891   __pyx_r = 0;
12892   goto __pyx_L0;
12893   __pyx_L1_error:;
12894   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualTolerance.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12895   __pyx_r = -1;
12896   __pyx_L0:;
12897   __Pyx_TraceReturn(Py_None, 0);
12898   __Pyx_RefNannyFinishContext();
12899   return __pyx_r;
12900 }
12901 
12902 /* "cylp/cy/CyClpSimplex.pyx":732
12903  *
12904  *     property primalTolerance:
12905  *         def __get__(self):             # <<<<<<<<<<<<<<
12906  *             return self.CppSelf.primalTolerance()
12907  *
12908  */
12909 
12910 /* Python wrapper */
12911 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_1__get__(PyObject *__pyx_v_self); /*proto*/
12912 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_1__get__(PyObject *__pyx_v_self) {
12913   PyObject *__pyx_r = 0;
12914   __Pyx_RefNannyDeclarations
12915   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
12916   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
12917 
12918   /* function exit code */
12919   __Pyx_RefNannyFinishContext();
12920   return __pyx_r;
12921 }
12922 
12923 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
12924   PyObject *__pyx_r = NULL;
12925   __Pyx_TraceDeclarations
12926   __Pyx_RefNannyDeclarations
12927   PyObject *__pyx_t_1 = NULL;
12928   int __pyx_lineno = 0;
12929   const char *__pyx_filename = NULL;
12930   int __pyx_clineno = 0;
12931   __Pyx_RefNannySetupContext("__get__", 0);
12932   __Pyx_TraceCall("__get__", __pyx_f[0], 732, 0, __PYX_ERR(0, 732, __pyx_L1_error));
12933 
12934   /* "cylp/cy/CyClpSimplex.pyx":733
12935  *     property primalTolerance:
12936  *         def __get__(self):
12937  *             return self.CppSelf.primalTolerance()             # <<<<<<<<<<<<<<
12938  *
12939  *         def __set__(self, value):
12940  */
12941   __Pyx_XDECREF(__pyx_r);
12942   __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->primalTolerance()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 733, __pyx_L1_error)
12943   __Pyx_GOTREF(__pyx_t_1);
12944   __pyx_r = __pyx_t_1;
12945   __pyx_t_1 = 0;
12946   goto __pyx_L0;
12947 
12948   /* "cylp/cy/CyClpSimplex.pyx":732
12949  *
12950  *     property primalTolerance:
12951  *         def __get__(self):             # <<<<<<<<<<<<<<
12952  *             return self.CppSelf.primalTolerance()
12953  *
12954  */
12955 
12956   /* function exit code */
12957   __pyx_L1_error:;
12958   __Pyx_XDECREF(__pyx_t_1);
12959   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalTolerance.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12960   __pyx_r = NULL;
12961   __pyx_L0:;
12962   __Pyx_XGIVEREF(__pyx_r);
12963   __Pyx_TraceReturn(__pyx_r, 0);
12964   __Pyx_RefNannyFinishContext();
12965   return __pyx_r;
12966 }
12967 
12968 /* "cylp/cy/CyClpSimplex.pyx":735
12969  *             return self.CppSelf.primalTolerance()
12970  *
12971  *         def __set__(self, value):             # <<<<<<<<<<<<<<
12972  *            self.CppSelf.setPrimalTolerance(value)
12973  *
12974  */
12975 
12976 /* Python wrapper */
12977 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
12978 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
12979   int __pyx_r;
12980   __Pyx_RefNannyDeclarations
12981   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
12982   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));
12983 
12984   /* function exit code */
12985   __Pyx_RefNannyFinishContext();
12986   return __pyx_r;
12987 }
12988 
12989 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
12990   int __pyx_r;
12991   __Pyx_TraceDeclarations
12992   __Pyx_RefNannyDeclarations
12993   double __pyx_t_1;
12994   int __pyx_lineno = 0;
12995   const char *__pyx_filename = NULL;
12996   int __pyx_clineno = 0;
12997   __Pyx_RefNannySetupContext("__set__", 0);
12998   __Pyx_TraceCall("__set__", __pyx_f[0], 735, 0, __PYX_ERR(0, 735, __pyx_L1_error));
12999 
13000   /* "cylp/cy/CyClpSimplex.pyx":736
13001  *
13002  *         def __set__(self, value):
13003  *            self.CppSelf.setPrimalTolerance(value)             # <<<<<<<<<<<<<<
13004  *
13005  *     property maxNumIteration:
13006  */
13007   __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L1_error)
13008   __pyx_v_self->CppSelf->setPrimalTolerance(__pyx_t_1);
13009 
13010   /* "cylp/cy/CyClpSimplex.pyx":735
13011  *             return self.CppSelf.primalTolerance()
13012  *
13013  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13014  *            self.CppSelf.setPrimalTolerance(value)
13015  *
13016  */
13017 
13018   /* function exit code */
13019   __pyx_r = 0;
13020   goto __pyx_L0;
13021   __pyx_L1_error:;
13022   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalTolerance.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13023   __pyx_r = -1;
13024   __pyx_L0:;
13025   __Pyx_TraceReturn(Py_None, 0);
13026   __Pyx_RefNannyFinishContext();
13027   return __pyx_r;
13028 }
13029 
13030 /* "cylp/cy/CyClpSimplex.pyx":739
13031  *
13032  *     property maxNumIteration:
13033  *         def __get__(self):             # <<<<<<<<<<<<<<
13034  *             return self.CppSelf.maximumIterations()
13035  *
13036  */
13037 
13038 /* Python wrapper */
13039 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_1__get__(PyObject *__pyx_v_self); /*proto*/
13040 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_1__get__(PyObject *__pyx_v_self) {
13041   PyObject *__pyx_r = 0;
13042   __Pyx_RefNannyDeclarations
13043   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
13044   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
13045 
13046   /* function exit code */
13047   __Pyx_RefNannyFinishContext();
13048   return __pyx_r;
13049 }
13050 
13051 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
13052   PyObject *__pyx_r = NULL;
13053   __Pyx_TraceDeclarations
13054   __Pyx_RefNannyDeclarations
13055   PyObject *__pyx_t_1 = NULL;
13056   int __pyx_lineno = 0;
13057   const char *__pyx_filename = NULL;
13058   int __pyx_clineno = 0;
13059   __Pyx_RefNannySetupContext("__get__", 0);
13060   __Pyx_TraceCall("__get__", __pyx_f[0], 739, 0, __PYX_ERR(0, 739, __pyx_L1_error));
13061 
13062   /* "cylp/cy/CyClpSimplex.pyx":740
13063  *     property maxNumIteration:
13064  *         def __get__(self):
13065  *             return self.CppSelf.maximumIterations()             # <<<<<<<<<<<<<<
13066  *
13067  *         def __set__(self, value):
13068  */
13069   __Pyx_XDECREF(__pyx_r);
13070   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->maximumIterations()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L1_error)
13071   __Pyx_GOTREF(__pyx_t_1);
13072   __pyx_r = __pyx_t_1;
13073   __pyx_t_1 = 0;
13074   goto __pyx_L0;
13075 
13076   /* "cylp/cy/CyClpSimplex.pyx":739
13077  *
13078  *     property maxNumIteration:
13079  *         def __get__(self):             # <<<<<<<<<<<<<<
13080  *             return self.CppSelf.maximumIterations()
13081  *
13082  */
13083 
13084   /* function exit code */
13085   __pyx_L1_error:;
13086   __Pyx_XDECREF(__pyx_t_1);
13087   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.maxNumIteration.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13088   __pyx_r = NULL;
13089   __pyx_L0:;
13090   __Pyx_XGIVEREF(__pyx_r);
13091   __Pyx_TraceReturn(__pyx_r, 0);
13092   __Pyx_RefNannyFinishContext();
13093   return __pyx_r;
13094 }
13095 
13096 /* "cylp/cy/CyClpSimplex.pyx":742
13097  *             return self.CppSelf.maximumIterations()
13098  *
13099  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13100  *            self.CppSelf.setMaxNumIteration(value)
13101  *
13102  */
13103 
13104 /* Python wrapper */
13105 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
13106 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
13107   int __pyx_r;
13108   __Pyx_RefNannyDeclarations
13109   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
13110   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));
13111 
13112   /* function exit code */
13113   __Pyx_RefNannyFinishContext();
13114   return __pyx_r;
13115 }
13116 
13117 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
13118   int __pyx_r;
13119   __Pyx_TraceDeclarations
13120   __Pyx_RefNannyDeclarations
13121   int __pyx_t_1;
13122   int __pyx_lineno = 0;
13123   const char *__pyx_filename = NULL;
13124   int __pyx_clineno = 0;
13125   __Pyx_RefNannySetupContext("__set__", 0);
13126   __Pyx_TraceCall("__set__", __pyx_f[0], 742, 0, __PYX_ERR(0, 742, __pyx_L1_error));
13127 
13128   /* "cylp/cy/CyClpSimplex.pyx":743
13129  *
13130  *         def __set__(self, value):
13131  *            self.CppSelf.setMaxNumIteration(value)             # <<<<<<<<<<<<<<
13132  *
13133  *     property logLevel:
13134  */
13135   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L1_error)
13136   __pyx_v_self->CppSelf->setMaxNumIteration(__pyx_t_1);
13137 
13138   /* "cylp/cy/CyClpSimplex.pyx":742
13139  *             return self.CppSelf.maximumIterations()
13140  *
13141  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13142  *            self.CppSelf.setMaxNumIteration(value)
13143  *
13144  */
13145 
13146   /* function exit code */
13147   __pyx_r = 0;
13148   goto __pyx_L0;
13149   __pyx_L1_error:;
13150   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.maxNumIteration.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13151   __pyx_r = -1;
13152   __pyx_L0:;
13153   __Pyx_TraceReturn(Py_None, 0);
13154   __Pyx_RefNannyFinishContext();
13155   return __pyx_r;
13156 }
13157 
13158 /* "cylp/cy/CyClpSimplex.pyx":746
13159  *
13160  *     property logLevel:
13161  *         def __get__(self):             # <<<<<<<<<<<<<<
13162  *             return self.CppSelf.logLevel()
13163  *
13164  */
13165 
13166 /* Python wrapper */
13167 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_1__get__(PyObject *__pyx_v_self); /*proto*/
13168 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_1__get__(PyObject *__pyx_v_self) {
13169   PyObject *__pyx_r = 0;
13170   __Pyx_RefNannyDeclarations
13171   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
13172   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
13173 
13174   /* function exit code */
13175   __Pyx_RefNannyFinishContext();
13176   return __pyx_r;
13177 }
13178 
13179 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
13180   PyObject *__pyx_r = NULL;
13181   __Pyx_TraceDeclarations
13182   __Pyx_RefNannyDeclarations
13183   PyObject *__pyx_t_1 = NULL;
13184   int __pyx_lineno = 0;
13185   const char *__pyx_filename = NULL;
13186   int __pyx_clineno = 0;
13187   __Pyx_RefNannySetupContext("__get__", 0);
13188   __Pyx_TraceCall("__get__", __pyx_f[0], 746, 0, __PYX_ERR(0, 746, __pyx_L1_error));
13189 
13190   /* "cylp/cy/CyClpSimplex.pyx":747
13191  *     property logLevel:
13192  *         def __get__(self):
13193  *             return self.CppSelf.logLevel()             # <<<<<<<<<<<<<<
13194  *
13195  *         def __set__(self, value):
13196  */
13197   __Pyx_XDECREF(__pyx_r);
13198   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->logLevel()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 747, __pyx_L1_error)
13199   __Pyx_GOTREF(__pyx_t_1);
13200   __pyx_r = __pyx_t_1;
13201   __pyx_t_1 = 0;
13202   goto __pyx_L0;
13203 
13204   /* "cylp/cy/CyClpSimplex.pyx":746
13205  *
13206  *     property logLevel:
13207  *         def __get__(self):             # <<<<<<<<<<<<<<
13208  *             return self.CppSelf.logLevel()
13209  *
13210  */
13211 
13212   /* function exit code */
13213   __pyx_L1_error:;
13214   __Pyx_XDECREF(__pyx_t_1);
13215   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.logLevel.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13216   __pyx_r = NULL;
13217   __pyx_L0:;
13218   __Pyx_XGIVEREF(__pyx_r);
13219   __Pyx_TraceReturn(__pyx_r, 0);
13220   __Pyx_RefNannyFinishContext();
13221   return __pyx_r;
13222 }
13223 
13224 /* "cylp/cy/CyClpSimplex.pyx":749
13225  *             return self.CppSelf.logLevel()
13226  *
13227  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13228  *             self.CppSelf.setLogLevel(value)
13229  *
13230  */
13231 
13232 /* Python wrapper */
13233 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
13234 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
13235   int __pyx_r;
13236   __Pyx_RefNannyDeclarations
13237   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
13238   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));
13239 
13240   /* function exit code */
13241   __Pyx_RefNannyFinishContext();
13242   return __pyx_r;
13243 }
13244 
13245 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
13246   int __pyx_r;
13247   __Pyx_TraceDeclarations
13248   __Pyx_RefNannyDeclarations
13249   int __pyx_t_1;
13250   int __pyx_lineno = 0;
13251   const char *__pyx_filename = NULL;
13252   int __pyx_clineno = 0;
13253   __Pyx_RefNannySetupContext("__set__", 0);
13254   __Pyx_TraceCall("__set__", __pyx_f[0], 749, 0, __PYX_ERR(0, 749, __pyx_L1_error));
13255 
13256   /* "cylp/cy/CyClpSimplex.pyx":750
13257  *
13258  *         def __set__(self, value):
13259  *             self.CppSelf.setLogLevel(value)             # <<<<<<<<<<<<<<
13260  *
13261  *     property automaticScaling:
13262  */
13263   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L1_error)
13264   __pyx_v_self->CppSelf->setLogLevel(__pyx_t_1);
13265 
13266   /* "cylp/cy/CyClpSimplex.pyx":749
13267  *             return self.CppSelf.logLevel()
13268  *
13269  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13270  *             self.CppSelf.setLogLevel(value)
13271  *
13272  */
13273 
13274   /* function exit code */
13275   __pyx_r = 0;
13276   goto __pyx_L0;
13277   __pyx_L1_error:;
13278   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.logLevel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13279   __pyx_r = -1;
13280   __pyx_L0:;
13281   __Pyx_TraceReturn(Py_None, 0);
13282   __Pyx_RefNannyFinishContext();
13283   return __pyx_r;
13284 }
13285 
13286 /* "cylp/cy/CyClpSimplex.pyx":753
13287  *
13288  *     property automaticScaling:
13289  *         def __get__(self):             # <<<<<<<<<<<<<<
13290  *             return self.CppSelf.automaticScaling()
13291  *
13292  */
13293 
13294 /* Python wrapper */
13295 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_1__get__(PyObject *__pyx_v_self); /*proto*/
13296 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_1__get__(PyObject *__pyx_v_self) {
13297   PyObject *__pyx_r = 0;
13298   __Pyx_RefNannyDeclarations
13299   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
13300   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
13301 
13302   /* function exit code */
13303   __Pyx_RefNannyFinishContext();
13304   return __pyx_r;
13305 }
13306 
13307 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
13308   PyObject *__pyx_r = NULL;
13309   __Pyx_TraceDeclarations
13310   __Pyx_RefNannyDeclarations
13311   PyObject *__pyx_t_1 = NULL;
13312   int __pyx_lineno = 0;
13313   const char *__pyx_filename = NULL;
13314   int __pyx_clineno = 0;
13315   __Pyx_RefNannySetupContext("__get__", 0);
13316   __Pyx_TraceCall("__get__", __pyx_f[0], 753, 0, __PYX_ERR(0, 753, __pyx_L1_error));
13317 
13318   /* "cylp/cy/CyClpSimplex.pyx":754
13319  *     property automaticScaling:
13320  *         def __get__(self):
13321  *             return self.CppSelf.automaticScaling()             # <<<<<<<<<<<<<<
13322  *
13323  *         def __set__(self, value):
13324  */
13325   __Pyx_XDECREF(__pyx_r);
13326   __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->automaticScaling()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L1_error)
13327   __Pyx_GOTREF(__pyx_t_1);
13328   __pyx_r = __pyx_t_1;
13329   __pyx_t_1 = 0;
13330   goto __pyx_L0;
13331 
13332   /* "cylp/cy/CyClpSimplex.pyx":753
13333  *
13334  *     property automaticScaling:
13335  *         def __get__(self):             # <<<<<<<<<<<<<<
13336  *             return self.CppSelf.automaticScaling()
13337  *
13338  */
13339 
13340   /* function exit code */
13341   __pyx_L1_error:;
13342   __Pyx_XDECREF(__pyx_t_1);
13343   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.automaticScaling.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13344   __pyx_r = NULL;
13345   __pyx_L0:;
13346   __Pyx_XGIVEREF(__pyx_r);
13347   __Pyx_TraceReturn(__pyx_r, 0);
13348   __Pyx_RefNannyFinishContext();
13349   return __pyx_r;
13350 }
13351 
13352 /* "cylp/cy/CyClpSimplex.pyx":756
13353  *             return self.CppSelf.automaticScaling()
13354  *
13355  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13356  *             self.CppSelf.setAutomaticScaling(value)
13357  *
13358  */
13359 
13360 /* Python wrapper */
13361 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
13362 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
13363   int __pyx_r;
13364   __Pyx_RefNannyDeclarations
13365   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
13366   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));
13367 
13368   /* function exit code */
13369   __Pyx_RefNannyFinishContext();
13370   return __pyx_r;
13371 }
13372 
13373 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
13374   int __pyx_r;
13375   __Pyx_TraceDeclarations
13376   __Pyx_RefNannyDeclarations
13377   int __pyx_t_1;
13378   int __pyx_lineno = 0;
13379   const char *__pyx_filename = NULL;
13380   int __pyx_clineno = 0;
13381   __Pyx_RefNannySetupContext("__set__", 0);
13382   __Pyx_TraceCall("__set__", __pyx_f[0], 756, 0, __PYX_ERR(0, 756, __pyx_L1_error));
13383 
13384   /* "cylp/cy/CyClpSimplex.pyx":757
13385  *
13386  *         def __set__(self, value):
13387  *             self.CppSelf.setAutomaticScaling(value)             # <<<<<<<<<<<<<<
13388  *
13389  *     property scaling:
13390  */
13391   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 757, __pyx_L1_error)
13392   __pyx_v_self->CppSelf->setAutomaticScaling(__pyx_t_1);
13393 
13394   /* "cylp/cy/CyClpSimplex.pyx":756
13395  *             return self.CppSelf.automaticScaling()
13396  *
13397  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13398  *             self.CppSelf.setAutomaticScaling(value)
13399  *
13400  */
13401 
13402   /* function exit code */
13403   __pyx_r = 0;
13404   goto __pyx_L0;
13405   __pyx_L1_error:;
13406   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.automaticScaling.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13407   __pyx_r = -1;
13408   __pyx_L0:;
13409   __Pyx_TraceReturn(Py_None, 0);
13410   __Pyx_RefNannyFinishContext();
13411   return __pyx_r;
13412 }
13413 
13414 /* "cylp/cy/CyClpSimplex.pyx":760
13415  *
13416  *     property scaling:
13417  *         def __get__(self):             # <<<<<<<<<<<<<<
13418  *             return self.CppSelf.scalingFlag()
13419  *         def __set__(self, mode):
13420  */
13421 
13422 /* Python wrapper */
13423 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_1__get__(PyObject *__pyx_v_self); /*proto*/
13424 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_1__get__(PyObject *__pyx_v_self) {
13425   PyObject *__pyx_r = 0;
13426   __Pyx_RefNannyDeclarations
13427   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
13428   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
13429 
13430   /* function exit code */
13431   __Pyx_RefNannyFinishContext();
13432   return __pyx_r;
13433 }
13434 
13435 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
13436   PyObject *__pyx_r = NULL;
13437   __Pyx_TraceDeclarations
13438   __Pyx_RefNannyDeclarations
13439   PyObject *__pyx_t_1 = NULL;
13440   int __pyx_lineno = 0;
13441   const char *__pyx_filename = NULL;
13442   int __pyx_clineno = 0;
13443   __Pyx_RefNannySetupContext("__get__", 0);
13444   __Pyx_TraceCall("__get__", __pyx_f[0], 760, 0, __PYX_ERR(0, 760, __pyx_L1_error));
13445 
13446   /* "cylp/cy/CyClpSimplex.pyx":761
13447  *     property scaling:
13448  *         def __get__(self):
13449  *             return self.CppSelf.scalingFlag()             # <<<<<<<<<<<<<<
13450  *         def __set__(self, mode):
13451  *             self.CppSelf.scaling(mode)
13452  */
13453   __Pyx_XDECREF(__pyx_r);
13454   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->scalingFlag()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error)
13455   __Pyx_GOTREF(__pyx_t_1);
13456   __pyx_r = __pyx_t_1;
13457   __pyx_t_1 = 0;
13458   goto __pyx_L0;
13459 
13460   /* "cylp/cy/CyClpSimplex.pyx":760
13461  *
13462  *     property scaling:
13463  *         def __get__(self):             # <<<<<<<<<<<<<<
13464  *             return self.CppSelf.scalingFlag()
13465  *         def __set__(self, mode):
13466  */
13467 
13468   /* function exit code */
13469   __pyx_L1_error:;
13470   __Pyx_XDECREF(__pyx_t_1);
13471   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.scaling.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13472   __pyx_r = NULL;
13473   __pyx_L0:;
13474   __Pyx_XGIVEREF(__pyx_r);
13475   __Pyx_TraceReturn(__pyx_r, 0);
13476   __Pyx_RefNannyFinishContext();
13477   return __pyx_r;
13478 }
13479 
13480 /* "cylp/cy/CyClpSimplex.pyx":762
13481  *         def __get__(self):
13482  *             return self.CppSelf.scalingFlag()
13483  *         def __set__(self, mode):             # <<<<<<<<<<<<<<
13484  *             self.CppSelf.scaling(mode)
13485  *
13486  */
13487 
13488 /* Python wrapper */
13489 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mode); /*proto*/
13490 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mode) {
13491   int __pyx_r;
13492   __Pyx_RefNannyDeclarations
13493   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
13494   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_mode));
13495 
13496   /* function exit code */
13497   __Pyx_RefNannyFinishContext();
13498   return __pyx_r;
13499 }
13500 
13501 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_mode) {
13502   int __pyx_r;
13503   __Pyx_TraceDeclarations
13504   __Pyx_RefNannyDeclarations
13505   int __pyx_t_1;
13506   int __pyx_lineno = 0;
13507   const char *__pyx_filename = NULL;
13508   int __pyx_clineno = 0;
13509   __Pyx_RefNannySetupContext("__set__", 0);
13510   __Pyx_TraceCall("__set__", __pyx_f[0], 762, 0, __PYX_ERR(0, 762, __pyx_L1_error));
13511 
13512   /* "cylp/cy/CyClpSimplex.pyx":763
13513  *             return self.CppSelf.scalingFlag()
13514  *         def __set__(self, mode):
13515  *             self.CppSelf.scaling(mode)             # <<<<<<<<<<<<<<
13516  *
13517  *     property infeasibilityCost:
13518  */
13519   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_mode); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 763, __pyx_L1_error)
13520   __pyx_v_self->CppSelf->scaling(__pyx_t_1);
13521 
13522   /* "cylp/cy/CyClpSimplex.pyx":762
13523  *         def __get__(self):
13524  *             return self.CppSelf.scalingFlag()
13525  *         def __set__(self, mode):             # <<<<<<<<<<<<<<
13526  *             self.CppSelf.scaling(mode)
13527  *
13528  */
13529 
13530   /* function exit code */
13531   __pyx_r = 0;
13532   goto __pyx_L0;
13533   __pyx_L1_error:;
13534   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.scaling.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13535   __pyx_r = -1;
13536   __pyx_L0:;
13537   __Pyx_TraceReturn(Py_None, 0);
13538   __Pyx_RefNannyFinishContext();
13539   return __pyx_r;
13540 }
13541 
13542 /* "cylp/cy/CyClpSimplex.pyx":766
13543  *
13544  *     property infeasibilityCost:
13545  *         def __get__(self):             # <<<<<<<<<<<<<<
13546  *             return self.CppSelf.infeasibilityCost()
13547  *         def __set__(self, value):
13548  */
13549 
13550 /* Python wrapper */
13551 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_1__get__(PyObject *__pyx_v_self); /*proto*/
13552 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_1__get__(PyObject *__pyx_v_self) {
13553   PyObject *__pyx_r = 0;
13554   __Pyx_RefNannyDeclarations
13555   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
13556   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
13557 
13558   /* function exit code */
13559   __Pyx_RefNannyFinishContext();
13560   return __pyx_r;
13561 }
13562 
13563 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
13564   PyObject *__pyx_r = NULL;
13565   __Pyx_TraceDeclarations
13566   __Pyx_RefNannyDeclarations
13567   PyObject *__pyx_t_1 = NULL;
13568   int __pyx_lineno = 0;
13569   const char *__pyx_filename = NULL;
13570   int __pyx_clineno = 0;
13571   __Pyx_RefNannySetupContext("__get__", 0);
13572   __Pyx_TraceCall("__get__", __pyx_f[0], 766, 0, __PYX_ERR(0, 766, __pyx_L1_error));
13573 
13574   /* "cylp/cy/CyClpSimplex.pyx":767
13575  *     property infeasibilityCost:
13576  *         def __get__(self):
13577  *             return self.CppSelf.infeasibilityCost()             # <<<<<<<<<<<<<<
13578  *         def __set__(self, value):
13579  *             self.CppSelf.setInfeasibilityCost(value)
13580  */
13581   __Pyx_XDECREF(__pyx_r);
13582   __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->infeasibilityCost()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 767, __pyx_L1_error)
13583   __Pyx_GOTREF(__pyx_t_1);
13584   __pyx_r = __pyx_t_1;
13585   __pyx_t_1 = 0;
13586   goto __pyx_L0;
13587 
13588   /* "cylp/cy/CyClpSimplex.pyx":766
13589  *
13590  *     property infeasibilityCost:
13591  *         def __get__(self):             # <<<<<<<<<<<<<<
13592  *             return self.CppSelf.infeasibilityCost()
13593  *         def __set__(self, value):
13594  */
13595 
13596   /* function exit code */
13597   __pyx_L1_error:;
13598   __Pyx_XDECREF(__pyx_t_1);
13599   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.infeasibilityCost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13600   __pyx_r = NULL;
13601   __pyx_L0:;
13602   __Pyx_XGIVEREF(__pyx_r);
13603   __Pyx_TraceReturn(__pyx_r, 0);
13604   __Pyx_RefNannyFinishContext();
13605   return __pyx_r;
13606 }
13607 
13608 /* "cylp/cy/CyClpSimplex.pyx":768
13609  *         def __get__(self):
13610  *             return self.CppSelf.infeasibilityCost()
13611  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13612  *             self.CppSelf.setInfeasibilityCost(value)
13613  *
13614  */
13615 
13616 /* Python wrapper */
13617 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
13618 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
13619   int __pyx_r;
13620   __Pyx_RefNannyDeclarations
13621   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
13622   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));
13623 
13624   /* function exit code */
13625   __Pyx_RefNannyFinishContext();
13626   return __pyx_r;
13627 }
13628 
13629 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
13630   int __pyx_r;
13631   __Pyx_TraceDeclarations
13632   __Pyx_RefNannyDeclarations
13633   double __pyx_t_1;
13634   int __pyx_lineno = 0;
13635   const char *__pyx_filename = NULL;
13636   int __pyx_clineno = 0;
13637   __Pyx_RefNannySetupContext("__set__", 0);
13638   __Pyx_TraceCall("__set__", __pyx_f[0], 768, 0, __PYX_ERR(0, 768, __pyx_L1_error));
13639 
13640   /* "cylp/cy/CyClpSimplex.pyx":769
13641  *             return self.CppSelf.infeasibilityCost()
13642  *         def __set__(self, value):
13643  *             self.CppSelf.setInfeasibilityCost(value)             # <<<<<<<<<<<<<<
13644  *
13645  *
13646  */
13647   __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L1_error)
13648   __pyx_v_self->CppSelf->setInfeasibilityCost(__pyx_t_1);
13649 
13650   /* "cylp/cy/CyClpSimplex.pyx":768
13651  *         def __get__(self):
13652  *             return self.CppSelf.infeasibilityCost()
13653  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13654  *             self.CppSelf.setInfeasibilityCost(value)
13655  *
13656  */
13657 
13658   /* function exit code */
13659   __pyx_r = 0;
13660   goto __pyx_L0;
13661   __pyx_L1_error:;
13662   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.infeasibilityCost.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13663   __pyx_r = -1;
13664   __pyx_L0:;
13665   __Pyx_TraceReturn(Py_None, 0);
13666   __Pyx_RefNannyFinishContext();
13667   return __pyx_r;
13668 }
13669 
13670 /* "cylp/cy/CyClpSimplex.pyx":773
13671  *
13672  *     property numberPrimalInfeasibilities:
13673  *         def __get__(self):             # <<<<<<<<<<<<<<
13674  *             return self.CppSelf.numberPrimalInfeasibilities()
13675  *
13676  */
13677 
13678 /* Python wrapper */
13679 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities_1__get__(PyObject *__pyx_v_self); /*proto*/
13680 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities_1__get__(PyObject *__pyx_v_self) {
13681   PyObject *__pyx_r = 0;
13682   __Pyx_RefNannyDeclarations
13683   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
13684   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
13685 
13686   /* function exit code */
13687   __Pyx_RefNannyFinishContext();
13688   return __pyx_r;
13689 }
13690 
13691 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
13692   PyObject *__pyx_r = NULL;
13693   __Pyx_TraceDeclarations
13694   __Pyx_RefNannyDeclarations
13695   PyObject *__pyx_t_1 = NULL;
13696   int __pyx_lineno = 0;
13697   const char *__pyx_filename = NULL;
13698   int __pyx_clineno = 0;
13699   __Pyx_RefNannySetupContext("__get__", 0);
13700   __Pyx_TraceCall("__get__", __pyx_f[0], 773, 0, __PYX_ERR(0, 773, __pyx_L1_error));
13701 
13702   /* "cylp/cy/CyClpSimplex.pyx":774
13703  *     property numberPrimalInfeasibilities:
13704  *         def __get__(self):
13705  *             return self.CppSelf.numberPrimalInfeasibilities()             # <<<<<<<<<<<<<<
13706  *
13707  *     property optimizationDirection:
13708  */
13709   __Pyx_XDECREF(__pyx_r);
13710   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->numberPrimalInfeasibilities()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
13711   __Pyx_GOTREF(__pyx_t_1);
13712   __pyx_r = __pyx_t_1;
13713   __pyx_t_1 = 0;
13714   goto __pyx_L0;
13715 
13716   /* "cylp/cy/CyClpSimplex.pyx":773
13717  *
13718  *     property numberPrimalInfeasibilities:
13719  *         def __get__(self):             # <<<<<<<<<<<<<<
13720  *             return self.CppSelf.numberPrimalInfeasibilities()
13721  *
13722  */
13723 
13724   /* function exit code */
13725   __pyx_L1_error:;
13726   __Pyx_XDECREF(__pyx_t_1);
13727   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.numberPrimalInfeasibilities.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13728   __pyx_r = NULL;
13729   __pyx_L0:;
13730   __Pyx_XGIVEREF(__pyx_r);
13731   __Pyx_TraceReturn(__pyx_r, 0);
13732   __Pyx_RefNannyFinishContext();
13733   return __pyx_r;
13734 }
13735 
13736 /* "cylp/cy/CyClpSimplex.pyx":777
13737  *
13738  *     property optimizationDirection:
13739  *         def __get__(self):             # <<<<<<<<<<<<<<
13740  *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
13741  *         def __set__(self, value):
13742  */
13743 
13744 /* Python wrapper */
13745 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_1__get__(PyObject *__pyx_v_self); /*proto*/
13746 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_1__get__(PyObject *__pyx_v_self) {
13747   PyObject *__pyx_r = 0;
13748   __Pyx_RefNannyDeclarations
13749   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
13750   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
13751 
13752   /* function exit code */
13753   __Pyx_RefNannyFinishContext();
13754   return __pyx_r;
13755 }
13756 
13757 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
13758   PyObject *__pyx_r = NULL;
13759   __Pyx_TraceDeclarations
13760   __Pyx_RefNannyDeclarations
13761   PyObject *__pyx_t_1 = NULL;
13762   PyObject *__pyx_t_2 = NULL;
13763   PyObject *__pyx_t_3 = NULL;
13764   int __pyx_lineno = 0;
13765   const char *__pyx_filename = NULL;
13766   int __pyx_clineno = 0;
13767   __Pyx_RefNannySetupContext("__get__", 0);
13768   __Pyx_TraceCall("__get__", __pyx_f[0], 777, 0, __PYX_ERR(0, 777, __pyx_L1_error));
13769 
13770   /* "cylp/cy/CyClpSimplex.pyx":778
13771  *     property optimizationDirection:
13772  *         def __get__(self):
13773  *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]             # <<<<<<<<<<<<<<
13774  *         def __set__(self, value):
13775  *             self.CppSelf.setOptimizationDirection({'ignore':0., 'min':1., 'max':-1.}[value])
13776  */
13777   __Pyx_XDECREF(__pyx_r);
13778   __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 778, __pyx_L1_error)
13779   __Pyx_GOTREF(__pyx_t_1);
13780   __Pyx_INCREF(__pyx_n_s_ignore);
13781   __Pyx_GIVEREF(__pyx_n_s_ignore);
13782   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_ignore);
13783   __Pyx_INCREF(__pyx_n_s_min);
13784   __Pyx_GIVEREF(__pyx_n_s_min);
13785   PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_min);
13786   __Pyx_INCREF(__pyx_n_s_max);
13787   __Pyx_GIVEREF(__pyx_n_s_max);
13788   PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_max);
13789   __pyx_t_2 = __Pyx_PyInt_FromDouble(__pyx_v_self->CppSelf->optimizationDirection()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 778, __pyx_L1_error)
13790   __Pyx_GOTREF(__pyx_t_2);
13791   __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 778, __pyx_L1_error)
13792   __Pyx_GOTREF(__pyx_t_3);
13793   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13794   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13795   __pyx_r = __pyx_t_3;
13796   __pyx_t_3 = 0;
13797   goto __pyx_L0;
13798 
13799   /* "cylp/cy/CyClpSimplex.pyx":777
13800  *
13801  *     property optimizationDirection:
13802  *         def __get__(self):             # <<<<<<<<<<<<<<
13803  *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
13804  *         def __set__(self, value):
13805  */
13806 
13807   /* function exit code */
13808   __pyx_L1_error:;
13809   __Pyx_XDECREF(__pyx_t_1);
13810   __Pyx_XDECREF(__pyx_t_2);
13811   __Pyx_XDECREF(__pyx_t_3);
13812   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.optimizationDirection.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13813   __pyx_r = NULL;
13814   __pyx_L0:;
13815   __Pyx_XGIVEREF(__pyx_r);
13816   __Pyx_TraceReturn(__pyx_r, 0);
13817   __Pyx_RefNannyFinishContext();
13818   return __pyx_r;
13819 }
13820 
13821 /* "cylp/cy/CyClpSimplex.pyx":779
13822  *         def __get__(self):
13823  *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
13824  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13825  *             self.CppSelf.setOptimizationDirection({'ignore':0., 'min':1., 'max':-1.}[value])
13826  *
13827  */
13828 
13829 /* Python wrapper */
13830 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
13831 static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
13832   int __pyx_r;
13833   __Pyx_RefNannyDeclarations
13834   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
13835   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_2__set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));
13836 
13837   /* function exit code */
13838   __Pyx_RefNannyFinishContext();
13839   return __pyx_r;
13840 }
13841 
13842 static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_2__set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
13843   int __pyx_r;
13844   __Pyx_TraceDeclarations
13845   __Pyx_RefNannyDeclarations
13846   PyObject *__pyx_t_1 = NULL;
13847   PyObject *__pyx_t_2 = NULL;
13848   double __pyx_t_3;
13849   int __pyx_lineno = 0;
13850   const char *__pyx_filename = NULL;
13851   int __pyx_clineno = 0;
13852   __Pyx_RefNannySetupContext("__set__", 0);
13853   __Pyx_TraceCall("__set__", __pyx_f[0], 779, 0, __PYX_ERR(0, 779, __pyx_L1_error));
13854 
13855   /* "cylp/cy/CyClpSimplex.pyx":780
13856  *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
13857  *         def __set__(self, value):
13858  *             self.CppSelf.setOptimizationDirection({'ignore':0., 'min':1., 'max':-1.}[value])             # <<<<<<<<<<<<<<
13859  *
13860  *     #############################################
13861  */
13862   __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 780, __pyx_L1_error)
13863   __Pyx_GOTREF(__pyx_t_1);
13864   if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore, __pyx_float_0_) < 0) __PYX_ERR(0, 780, __pyx_L1_error)
13865   if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_min, __pyx_float_1_) < 0) __PYX_ERR(0, 780, __pyx_L1_error)
13866   if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_max, __pyx_float_neg_1_) < 0) __PYX_ERR(0, 780, __pyx_L1_error)
13867   __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_t_1, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 780, __pyx_L1_error)
13868   __Pyx_GOTREF(__pyx_t_2);
13869   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13870   __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 780, __pyx_L1_error)
13871   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13872   __pyx_v_self->CppSelf->setOptimizationDirection(__pyx_t_3);
13873 
13874   /* "cylp/cy/CyClpSimplex.pyx":779
13875  *         def __get__(self):
13876  *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
13877  *         def __set__(self, value):             # <<<<<<<<<<<<<<
13878  *             self.CppSelf.setOptimizationDirection({'ignore':0., 'min':1., 'max':-1.}[value])
13879  *
13880  */
13881 
13882   /* function exit code */
13883   __pyx_r = 0;
13884   goto __pyx_L0;
13885   __pyx_L1_error:;
13886   __Pyx_XDECREF(__pyx_t_1);
13887   __Pyx_XDECREF(__pyx_t_2);
13888   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.optimizationDirection.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13889   __pyx_r = -1;
13890   __pyx_L0:;
13891   __Pyx_TraceReturn(Py_None, 0);
13892   __Pyx_RefNannyFinishContext();
13893   return __pyx_r;
13894 }
13895 
13896 /* "cylp/cy/CyClpSimplex.pyx":786
13897  *     #############################################
13898  *
13899  *     def getRightHandSide(self, np.ndarray[np.double_t, ndim=1] rhs):             # <<<<<<<<<<<<<<
13900  *         '''
13901  *         Take a spare array, ``rhs``, and store the current right-hand-side
13902  */
13903 
13904 /* Python wrapper */
13905 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9getRightHandSide(PyObject *__pyx_v_self, PyObject *__pyx_v_rhs); /*proto*/
13906 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8getRightHandSide[] = "CyClpSimplex.getRightHandSide(self, ndarray rhs)\n\n        Take a spare array, ``rhs``, and store the current right-hand-side\n        in it.\n        ";
13907 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9getRightHandSide(PyObject *__pyx_v_self, PyObject *__pyx_v_rhs) {
13908   int __pyx_lineno = 0;
13909   const char *__pyx_filename = NULL;
13910   int __pyx_clineno = 0;
13911   PyObject *__pyx_r = 0;
13912   __Pyx_RefNannyDeclarations
13913   __Pyx_RefNannySetupContext("getRightHandSide (wrapper)", 0);
13914   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rhs), __pyx_ptype_5numpy_ndarray, 1, "rhs", 0))) __PYX_ERR(0, 786, __pyx_L1_error)
13915   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8getRightHandSide(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_rhs));
13916 
13917   /* function exit code */
13918   goto __pyx_L0;
13919   __pyx_L1_error:;
13920   __pyx_r = NULL;
13921   __pyx_L0:;
13922   __Pyx_RefNannyFinishContext();
13923   return __pyx_r;
13924 }
13925 
13926 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8getRightHandSide(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rhs) {
13927   __Pyx_LocalBuf_ND __pyx_pybuffernd_rhs;
13928   __Pyx_Buffer __pyx_pybuffer_rhs;
13929   PyObject *__pyx_r = NULL;
13930   __Pyx_TraceDeclarations
13931   __Pyx_RefNannyDeclarations
13932   int __pyx_lineno = 0;
13933   const char *__pyx_filename = NULL;
13934   int __pyx_clineno = 0;
13935   __Pyx_RefNannySetupContext("getRightHandSide", 0);
13936   __Pyx_TraceCall("getRightHandSide", __pyx_f[0], 786, 0, __PYX_ERR(0, 786, __pyx_L1_error));
13937   __pyx_pybuffer_rhs.pybuffer.buf = NULL;
13938   __pyx_pybuffer_rhs.refcount = 0;
13939   __pyx_pybuffernd_rhs.data = NULL;
13940   __pyx_pybuffernd_rhs.rcbuffer = &__pyx_pybuffer_rhs;
13941   {
13942     __Pyx_BufFmt_StackElem __pyx_stack[1];
13943     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rhs.rcbuffer->pybuffer, (PyObject*)__pyx_v_rhs, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 786, __pyx_L1_error)
13944   }
13945   __pyx_pybuffernd_rhs.diminfo[0].strides = __pyx_pybuffernd_rhs.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rhs.diminfo[0].shape = __pyx_pybuffernd_rhs.rcbuffer->pybuffer.shape[0];
13946 
13947   /* "cylp/cy/CyClpSimplex.pyx":791
13948  *         in it.
13949  *         '''
13950  *         self.CppSelf.getRightHandSide(<double*>rhs.data)             # <<<<<<<<<<<<<<
13951  *
13952  *     def getStatusCode(self):
13953  */
13954   __pyx_v_self->CppSelf->getRightHandSide(((double *)__pyx_v_rhs->data));
13955 
13956   /* "cylp/cy/CyClpSimplex.pyx":786
13957  *     #############################################
13958  *
13959  *     def getRightHandSide(self, np.ndarray[np.double_t, ndim=1] rhs):             # <<<<<<<<<<<<<<
13960  *         '''
13961  *         Take a spare array, ``rhs``, and store the current right-hand-side
13962  */
13963 
13964   /* function exit code */
13965   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13966   goto __pyx_L0;
13967   __pyx_L1_error:;
13968   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
13969     __Pyx_PyThreadState_declare
13970     __Pyx_PyThreadState_assign
13971     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
13972     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rhs.rcbuffer->pybuffer);
13973   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
13974   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getRightHandSide", __pyx_clineno, __pyx_lineno, __pyx_filename);
13975   __pyx_r = NULL;
13976   goto __pyx_L2;
13977   __pyx_L0:;
13978   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rhs.rcbuffer->pybuffer);
13979   __pyx_L2:;
13980   __Pyx_XGIVEREF(__pyx_r);
13981   __Pyx_TraceReturn(__pyx_r, 0);
13982   __Pyx_RefNannyFinishContext();
13983   return __pyx_r;
13984 }
13985 
13986 /* "cylp/cy/CyClpSimplex.pyx":793
13987  *         self.CppSelf.getRightHandSide(<double*>rhs.data)
13988  *
13989  *     def getStatusCode(self):             # <<<<<<<<<<<<<<
13990  *         '''
13991  *         Get the probelm status as defined in CLP. Return value could be:
13992  */
13993 
13994 /* Python wrapper */
13995 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11getStatusCode(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
13996 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10getStatusCode[] = "CyClpSimplex.getStatusCode(self)\n\n        Get the probelm status as defined in CLP. Return value could be:\n\n        * -1 - unknown e.g. before solve or if postSolve says not optimal\n        * 0 - optimal\n        * 1 - primal infeasible\n        * 2 - dual infeasible\n        * 3 - stopped on iterations or time\n        * 4 - stopped due to errors\n        * 5 - stopped by event handler (virtual int ClpEventHandler::event())\n\n        ";
13997 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11getStatusCode(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
13998   PyObject *__pyx_r = 0;
13999   __Pyx_RefNannyDeclarations
14000   __Pyx_RefNannySetupContext("getStatusCode (wrapper)", 0);
14001   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10getStatusCode(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
14002 
14003   /* function exit code */
14004   __Pyx_RefNannyFinishContext();
14005   return __pyx_r;
14006 }
14007 
14008 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10getStatusCode(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
14009   PyObject *__pyx_r = NULL;
14010   __Pyx_TraceDeclarations
14011   __Pyx_RefNannyDeclarations
14012   PyObject *__pyx_t_1 = NULL;
14013   int __pyx_lineno = 0;
14014   const char *__pyx_filename = NULL;
14015   int __pyx_clineno = 0;
14016   __Pyx_RefNannySetupContext("getStatusCode", 0);
14017   __Pyx_TraceCall("getStatusCode", __pyx_f[0], 793, 0, __PYX_ERR(0, 793, __pyx_L1_error));
14018 
14019   /* "cylp/cy/CyClpSimplex.pyx":806
14020  *
14021  *         '''
14022  *         return self.CppSelf.status()             # <<<<<<<<<<<<<<
14023  *
14024  *     def getStatusString(self):
14025  */
14026   __Pyx_XDECREF(__pyx_r);
14027   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->status()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L1_error)
14028   __Pyx_GOTREF(__pyx_t_1);
14029   __pyx_r = __pyx_t_1;
14030   __pyx_t_1 = 0;
14031   goto __pyx_L0;
14032 
14033   /* "cylp/cy/CyClpSimplex.pyx":793
14034  *         self.CppSelf.getRightHandSide(<double*>rhs.data)
14035  *
14036  *     def getStatusCode(self):             # <<<<<<<<<<<<<<
14037  *         '''
14038  *         Get the probelm status as defined in CLP. Return value could be:
14039  */
14040 
14041   /* function exit code */
14042   __pyx_L1_error:;
14043   __Pyx_XDECREF(__pyx_t_1);
14044   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getStatusCode", __pyx_clineno, __pyx_lineno, __pyx_filename);
14045   __pyx_r = NULL;
14046   __pyx_L0:;
14047   __Pyx_XGIVEREF(__pyx_r);
14048   __Pyx_TraceReturn(__pyx_r, 0);
14049   __Pyx_RefNannyFinishContext();
14050   return __pyx_r;
14051 }
14052 
14053 /* "cylp/cy/CyClpSimplex.pyx":808
14054  *         return self.CppSelf.status()
14055  *
14056  *     def getStatusString(self):             # <<<<<<<<<<<<<<
14057  *         '''
14058  *         Return the problem status in string using the code from
14059  */
14060 
14061 /* Python wrapper */
14062 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13getStatusString(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
14063 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12getStatusString[] = "CyClpSimplex.getStatusString(self)\n\n        Return the problem status in string using the code from\n        :func:`getStatusCode`\n        ";
14064 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13getStatusString(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
14065   PyObject *__pyx_r = 0;
14066   __Pyx_RefNannyDeclarations
14067   __Pyx_RefNannySetupContext("getStatusString (wrapper)", 0);
14068   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12getStatusString(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
14069 
14070   /* function exit code */
14071   __Pyx_RefNannyFinishContext();
14072   return __pyx_r;
14073 }
14074 
14075 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12getStatusString(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
14076   PyObject *__pyx_r = NULL;
14077   __Pyx_TraceDeclarations
14078   __Pyx_RefNannyDeclarations
14079   PyObject *__pyx_t_1 = NULL;
14080   PyObject *__pyx_t_2 = NULL;
14081   PyObject *__pyx_t_3 = NULL;
14082   PyObject *__pyx_t_4 = NULL;
14083   int __pyx_lineno = 0;
14084   const char *__pyx_filename = NULL;
14085   int __pyx_clineno = 0;
14086   __Pyx_RefNannySetupContext("getStatusString", 0);
14087   __Pyx_TraceCall("getStatusString", __pyx_f[0], 808, 0, __PYX_ERR(0, 808, __pyx_L1_error));
14088 
14089   /* "cylp/cy/CyClpSimplex.pyx":813
14090  *         :func:`getStatusCode`
14091  *         '''
14092  *         return problemStatus[self.getStatusCode()]             # <<<<<<<<<<<<<<
14093  *
14094  *     def setColumnLower(self, ind, val):
14095  */
14096   __Pyx_XDECREF(__pyx_r);
14097   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L1_error)
14098   __Pyx_GOTREF(__pyx_t_1);
14099   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getStatusCode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 813, __pyx_L1_error)
14100   __Pyx_GOTREF(__pyx_t_3);
14101   __pyx_t_4 = NULL;
14102   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
14103     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
14104     if (likely(__pyx_t_4)) {
14105       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
14106       __Pyx_INCREF(__pyx_t_4);
14107       __Pyx_INCREF(function);
14108       __Pyx_DECREF_SET(__pyx_t_3, function);
14109     }
14110   }
14111   __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
14112   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
14113   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 813, __pyx_L1_error)
14114   __Pyx_GOTREF(__pyx_t_2);
14115   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14116   __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 813, __pyx_L1_error)
14117   __Pyx_GOTREF(__pyx_t_3);
14118   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14119   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14120   __pyx_r = __pyx_t_3;
14121   __pyx_t_3 = 0;
14122   goto __pyx_L0;
14123 
14124   /* "cylp/cy/CyClpSimplex.pyx":808
14125  *         return self.CppSelf.status()
14126  *
14127  *     def getStatusString(self):             # <<<<<<<<<<<<<<
14128  *         '''
14129  *         Return the problem status in string using the code from
14130  */
14131 
14132   /* function exit code */
14133   __pyx_L1_error:;
14134   __Pyx_XDECREF(__pyx_t_1);
14135   __Pyx_XDECREF(__pyx_t_2);
14136   __Pyx_XDECREF(__pyx_t_3);
14137   __Pyx_XDECREF(__pyx_t_4);
14138   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getStatusString", __pyx_clineno, __pyx_lineno, __pyx_filename);
14139   __pyx_r = NULL;
14140   __pyx_L0:;
14141   __Pyx_XGIVEREF(__pyx_r);
14142   __Pyx_TraceReturn(__pyx_r, 0);
14143   __Pyx_RefNannyFinishContext();
14144   return __pyx_r;
14145 }
14146 
14147 /* "cylp/cy/CyClpSimplex.pyx":815
14148  *         return problemStatus[self.getStatusCode()]
14149  *
14150  *     def setColumnLower(self, ind, val):             # <<<<<<<<<<<<<<
14151  *         '''
14152  *         Set the lower bound of variable index ``ind`` to ``val``.
14153  */
14154 
14155 /* Python wrapper */
14156 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15setColumnLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14157 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14setColumnLower[] = "CyClpSimplex.setColumnLower(self, ind, val)\n\n        Set the lower bound of variable index ``ind`` to ``val``.\n        ";
14158 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15setColumnLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14159   PyObject *__pyx_v_ind = 0;
14160   PyObject *__pyx_v_val = 0;
14161   int __pyx_lineno = 0;
14162   const char *__pyx_filename = NULL;
14163   int __pyx_clineno = 0;
14164   PyObject *__pyx_r = 0;
14165   __Pyx_RefNannyDeclarations
14166   __Pyx_RefNannySetupContext("setColumnLower (wrapper)", 0);
14167   {
14168     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ind,&__pyx_n_s_val,0};
14169     PyObject* values[2] = {0,0};
14170     if (unlikely(__pyx_kwds)) {
14171       Py_ssize_t kw_args;
14172       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14173       switch (pos_args) {
14174         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14175         CYTHON_FALLTHROUGH;
14176         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14177         CYTHON_FALLTHROUGH;
14178         case  0: break;
14179         default: goto __pyx_L5_argtuple_error;
14180       }
14181       kw_args = PyDict_Size(__pyx_kwds);
14182       switch (pos_args) {
14183         case  0:
14184         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
14185         else goto __pyx_L5_argtuple_error;
14186         CYTHON_FALLTHROUGH;
14187         case  1:
14188         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
14189         else {
14190           __Pyx_RaiseArgtupleInvalid("setColumnLower", 1, 2, 2, 1); __PYX_ERR(0, 815, __pyx_L3_error)
14191         }
14192       }
14193       if (unlikely(kw_args > 0)) {
14194         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setColumnLower") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
14195       }
14196     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
14197       goto __pyx_L5_argtuple_error;
14198     } else {
14199       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14200       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14201     }
14202     __pyx_v_ind = values[0];
14203     __pyx_v_val = values[1];
14204   }
14205   goto __pyx_L4_argument_unpacking_done;
14206   __pyx_L5_argtuple_error:;
14207   __Pyx_RaiseArgtupleInvalid("setColumnLower", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
14208   __pyx_L3_error:;
14209   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLower", __pyx_clineno, __pyx_lineno, __pyx_filename);
14210   __Pyx_RefNannyFinishContext();
14211   return NULL;
14212   __pyx_L4_argument_unpacking_done:;
14213   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14setColumnLower(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_ind, __pyx_v_val);
14214 
14215   /* function exit code */
14216   __Pyx_RefNannyFinishContext();
14217   return __pyx_r;
14218 }
14219 
14220 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14setColumnLower(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind, PyObject *__pyx_v_val) {
14221   PyObject *__pyx_r = NULL;
14222   __Pyx_TraceDeclarations
14223   __Pyx_RefNannyDeclarations
14224   int __pyx_t_1;
14225   double __pyx_t_2;
14226   int __pyx_lineno = 0;
14227   const char *__pyx_filename = NULL;
14228   int __pyx_clineno = 0;
14229   __Pyx_RefNannySetupContext("setColumnLower", 0);
14230   __Pyx_TraceCall("setColumnLower", __pyx_f[0], 815, 0, __PYX_ERR(0, 815, __pyx_L1_error));
14231 
14232   /* "cylp/cy/CyClpSimplex.pyx":819
14233  *         Set the lower bound of variable index ``ind`` to ``val``.
14234  *         '''
14235  *         self.CppSelf.setColumnLower(ind, val)             # <<<<<<<<<<<<<<
14236  *
14237  *     def setColumnUpper(self, ind, val):
14238  */
14239   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_ind); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L1_error)
14240   __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_val); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L1_error)
14241   __pyx_v_self->CppSelf->setColumnLower(__pyx_t_1, __pyx_t_2);
14242 
14243   /* "cylp/cy/CyClpSimplex.pyx":815
14244  *         return problemStatus[self.getStatusCode()]
14245  *
14246  *     def setColumnLower(self, ind, val):             # <<<<<<<<<<<<<<
14247  *         '''
14248  *         Set the lower bound of variable index ``ind`` to ``val``.
14249  */
14250 
14251   /* function exit code */
14252   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14253   goto __pyx_L0;
14254   __pyx_L1_error:;
14255   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLower", __pyx_clineno, __pyx_lineno, __pyx_filename);
14256   __pyx_r = NULL;
14257   __pyx_L0:;
14258   __Pyx_XGIVEREF(__pyx_r);
14259   __Pyx_TraceReturn(__pyx_r, 0);
14260   __Pyx_RefNannyFinishContext();
14261   return __pyx_r;
14262 }
14263 
14264 /* "cylp/cy/CyClpSimplex.pyx":821
14265  *         self.CppSelf.setColumnLower(ind, val)
14266  *
14267  *     def setColumnUpper(self, ind, val):             # <<<<<<<<<<<<<<
14268  *         '''
14269  *         Set the upper bound of variable index ``ind`` to ``val``.
14270  */
14271 
14272 /* Python wrapper */
14273 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17setColumnUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14274 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16setColumnUpper[] = "CyClpSimplex.setColumnUpper(self, ind, val)\n\n        Set the upper bound of variable index ``ind`` to ``val``.\n        ";
14275 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17setColumnUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14276   PyObject *__pyx_v_ind = 0;
14277   PyObject *__pyx_v_val = 0;
14278   int __pyx_lineno = 0;
14279   const char *__pyx_filename = NULL;
14280   int __pyx_clineno = 0;
14281   PyObject *__pyx_r = 0;
14282   __Pyx_RefNannyDeclarations
14283   __Pyx_RefNannySetupContext("setColumnUpper (wrapper)", 0);
14284   {
14285     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ind,&__pyx_n_s_val,0};
14286     PyObject* values[2] = {0,0};
14287     if (unlikely(__pyx_kwds)) {
14288       Py_ssize_t kw_args;
14289       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14290       switch (pos_args) {
14291         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14292         CYTHON_FALLTHROUGH;
14293         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14294         CYTHON_FALLTHROUGH;
14295         case  0: break;
14296         default: goto __pyx_L5_argtuple_error;
14297       }
14298       kw_args = PyDict_Size(__pyx_kwds);
14299       switch (pos_args) {
14300         case  0:
14301         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
14302         else goto __pyx_L5_argtuple_error;
14303         CYTHON_FALLTHROUGH;
14304         case  1:
14305         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
14306         else {
14307           __Pyx_RaiseArgtupleInvalid("setColumnUpper", 1, 2, 2, 1); __PYX_ERR(0, 821, __pyx_L3_error)
14308         }
14309       }
14310       if (unlikely(kw_args > 0)) {
14311         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setColumnUpper") < 0)) __PYX_ERR(0, 821, __pyx_L3_error)
14312       }
14313     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
14314       goto __pyx_L5_argtuple_error;
14315     } else {
14316       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14317       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14318     }
14319     __pyx_v_ind = values[0];
14320     __pyx_v_val = values[1];
14321   }
14322   goto __pyx_L4_argument_unpacking_done;
14323   __pyx_L5_argtuple_error:;
14324   __Pyx_RaiseArgtupleInvalid("setColumnUpper", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 821, __pyx_L3_error)
14325   __pyx_L3_error:;
14326   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpper", __pyx_clineno, __pyx_lineno, __pyx_filename);
14327   __Pyx_RefNannyFinishContext();
14328   return NULL;
14329   __pyx_L4_argument_unpacking_done:;
14330   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16setColumnUpper(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_ind, __pyx_v_val);
14331 
14332   /* function exit code */
14333   __Pyx_RefNannyFinishContext();
14334   return __pyx_r;
14335 }
14336 
14337 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16setColumnUpper(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind, PyObject *__pyx_v_val) {
14338   PyObject *__pyx_r = NULL;
14339   __Pyx_TraceDeclarations
14340   __Pyx_RefNannyDeclarations
14341   int __pyx_t_1;
14342   double __pyx_t_2;
14343   int __pyx_lineno = 0;
14344   const char *__pyx_filename = NULL;
14345   int __pyx_clineno = 0;
14346   __Pyx_RefNannySetupContext("setColumnUpper", 0);
14347   __Pyx_TraceCall("setColumnUpper", __pyx_f[0], 821, 0, __PYX_ERR(0, 821, __pyx_L1_error));
14348 
14349   /* "cylp/cy/CyClpSimplex.pyx":825
14350  *         Set the upper bound of variable index ``ind`` to ``val``.
14351  *         '''
14352  *         self.CppSelf.setColumnUpper(ind, val)             # <<<<<<<<<<<<<<
14353  *
14354  *     def setRowLower(self, ind, val):
14355  */
14356   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_ind); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 825, __pyx_L1_error)
14357   __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_val); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 825, __pyx_L1_error)
14358   __pyx_v_self->CppSelf->setColumnUpper(__pyx_t_1, __pyx_t_2);
14359 
14360   /* "cylp/cy/CyClpSimplex.pyx":821
14361  *         self.CppSelf.setColumnLower(ind, val)
14362  *
14363  *     def setColumnUpper(self, ind, val):             # <<<<<<<<<<<<<<
14364  *         '''
14365  *         Set the upper bound of variable index ``ind`` to ``val``.
14366  */
14367 
14368   /* function exit code */
14369   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14370   goto __pyx_L0;
14371   __pyx_L1_error:;
14372   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpper", __pyx_clineno, __pyx_lineno, __pyx_filename);
14373   __pyx_r = NULL;
14374   __pyx_L0:;
14375   __Pyx_XGIVEREF(__pyx_r);
14376   __Pyx_TraceReturn(__pyx_r, 0);
14377   __Pyx_RefNannyFinishContext();
14378   return __pyx_r;
14379 }
14380 
14381 /* "cylp/cy/CyClpSimplex.pyx":827
14382  *         self.CppSelf.setColumnUpper(ind, val)
14383  *
14384  *     def setRowLower(self, ind, val):             # <<<<<<<<<<<<<<
14385  *         '''
14386  *         Set the lower bound of constraint index ``ind`` to ``val``.
14387  */
14388 
14389 /* Python wrapper */
14390 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_19setRowLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14391 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18setRowLower[] = "CyClpSimplex.setRowLower(self, ind, val)\n\n        Set the lower bound of constraint index ``ind`` to ``val``.\n        ";
14392 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_19setRowLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14393   PyObject *__pyx_v_ind = 0;
14394   PyObject *__pyx_v_val = 0;
14395   int __pyx_lineno = 0;
14396   const char *__pyx_filename = NULL;
14397   int __pyx_clineno = 0;
14398   PyObject *__pyx_r = 0;
14399   __Pyx_RefNannyDeclarations
14400   __Pyx_RefNannySetupContext("setRowLower (wrapper)", 0);
14401   {
14402     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ind,&__pyx_n_s_val,0};
14403     PyObject* values[2] = {0,0};
14404     if (unlikely(__pyx_kwds)) {
14405       Py_ssize_t kw_args;
14406       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14407       switch (pos_args) {
14408         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14409         CYTHON_FALLTHROUGH;
14410         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14411         CYTHON_FALLTHROUGH;
14412         case  0: break;
14413         default: goto __pyx_L5_argtuple_error;
14414       }
14415       kw_args = PyDict_Size(__pyx_kwds);
14416       switch (pos_args) {
14417         case  0:
14418         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
14419         else goto __pyx_L5_argtuple_error;
14420         CYTHON_FALLTHROUGH;
14421         case  1:
14422         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
14423         else {
14424           __Pyx_RaiseArgtupleInvalid("setRowLower", 1, 2, 2, 1); __PYX_ERR(0, 827, __pyx_L3_error)
14425         }
14426       }
14427       if (unlikely(kw_args > 0)) {
14428         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRowLower") < 0)) __PYX_ERR(0, 827, __pyx_L3_error)
14429       }
14430     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
14431       goto __pyx_L5_argtuple_error;
14432     } else {
14433       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14434       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14435     }
14436     __pyx_v_ind = values[0];
14437     __pyx_v_val = values[1];
14438   }
14439   goto __pyx_L4_argument_unpacking_done;
14440   __pyx_L5_argtuple_error:;
14441   __Pyx_RaiseArgtupleInvalid("setRowLower", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 827, __pyx_L3_error)
14442   __pyx_L3_error:;
14443   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowLower", __pyx_clineno, __pyx_lineno, __pyx_filename);
14444   __Pyx_RefNannyFinishContext();
14445   return NULL;
14446   __pyx_L4_argument_unpacking_done:;
14447   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18setRowLower(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_ind, __pyx_v_val);
14448 
14449   /* function exit code */
14450   __Pyx_RefNannyFinishContext();
14451   return __pyx_r;
14452 }
14453 
14454 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18setRowLower(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind, PyObject *__pyx_v_val) {
14455   PyObject *__pyx_r = NULL;
14456   __Pyx_TraceDeclarations
14457   __Pyx_RefNannyDeclarations
14458   int __pyx_t_1;
14459   double __pyx_t_2;
14460   int __pyx_lineno = 0;
14461   const char *__pyx_filename = NULL;
14462   int __pyx_clineno = 0;
14463   __Pyx_RefNannySetupContext("setRowLower", 0);
14464   __Pyx_TraceCall("setRowLower", __pyx_f[0], 827, 0, __PYX_ERR(0, 827, __pyx_L1_error));
14465 
14466   /* "cylp/cy/CyClpSimplex.pyx":831
14467  *         Set the lower bound of constraint index ``ind`` to ``val``.
14468  *         '''
14469  *         self.CppSelf.setRowLower(ind, val)             # <<<<<<<<<<<<<<
14470  *
14471  *     def setRowUpper(self, ind, val):
14472  */
14473   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_ind); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 831, __pyx_L1_error)
14474   __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_val); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 831, __pyx_L1_error)
14475   __pyx_v_self->CppSelf->setRowLower(__pyx_t_1, __pyx_t_2);
14476 
14477   /* "cylp/cy/CyClpSimplex.pyx":827
14478  *         self.CppSelf.setColumnUpper(ind, val)
14479  *
14480  *     def setRowLower(self, ind, val):             # <<<<<<<<<<<<<<
14481  *         '''
14482  *         Set the lower bound of constraint index ``ind`` to ``val``.
14483  */
14484 
14485   /* function exit code */
14486   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14487   goto __pyx_L0;
14488   __pyx_L1_error:;
14489   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowLower", __pyx_clineno, __pyx_lineno, __pyx_filename);
14490   __pyx_r = NULL;
14491   __pyx_L0:;
14492   __Pyx_XGIVEREF(__pyx_r);
14493   __Pyx_TraceReturn(__pyx_r, 0);
14494   __Pyx_RefNannyFinishContext();
14495   return __pyx_r;
14496 }
14497 
14498 /* "cylp/cy/CyClpSimplex.pyx":833
14499  *         self.CppSelf.setRowLower(ind, val)
14500  *
14501  *     def setRowUpper(self, ind, val):             # <<<<<<<<<<<<<<
14502  *         '''
14503  *         Set the upper bound of constraint index ``ind`` to ``val``.
14504  */
14505 
14506 /* Python wrapper */
14507 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21setRowUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14508 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20setRowUpper[] = "CyClpSimplex.setRowUpper(self, ind, val)\n\n        Set the upper bound of constraint index ``ind`` to ``val``.\n        ";
14509 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21setRowUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14510   PyObject *__pyx_v_ind = 0;
14511   PyObject *__pyx_v_val = 0;
14512   int __pyx_lineno = 0;
14513   const char *__pyx_filename = NULL;
14514   int __pyx_clineno = 0;
14515   PyObject *__pyx_r = 0;
14516   __Pyx_RefNannyDeclarations
14517   __Pyx_RefNannySetupContext("setRowUpper (wrapper)", 0);
14518   {
14519     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ind,&__pyx_n_s_val,0};
14520     PyObject* values[2] = {0,0};
14521     if (unlikely(__pyx_kwds)) {
14522       Py_ssize_t kw_args;
14523       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14524       switch (pos_args) {
14525         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14526         CYTHON_FALLTHROUGH;
14527         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14528         CYTHON_FALLTHROUGH;
14529         case  0: break;
14530         default: goto __pyx_L5_argtuple_error;
14531       }
14532       kw_args = PyDict_Size(__pyx_kwds);
14533       switch (pos_args) {
14534         case  0:
14535         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
14536         else goto __pyx_L5_argtuple_error;
14537         CYTHON_FALLTHROUGH;
14538         case  1:
14539         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
14540         else {
14541           __Pyx_RaiseArgtupleInvalid("setRowUpper", 1, 2, 2, 1); __PYX_ERR(0, 833, __pyx_L3_error)
14542         }
14543       }
14544       if (unlikely(kw_args > 0)) {
14545         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRowUpper") < 0)) __PYX_ERR(0, 833, __pyx_L3_error)
14546       }
14547     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
14548       goto __pyx_L5_argtuple_error;
14549     } else {
14550       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14551       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14552     }
14553     __pyx_v_ind = values[0];
14554     __pyx_v_val = values[1];
14555   }
14556   goto __pyx_L4_argument_unpacking_done;
14557   __pyx_L5_argtuple_error:;
14558   __Pyx_RaiseArgtupleInvalid("setRowUpper", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 833, __pyx_L3_error)
14559   __pyx_L3_error:;
14560   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowUpper", __pyx_clineno, __pyx_lineno, __pyx_filename);
14561   __Pyx_RefNannyFinishContext();
14562   return NULL;
14563   __pyx_L4_argument_unpacking_done:;
14564   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20setRowUpper(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_ind, __pyx_v_val);
14565 
14566   /* function exit code */
14567   __Pyx_RefNannyFinishContext();
14568   return __pyx_r;
14569 }
14570 
14571 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20setRowUpper(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind, PyObject *__pyx_v_val) {
14572   PyObject *__pyx_r = NULL;
14573   __Pyx_TraceDeclarations
14574   __Pyx_RefNannyDeclarations
14575   int __pyx_t_1;
14576   double __pyx_t_2;
14577   int __pyx_lineno = 0;
14578   const char *__pyx_filename = NULL;
14579   int __pyx_clineno = 0;
14580   __Pyx_RefNannySetupContext("setRowUpper", 0);
14581   __Pyx_TraceCall("setRowUpper", __pyx_f[0], 833, 0, __PYX_ERR(0, 833, __pyx_L1_error));
14582 
14583   /* "cylp/cy/CyClpSimplex.pyx":837
14584  *         Set the upper bound of constraint index ``ind`` to ``val``.
14585  *         '''
14586  *         self.CppSelf.setRowUpper(ind, val)             # <<<<<<<<<<<<<<
14587  *
14588  *     def useCustomPrimal(self, customPrimal):
14589  */
14590   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_ind); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 837, __pyx_L1_error)
14591   __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_val); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 837, __pyx_L1_error)
14592   __pyx_v_self->CppSelf->setRowUpper(__pyx_t_1, __pyx_t_2);
14593 
14594   /* "cylp/cy/CyClpSimplex.pyx":833
14595  *         self.CppSelf.setRowLower(ind, val)
14596  *
14597  *     def setRowUpper(self, ind, val):             # <<<<<<<<<<<<<<
14598  *         '''
14599  *         Set the upper bound of constraint index ``ind`` to ``val``.
14600  */
14601 
14602   /* function exit code */
14603   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14604   goto __pyx_L0;
14605   __pyx_L1_error:;
14606   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowUpper", __pyx_clineno, __pyx_lineno, __pyx_filename);
14607   __pyx_r = NULL;
14608   __pyx_L0:;
14609   __Pyx_XGIVEREF(__pyx_r);
14610   __Pyx_TraceReturn(__pyx_r, 0);
14611   __Pyx_RefNannyFinishContext();
14612   return __pyx_r;
14613 }
14614 
14615 /* "cylp/cy/CyClpSimplex.pyx":839
14616  *         self.CppSelf.setRowUpper(ind, val)
14617  *
14618  *     def useCustomPrimal(self, customPrimal):             # <<<<<<<<<<<<<<
14619  *         '''
14620  *         Determines if
14621  */
14622 
14623 /* Python wrapper */
14624 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23useCustomPrimal(PyObject *__pyx_v_self, PyObject *__pyx_v_customPrimal); /*proto*/
14625 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22useCustomPrimal[] = "CyClpSimplex.useCustomPrimal(self, customPrimal)\n\n        Determines if\n        :func:`cylp.python.pivot.PivotPythonBase.isPivotAcceptable`\n        should be called just before each pivot is performed (right after the\n        entering and leaving variables are obtained.\n        ";
14626 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23useCustomPrimal(PyObject *__pyx_v_self, PyObject *__pyx_v_customPrimal) {
14627   PyObject *__pyx_r = 0;
14628   __Pyx_RefNannyDeclarations
14629   __Pyx_RefNannySetupContext("useCustomPrimal (wrapper)", 0);
14630   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22useCustomPrimal(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_customPrimal));
14631 
14632   /* function exit code */
14633   __Pyx_RefNannyFinishContext();
14634   return __pyx_r;
14635 }
14636 
14637 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22useCustomPrimal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_customPrimal) {
14638   PyObject *__pyx_r = NULL;
14639   __Pyx_TraceDeclarations
14640   __Pyx_RefNannyDeclarations
14641   int __pyx_t_1;
14642   int __pyx_lineno = 0;
14643   const char *__pyx_filename = NULL;
14644   int __pyx_clineno = 0;
14645   __Pyx_RefNannySetupContext("useCustomPrimal", 0);
14646   __Pyx_TraceCall("useCustomPrimal", __pyx_f[0], 839, 0, __PYX_ERR(0, 839, __pyx_L1_error));
14647 
14648   /* "cylp/cy/CyClpSimplex.pyx":846
14649  *         entering and leaving variables are obtained.
14650  *         '''
14651  *         self.CppSelf.useCustomPrimal(customPrimal)             # <<<<<<<<<<<<<<
14652  *
14653  *     def getUseCustomPrimal(self):
14654  */
14655   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_customPrimal); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 846, __pyx_L1_error)
14656   __pyx_v_self->CppSelf->useCustomPrimal(__pyx_t_1);
14657 
14658   /* "cylp/cy/CyClpSimplex.pyx":839
14659  *         self.CppSelf.setRowUpper(ind, val)
14660  *
14661  *     def useCustomPrimal(self, customPrimal):             # <<<<<<<<<<<<<<
14662  *         '''
14663  *         Determines if
14664  */
14665 
14666   /* function exit code */
14667   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14668   goto __pyx_L0;
14669   __pyx_L1_error:;
14670   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.useCustomPrimal", __pyx_clineno, __pyx_lineno, __pyx_filename);
14671   __pyx_r = NULL;
14672   __pyx_L0:;
14673   __Pyx_XGIVEREF(__pyx_r);
14674   __Pyx_TraceReturn(__pyx_r, 0);
14675   __Pyx_RefNannyFinishContext();
14676   return __pyx_r;
14677 }
14678 
14679 /* "cylp/cy/CyClpSimplex.pyx":848
14680  *         self.CppSelf.useCustomPrimal(customPrimal)
14681  *
14682  *     def getUseCustomPrimal(self):             # <<<<<<<<<<<<<<
14683  *         '''
14684  *         Return the value of ``useCustomPrimal``. See :func:`useCustomPrimal`.
14685  */
14686 
14687 /* Python wrapper */
14688 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25getUseCustomPrimal(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
14689 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24getUseCustomPrimal[] = "CyClpSimplex.getUseCustomPrimal(self)\n\n        Return the value of ``useCustomPrimal``. See :func:`useCustomPrimal`.\n\n        :rtype: int  :math:`\\in \\{0, 1\\}`\n        ";
14690 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25getUseCustomPrimal(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
14691   PyObject *__pyx_r = 0;
14692   __Pyx_RefNannyDeclarations
14693   __Pyx_RefNannySetupContext("getUseCustomPrimal (wrapper)", 0);
14694   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24getUseCustomPrimal(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
14695 
14696   /* function exit code */
14697   __Pyx_RefNannyFinishContext();
14698   return __pyx_r;
14699 }
14700 
14701 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24getUseCustomPrimal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
14702   PyObject *__pyx_r = NULL;
14703   __Pyx_TraceDeclarations
14704   __Pyx_RefNannyDeclarations
14705   PyObject *__pyx_t_1 = NULL;
14706   int __pyx_lineno = 0;
14707   const char *__pyx_filename = NULL;
14708   int __pyx_clineno = 0;
14709   __Pyx_RefNannySetupContext("getUseCustomPrimal", 0);
14710   __Pyx_TraceCall("getUseCustomPrimal", __pyx_f[0], 848, 0, __PYX_ERR(0, 848, __pyx_L1_error));
14711 
14712   /* "cylp/cy/CyClpSimplex.pyx":854
14713  *         :rtype: int  :math:`\in \{0, 1\}`
14714  *         '''
14715  *         return self.CppSelf.getUseCustomPrimal()             # <<<<<<<<<<<<<<
14716  *
14717  *     def flagged(self, varInd):
14718  */
14719   __Pyx_XDECREF(__pyx_r);
14720   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getUseCustomPrimal()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
14721   __Pyx_GOTREF(__pyx_t_1);
14722   __pyx_r = __pyx_t_1;
14723   __pyx_t_1 = 0;
14724   goto __pyx_L0;
14725 
14726   /* "cylp/cy/CyClpSimplex.pyx":848
14727  *         self.CppSelf.useCustomPrimal(customPrimal)
14728  *
14729  *     def getUseCustomPrimal(self):             # <<<<<<<<<<<<<<
14730  *         '''
14731  *         Return the value of ``useCustomPrimal``. See :func:`useCustomPrimal`.
14732  */
14733 
14734   /* function exit code */
14735   __pyx_L1_error:;
14736   __Pyx_XDECREF(__pyx_t_1);
14737   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getUseCustomPrimal", __pyx_clineno, __pyx_lineno, __pyx_filename);
14738   __pyx_r = NULL;
14739   __pyx_L0:;
14740   __Pyx_XGIVEREF(__pyx_r);
14741   __Pyx_TraceReturn(__pyx_r, 0);
14742   __Pyx_RefNannyFinishContext();
14743   return __pyx_r;
14744 }
14745 
14746 /* "cylp/cy/CyClpSimplex.pyx":856
14747  *         return self.CppSelf.getUseCustomPrimal()
14748  *
14749  *     def flagged(self, varInd):             # <<<<<<<<<<<<<<
14750  *         '''
14751  *         Returns ``1`` if variable index ``varInd`` is flagged.
14752  */
14753 
14754 /* Python wrapper */
14755 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27flagged(PyObject *__pyx_v_self, PyObject *__pyx_v_varInd); /*proto*/
14756 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_26flagged[] = "CyClpSimplex.flagged(self, varInd)\n\n        Returns ``1`` if variable index ``varInd`` is flagged.\n\n        :rtype: int  :math:`\\in \\{0, 1\\}`\n        ";
14757 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27flagged(PyObject *__pyx_v_self, PyObject *__pyx_v_varInd) {
14758   PyObject *__pyx_r = 0;
14759   __Pyx_RefNannyDeclarations
14760   __Pyx_RefNannySetupContext("flagged (wrapper)", 0);
14761   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_26flagged(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_varInd));
14762 
14763   /* function exit code */
14764   __Pyx_RefNannyFinishContext();
14765   return __pyx_r;
14766 }
14767 
14768 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_26flagged(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd) {
14769   PyObject *__pyx_r = NULL;
14770   __Pyx_TraceDeclarations
14771   __Pyx_RefNannyDeclarations
14772   int __pyx_t_1;
14773   PyObject *__pyx_t_2 = NULL;
14774   int __pyx_lineno = 0;
14775   const char *__pyx_filename = NULL;
14776   int __pyx_clineno = 0;
14777   __Pyx_RefNannySetupContext("flagged", 0);
14778   __Pyx_TraceCall("flagged", __pyx_f[0], 856, 0, __PYX_ERR(0, 856, __pyx_L1_error));
14779 
14780   /* "cylp/cy/CyClpSimplex.pyx":862
14781  *         :rtype: int  :math:`\in \{0, 1\}`
14782  *         '''
14783  *         return self.CppSelf.flagged(varInd)             # <<<<<<<<<<<<<<
14784  *
14785  *     def setFlagged(self, varInd):
14786  */
14787   __Pyx_XDECREF(__pyx_r);
14788   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_varInd); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 862, __pyx_L1_error)
14789   __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->flagged(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 862, __pyx_L1_error)
14790   __Pyx_GOTREF(__pyx_t_2);
14791   __pyx_r = __pyx_t_2;
14792   __pyx_t_2 = 0;
14793   goto __pyx_L0;
14794 
14795   /* "cylp/cy/CyClpSimplex.pyx":856
14796  *         return self.CppSelf.getUseCustomPrimal()
14797  *
14798  *     def flagged(self, varInd):             # <<<<<<<<<<<<<<
14799  *         '''
14800  *         Returns ``1`` if variable index ``varInd`` is flagged.
14801  */
14802 
14803   /* function exit code */
14804   __pyx_L1_error:;
14805   __Pyx_XDECREF(__pyx_t_2);
14806   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.flagged", __pyx_clineno, __pyx_lineno, __pyx_filename);
14807   __pyx_r = NULL;
14808   __pyx_L0:;
14809   __Pyx_XGIVEREF(__pyx_r);
14810   __Pyx_TraceReturn(__pyx_r, 0);
14811   __Pyx_RefNannyFinishContext();
14812   return __pyx_r;
14813 }
14814 
14815 /* "cylp/cy/CyClpSimplex.pyx":864
14816  *         return self.CppSelf.flagged(varInd)
14817  *
14818  *     def setFlagged(self, varInd):             # <<<<<<<<<<<<<<
14819  *         '''
14820  *         Set variables index ``varInd`` flagged.
14821  */
14822 
14823 /* Python wrapper */
14824 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_29setFlagged(PyObject *__pyx_v_self, PyObject *__pyx_v_varInd); /*proto*/
14825 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged[] = "CyClpSimplex.setFlagged(self, varInd)\n\n        Set variables index ``varInd`` flagged.\n        ";
14826 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_29setFlagged(PyObject *__pyx_v_self, PyObject *__pyx_v_varInd) {
14827   PyObject *__pyx_r = 0;
14828   __Pyx_RefNannyDeclarations
14829   __Pyx_RefNannySetupContext("setFlagged (wrapper)", 0);
14830   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_varInd));
14831 
14832   /* function exit code */
14833   __Pyx_RefNannyFinishContext();
14834   return __pyx_r;
14835 }
14836 
14837 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd) {
14838   PyObject *__pyx_r = NULL;
14839   __Pyx_TraceDeclarations
14840   __Pyx_RefNannyDeclarations
14841   int __pyx_t_1;
14842   int __pyx_lineno = 0;
14843   const char *__pyx_filename = NULL;
14844   int __pyx_clineno = 0;
14845   __Pyx_RefNannySetupContext("setFlagged", 0);
14846   __Pyx_TraceCall("setFlagged", __pyx_f[0], 864, 0, __PYX_ERR(0, 864, __pyx_L1_error));
14847 
14848   /* "cylp/cy/CyClpSimplex.pyx":868
14849  *         Set variables index ``varInd`` flagged.
14850  *         '''
14851  *         self.CppSelf.setFlagged(varInd)             # <<<<<<<<<<<<<<
14852  *
14853  * ##    def currentDualTolerance(self):
14854  */
14855   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_varInd); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
14856   __pyx_v_self->CppSelf->setFlagged(__pyx_t_1);
14857 
14858   /* "cylp/cy/CyClpSimplex.pyx":864
14859  *         return self.CppSelf.flagged(varInd)
14860  *
14861  *     def setFlagged(self, varInd):             # <<<<<<<<<<<<<<
14862  *         '''
14863  *         Set variables index ``varInd`` flagged.
14864  */
14865 
14866   /* function exit code */
14867   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14868   goto __pyx_L0;
14869   __pyx_L1_error:;
14870   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setFlagged", __pyx_clineno, __pyx_lineno, __pyx_filename);
14871   __pyx_r = NULL;
14872   __pyx_L0:;
14873   __Pyx_XGIVEREF(__pyx_r);
14874   __Pyx_TraceReturn(__pyx_r, 0);
14875   __Pyx_RefNannyFinishContext();
14876   return __pyx_r;
14877 }
14878 
14879 /* "cylp/cy/CyClpSimplex.pyx":873
14880  * ##        return self.CppSelf.currentDualTolerance()
14881  * ##
14882  *     def largestDualError(self):             # <<<<<<<<<<<<<<
14883  *         return self.CppSelf.largestDualError()
14884  *
14885  */
14886 
14887 /* Python wrapper */
14888 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31largestDualError(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
14889 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError[] = "CyClpSimplex.largestDualError(self)";
14890 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31largestDualError(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
14891   PyObject *__pyx_r = 0;
14892   __Pyx_RefNannyDeclarations
14893   __Pyx_RefNannySetupContext("largestDualError (wrapper)", 0);
14894   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
14895 
14896   /* function exit code */
14897   __Pyx_RefNannyFinishContext();
14898   return __pyx_r;
14899 }
14900 
14901 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
14902   PyObject *__pyx_r = NULL;
14903   __Pyx_TraceDeclarations
14904   __Pyx_RefNannyDeclarations
14905   PyObject *__pyx_t_1 = NULL;
14906   int __pyx_lineno = 0;
14907   const char *__pyx_filename = NULL;
14908   int __pyx_clineno = 0;
14909   __Pyx_RefNannySetupContext("largestDualError", 0);
14910   __Pyx_TraceCall("largestDualError", __pyx_f[0], 873, 0, __PYX_ERR(0, 873, __pyx_L1_error));
14911 
14912   /* "cylp/cy/CyClpSimplex.pyx":874
14913  * ##
14914  *     def largestDualError(self):
14915  *         return self.CppSelf.largestDualError()             # <<<<<<<<<<<<<<
14916  *
14917  *     def pivotRow(self):
14918  */
14919   __Pyx_XDECREF(__pyx_r);
14920   __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->largestDualError()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 874, __pyx_L1_error)
14921   __Pyx_GOTREF(__pyx_t_1);
14922   __pyx_r = __pyx_t_1;
14923   __pyx_t_1 = 0;
14924   goto __pyx_L0;
14925 
14926   /* "cylp/cy/CyClpSimplex.pyx":873
14927  * ##        return self.CppSelf.currentDualTolerance()
14928  * ##
14929  *     def largestDualError(self):             # <<<<<<<<<<<<<<
14930  *         return self.CppSelf.largestDualError()
14931  *
14932  */
14933 
14934   /* function exit code */
14935   __pyx_L1_error:;
14936   __Pyx_XDECREF(__pyx_t_1);
14937   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.largestDualError", __pyx_clineno, __pyx_lineno, __pyx_filename);
14938   __pyx_r = NULL;
14939   __pyx_L0:;
14940   __Pyx_XGIVEREF(__pyx_r);
14941   __Pyx_TraceReturn(__pyx_r, 0);
14942   __Pyx_RefNannyFinishContext();
14943   return __pyx_r;
14944 }
14945 
14946 /* "cylp/cy/CyClpSimplex.pyx":876
14947  *         return self.CppSelf.largestDualError()
14948  *
14949  *     def pivotRow(self):             # <<<<<<<<<<<<<<
14950  *         '''
14951  *         Return the index of the constraint corresponding to the (basic) leaving
14952  */
14953 
14954 /* Python wrapper */
14955 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_33pivotRow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
14956 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_32pivotRow[] = "CyClpSimplex.pivotRow(self)\n\n        Return the index of the constraint corresponding to the (basic) leaving\n        variable.\n\n        :rtype: int\n        ";
14957 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_33pivotRow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
14958   PyObject *__pyx_r = 0;
14959   __Pyx_RefNannyDeclarations
14960   __Pyx_RefNannySetupContext("pivotRow (wrapper)", 0);
14961   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_32pivotRow(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
14962 
14963   /* function exit code */
14964   __Pyx_RefNannyFinishContext();
14965   return __pyx_r;
14966 }
14967 
14968 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_32pivotRow(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
14969   PyObject *__pyx_r = NULL;
14970   __Pyx_TraceDeclarations
14971   __Pyx_RefNannyDeclarations
14972   PyObject *__pyx_t_1 = NULL;
14973   int __pyx_lineno = 0;
14974   const char *__pyx_filename = NULL;
14975   int __pyx_clineno = 0;
14976   __Pyx_RefNannySetupContext("pivotRow", 0);
14977   __Pyx_TraceCall("pivotRow", __pyx_f[0], 876, 0, __PYX_ERR(0, 876, __pyx_L1_error));
14978 
14979   /* "cylp/cy/CyClpSimplex.pyx":883
14980  *         :rtype: int
14981  *         '''
14982  *         return self.CppSelf.pivotRow()             # <<<<<<<<<<<<<<
14983  *
14984  *     def setPivotRow(self, v):
14985  */
14986   __Pyx_XDECREF(__pyx_r);
14987   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->pivotRow()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 883, __pyx_L1_error)
14988   __Pyx_GOTREF(__pyx_t_1);
14989   __pyx_r = __pyx_t_1;
14990   __pyx_t_1 = 0;
14991   goto __pyx_L0;
14992 
14993   /* "cylp/cy/CyClpSimplex.pyx":876
14994  *         return self.CppSelf.largestDualError()
14995  *
14996  *     def pivotRow(self):             # <<<<<<<<<<<<<<
14997  *         '''
14998  *         Return the index of the constraint corresponding to the (basic) leaving
14999  */
15000 
15001   /* function exit code */
15002   __pyx_L1_error:;
15003   __Pyx_XDECREF(__pyx_t_1);
15004   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.pivotRow", __pyx_clineno, __pyx_lineno, __pyx_filename);
15005   __pyx_r = NULL;
15006   __pyx_L0:;
15007   __Pyx_XGIVEREF(__pyx_r);
15008   __Pyx_TraceReturn(__pyx_r, 0);
15009   __Pyx_RefNannyFinishContext();
15010   return __pyx_r;
15011 }
15012 
15013 /* "cylp/cy/CyClpSimplex.pyx":885
15014  *         return self.CppSelf.pivotRow()
15015  *
15016  *     def setPivotRow(self, v):             # <<<<<<<<<<<<<<
15017  *         '''
15018  *         Set the ``v``\ 'th variable of the basis as the leaving variable.
15019  */
15020 
15021 /* Python wrapper */
15022 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_35setPivotRow(PyObject *__pyx_v_self, PyObject *__pyx_v_v); /*proto*/
15023 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_34setPivotRow[] = "CyClpSimplex.setPivotRow(self, v)\n\n        Set the ``v``\\ 'th variable of the basis as the leaving variable.\n        ";
15024 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_35setPivotRow(PyObject *__pyx_v_self, PyObject *__pyx_v_v) {
15025   PyObject *__pyx_r = 0;
15026   __Pyx_RefNannyDeclarations
15027   __Pyx_RefNannySetupContext("setPivotRow (wrapper)", 0);
15028   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_34setPivotRow(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_v));
15029 
15030   /* function exit code */
15031   __Pyx_RefNannyFinishContext();
15032   return __pyx_r;
15033 }
15034 
15035 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_34setPivotRow(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_v) {
15036   PyObject *__pyx_r = NULL;
15037   __Pyx_TraceDeclarations
15038   __Pyx_RefNannyDeclarations
15039   int __pyx_t_1;
15040   int __pyx_lineno = 0;
15041   const char *__pyx_filename = NULL;
15042   int __pyx_clineno = 0;
15043   __Pyx_RefNannySetupContext("setPivotRow", 0);
15044   __Pyx_TraceCall("setPivotRow", __pyx_f[0], 885, 0, __PYX_ERR(0, 885, __pyx_L1_error));
15045 
15046   /* "cylp/cy/CyClpSimplex.pyx":889
15047  *         Set the ``v``\ 'th variable of the basis as the leaving variable.
15048  *         '''
15049  *         self.CppSelf.setPivotRow(v)             # <<<<<<<<<<<<<<
15050  *
15051  *     def sequenceIn(self):
15052  */
15053   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_v); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 889, __pyx_L1_error)
15054   __pyx_v_self->CppSelf->setPivotRow(__pyx_t_1);
15055 
15056   /* "cylp/cy/CyClpSimplex.pyx":885
15057  *         return self.CppSelf.pivotRow()
15058  *
15059  *     def setPivotRow(self, v):             # <<<<<<<<<<<<<<
15060  *         '''
15061  *         Set the ``v``\ 'th variable of the basis as the leaving variable.
15062  */
15063 
15064   /* function exit code */
15065   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15066   goto __pyx_L0;
15067   __pyx_L1_error:;
15068   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPivotRow", __pyx_clineno, __pyx_lineno, __pyx_filename);
15069   __pyx_r = NULL;
15070   __pyx_L0:;
15071   __Pyx_XGIVEREF(__pyx_r);
15072   __Pyx_TraceReturn(__pyx_r, 0);
15073   __Pyx_RefNannyFinishContext();
15074   return __pyx_r;
15075 }
15076 
15077 /* "cylp/cy/CyClpSimplex.pyx":891
15078  *         self.CppSelf.setPivotRow(v)
15079  *
15080  *     def sequenceIn(self):             # <<<<<<<<<<<<<<
15081  *         '''
15082  *         Return the index of the entering variable.
15083  */
15084 
15085 /* Python wrapper */
15086 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_37sequenceIn(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
15087 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_36sequenceIn[] = "CyClpSimplex.sequenceIn(self)\n\n        Return the index of the entering variable.\n\n        :rtype: int\n        ";
15088 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_37sequenceIn(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
15089   PyObject *__pyx_r = 0;
15090   __Pyx_RefNannyDeclarations
15091   __Pyx_RefNannySetupContext("sequenceIn (wrapper)", 0);
15092   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_36sequenceIn(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
15093 
15094   /* function exit code */
15095   __Pyx_RefNannyFinishContext();
15096   return __pyx_r;
15097 }
15098 
15099 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_36sequenceIn(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
15100   PyObject *__pyx_r = NULL;
15101   __Pyx_TraceDeclarations
15102   __Pyx_RefNannyDeclarations
15103   PyObject *__pyx_t_1 = NULL;
15104   int __pyx_lineno = 0;
15105   const char *__pyx_filename = NULL;
15106   int __pyx_clineno = 0;
15107   __Pyx_RefNannySetupContext("sequenceIn", 0);
15108   __Pyx_TraceCall("sequenceIn", __pyx_f[0], 891, 0, __PYX_ERR(0, 891, __pyx_L1_error));
15109 
15110   /* "cylp/cy/CyClpSimplex.pyx":897
15111  *         :rtype: int
15112  *         '''
15113  *         return self.CppSelf.sequenceIn()             # <<<<<<<<<<<<<<
15114  *
15115  *     def setSequenceIn(self, v):
15116  */
15117   __Pyx_XDECREF(__pyx_r);
15118   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->sequenceIn()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 897, __pyx_L1_error)
15119   __Pyx_GOTREF(__pyx_t_1);
15120   __pyx_r = __pyx_t_1;
15121   __pyx_t_1 = 0;
15122   goto __pyx_L0;
15123 
15124   /* "cylp/cy/CyClpSimplex.pyx":891
15125  *         self.CppSelf.setPivotRow(v)
15126  *
15127  *     def sequenceIn(self):             # <<<<<<<<<<<<<<
15128  *         '''
15129  *         Return the index of the entering variable.
15130  */
15131 
15132   /* function exit code */
15133   __pyx_L1_error:;
15134   __Pyx_XDECREF(__pyx_t_1);
15135   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.sequenceIn", __pyx_clineno, __pyx_lineno, __pyx_filename);
15136   __pyx_r = NULL;
15137   __pyx_L0:;
15138   __Pyx_XGIVEREF(__pyx_r);
15139   __Pyx_TraceReturn(__pyx_r, 0);
15140   __Pyx_RefNannyFinishContext();
15141   return __pyx_r;
15142 }
15143 
15144 /* "cylp/cy/CyClpSimplex.pyx":899
15145  *         return self.CppSelf.sequenceIn()
15146  *
15147  *     def setSequenceIn(self, v):             # <<<<<<<<<<<<<<
15148  *         '''
15149  *         Set the variable index ``v`` as the entering variable.
15150  */
15151 
15152 /* Python wrapper */
15153 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_39setSequenceIn(PyObject *__pyx_v_self, PyObject *__pyx_v_v); /*proto*/
15154 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_38setSequenceIn[] = "CyClpSimplex.setSequenceIn(self, v)\n\n        Set the variable index ``v`` as the entering variable.\n        ";
15155 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_39setSequenceIn(PyObject *__pyx_v_self, PyObject *__pyx_v_v) {
15156   PyObject *__pyx_r = 0;
15157   __Pyx_RefNannyDeclarations
15158   __Pyx_RefNannySetupContext("setSequenceIn (wrapper)", 0);
15159   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_38setSequenceIn(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_v));
15160 
15161   /* function exit code */
15162   __Pyx_RefNannyFinishContext();
15163   return __pyx_r;
15164 }
15165 
15166 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_38setSequenceIn(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_v) {
15167   PyObject *__pyx_r = NULL;
15168   __Pyx_TraceDeclarations
15169   __Pyx_RefNannyDeclarations
15170   int __pyx_t_1;
15171   int __pyx_lineno = 0;
15172   const char *__pyx_filename = NULL;
15173   int __pyx_clineno = 0;
15174   __Pyx_RefNannySetupContext("setSequenceIn", 0);
15175   __Pyx_TraceCall("setSequenceIn", __pyx_f[0], 899, 0, __PYX_ERR(0, 899, __pyx_L1_error));
15176 
15177   /* "cylp/cy/CyClpSimplex.pyx":903
15178  *         Set the variable index ``v`` as the entering variable.
15179  *         '''
15180  *         self.CppSelf.setSequenceIn(v)             # <<<<<<<<<<<<<<
15181  *
15182  * ##    def dualTolerance(self):
15183  */
15184   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_v); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L1_error)
15185   __pyx_v_self->CppSelf->setSequenceIn(__pyx_t_1);
15186 
15187   /* "cylp/cy/CyClpSimplex.pyx":899
15188  *         return self.CppSelf.sequenceIn()
15189  *
15190  *     def setSequenceIn(self, v):             # <<<<<<<<<<<<<<
15191  *         '''
15192  *         Set the variable index ``v`` as the entering variable.
15193  */
15194 
15195   /* function exit code */
15196   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15197   goto __pyx_L0;
15198   __pyx_L1_error:;
15199   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setSequenceIn", __pyx_clineno, __pyx_lineno, __pyx_filename);
15200   __pyx_r = NULL;
15201   __pyx_L0:;
15202   __Pyx_XGIVEREF(__pyx_r);
15203   __Pyx_TraceReturn(__pyx_r, 0);
15204   __Pyx_RefNannyFinishContext();
15205   return __pyx_r;
15206 }
15207 
15208 /* "cylp/cy/CyClpSimplex.pyx":913
15209  * ##        return self.CppSelf.dualTolerance()
15210  *
15211  *     cdef double* rowLower(self):             # <<<<<<<<<<<<<<
15212  *         '''
15213  *         Return the lower bounds of the constraints as a double*.
15214  */
15215 
15216 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowLower(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
15217   double *__pyx_r;
15218   __Pyx_TraceDeclarations
15219   __Pyx_RefNannyDeclarations
15220   int __pyx_lineno = 0;
15221   const char *__pyx_filename = NULL;
15222   int __pyx_clineno = 0;
15223   __Pyx_RefNannySetupContext("rowLower", 0);
15224   __Pyx_TraceCall("rowLower", __pyx_f[0], 913, 0, __PYX_ERR(0, 913, __pyx_L1_error));
15225 
15226   /* "cylp/cy/CyClpSimplex.pyx":918
15227  *         This can be used only in Cython.
15228  *         '''
15229  *         return self.CppSelf.rowLower()             # <<<<<<<<<<<<<<
15230  *
15231  *     cdef double* rowUpper(self):
15232  */
15233   __pyx_r = __pyx_v_self->CppSelf->rowLower();
15234   goto __pyx_L0;
15235 
15236   /* "cylp/cy/CyClpSimplex.pyx":913
15237  * ##        return self.CppSelf.dualTolerance()
15238  *
15239  *     cdef double* rowLower(self):             # <<<<<<<<<<<<<<
15240  *         '''
15241  *         Return the lower bounds of the constraints as a double*.
15242  */
15243 
15244   /* function exit code */
15245   __pyx_L1_error:;
15246   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.rowLower", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
15247   __pyx_r = 0;
15248   __pyx_L0:;
15249   __Pyx_TraceReturn(Py_None, 0);
15250   __Pyx_RefNannyFinishContext();
15251   return __pyx_r;
15252 }
15253 
15254 /* "cylp/cy/CyClpSimplex.pyx":920
15255  *         return self.CppSelf.rowLower()
15256  *
15257  *     cdef double* rowUpper(self):             # <<<<<<<<<<<<<<
15258  *         '''
15259  *         Return the upper bounds of the constraints as a double*.
15260  */
15261 
15262 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowUpper(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
15263   double *__pyx_r;
15264   __Pyx_TraceDeclarations
15265   __Pyx_RefNannyDeclarations
15266   int __pyx_lineno = 0;
15267   const char *__pyx_filename = NULL;
15268   int __pyx_clineno = 0;
15269   __Pyx_RefNannySetupContext("rowUpper", 0);
15270   __Pyx_TraceCall("rowUpper", __pyx_f[0], 920, 0, __PYX_ERR(0, 920, __pyx_L1_error));
15271 
15272   /* "cylp/cy/CyClpSimplex.pyx":925
15273  *         This can be used only in Cython.
15274  *         '''
15275  *         return self.CppSelf.rowUpper()             # <<<<<<<<<<<<<<
15276  *
15277  *     def getVariableNames(self):
15278  */
15279   __pyx_r = __pyx_v_self->CppSelf->rowUpper();
15280   goto __pyx_L0;
15281 
15282   /* "cylp/cy/CyClpSimplex.pyx":920
15283  *         return self.CppSelf.rowLower()
15284  *
15285  *     cdef double* rowUpper(self):             # <<<<<<<<<<<<<<
15286  *         '''
15287  *         Return the upper bounds of the constraints as a double*.
15288  */
15289 
15290   /* function exit code */
15291   __pyx_L1_error:;
15292   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.rowUpper", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
15293   __pyx_r = 0;
15294   __pyx_L0:;
15295   __Pyx_TraceReturn(Py_None, 0);
15296   __Pyx_RefNannyFinishContext();
15297   return __pyx_r;
15298 }
15299 
15300 /* "cylp/cy/CyClpSimplex.pyx":927
15301  *         return self.CppSelf.rowUpper()
15302  *
15303  *     def getVariableNames(self):             # <<<<<<<<<<<<<<
15304  *         '''
15305  *         Return the variable name. (e.g. that was set in the mps file)
15306  */
15307 
15308 /* Python wrapper */
15309 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_41getVariableNames(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
15310 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_40getVariableNames[] = "CyClpSimplex.getVariableNames(self)\n\n        Return the variable name. (e.g. that was set in the mps file)\n        ";
15311 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_41getVariableNames(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
15312   PyObject *__pyx_r = 0;
15313   __Pyx_RefNannyDeclarations
15314   __Pyx_RefNannySetupContext("getVariableNames (wrapper)", 0);
15315   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_40getVariableNames(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
15316 
15317   /* function exit code */
15318   __Pyx_RefNannyFinishContext();
15319   return __pyx_r;
15320 }
15321 
15322 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_40getVariableNames(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
15323   std::vector<std::string>  __pyx_v_names;
15324   PyObject *__pyx_v_ret = NULL;
15325   std::vector<std::string> ::size_type __pyx_v_i;
15326   PyObject *__pyx_r = NULL;
15327   __Pyx_TraceDeclarations
15328   __Pyx_RefNannyDeclarations
15329   PyObject *__pyx_t_1 = NULL;
15330   std::vector<std::string> ::size_type __pyx_t_2;
15331   std::vector<std::string> ::size_type __pyx_t_3;
15332   std::vector<std::string> ::size_type __pyx_t_4;
15333   int __pyx_t_5;
15334   int __pyx_lineno = 0;
15335   const char *__pyx_filename = NULL;
15336   int __pyx_clineno = 0;
15337   __Pyx_RefNannySetupContext("getVariableNames", 0);
15338   __Pyx_TraceCall("getVariableNames", __pyx_f[0], 927, 0, __PYX_ERR(0, 927, __pyx_L1_error));
15339 
15340   /* "cylp/cy/CyClpSimplex.pyx":931
15341  *         Return the variable name. (e.g. that was set in the mps file)
15342  *         '''
15343  *         cdef vector[string] names = self.CppSelf.getVariableNames()             # <<<<<<<<<<<<<<
15344  *         ret = []
15345  *         for i in range(names.size()):
15346  */
15347   __pyx_v_names = __pyx_v_self->CppSelf->getVariableNames();
15348 
15349   /* "cylp/cy/CyClpSimplex.pyx":932
15350  *         '''
15351  *         cdef vector[string] names = self.CppSelf.getVariableNames()
15352  *         ret = []             # <<<<<<<<<<<<<<
15353  *         for i in range(names.size()):
15354  *             ret.append(names[i].c_str())
15355  */
15356   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 932, __pyx_L1_error)
15357   __Pyx_GOTREF(__pyx_t_1);
15358   __pyx_v_ret = ((PyObject*)__pyx_t_1);
15359   __pyx_t_1 = 0;
15360 
15361   /* "cylp/cy/CyClpSimplex.pyx":933
15362  *         cdef vector[string] names = self.CppSelf.getVariableNames()
15363  *         ret = []
15364  *         for i in range(names.size()):             # <<<<<<<<<<<<<<
15365  *             ret.append(names[i].c_str())
15366  *         return ret
15367  */
15368   __pyx_t_2 = __pyx_v_names.size();
15369   __pyx_t_3 = __pyx_t_2;
15370   for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
15371     __pyx_v_i = __pyx_t_4;
15372 
15373     /* "cylp/cy/CyClpSimplex.pyx":934
15374  *         ret = []
15375  *         for i in range(names.size()):
15376  *             ret.append(names[i].c_str())             # <<<<<<<<<<<<<<
15377  *         return ret
15378  *
15379  */
15380     __pyx_t_1 = __Pyx_PyStr_FromString((__pyx_v_names[__pyx_v_i]).c_str()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 934, __pyx_L1_error)
15381     __Pyx_GOTREF(__pyx_t_1);
15382     __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 934, __pyx_L1_error)
15383     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15384   }
15385 
15386   /* "cylp/cy/CyClpSimplex.pyx":935
15387  *         for i in range(names.size()):
15388  *             ret.append(names[i].c_str())
15389  *         return ret             # <<<<<<<<<<<<<<
15390  *
15391  *     cpdef setVariableName(self, varInd, name):
15392  */
15393   __Pyx_XDECREF(__pyx_r);
15394   __Pyx_INCREF(__pyx_v_ret);
15395   __pyx_r = __pyx_v_ret;
15396   goto __pyx_L0;
15397 
15398   /* "cylp/cy/CyClpSimplex.pyx":927
15399  *         return self.CppSelf.rowUpper()
15400  *
15401  *     def getVariableNames(self):             # <<<<<<<<<<<<<<
15402  *         '''
15403  *         Return the variable name. (e.g. that was set in the mps file)
15404  */
15405 
15406   /* function exit code */
15407   __pyx_L1_error:;
15408   __Pyx_XDECREF(__pyx_t_1);
15409   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getVariableNames", __pyx_clineno, __pyx_lineno, __pyx_filename);
15410   __pyx_r = NULL;
15411   __pyx_L0:;
15412   __Pyx_XDECREF(__pyx_v_ret);
15413   __Pyx_XGIVEREF(__pyx_r);
15414   __Pyx_TraceReturn(__pyx_r, 0);
15415   __Pyx_RefNannyFinishContext();
15416   return __pyx_r;
15417 }
15418 
15419 /* "cylp/cy/CyClpSimplex.pyx":937
15420  *         return ret
15421  *
15422  *     cpdef setVariableName(self, varInd, name):             # <<<<<<<<<<<<<<
15423  *         '''
15424  *         Set the name of variable index ``varInd`` to ``name``.
15425  */
15426 
15427 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15428 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setVariableName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd, PyObject *__pyx_v_name, int __pyx_skip_dispatch) {
15429   PyObject *__pyx_r = NULL;
15430   __Pyx_TraceDeclarations
15431   __Pyx_RefNannyDeclarations
15432   PyObject *__pyx_t_1 = NULL;
15433   PyObject *__pyx_t_2 = NULL;
15434   PyObject *__pyx_t_3 = NULL;
15435   PyObject *__pyx_t_4 = NULL;
15436   int __pyx_t_5;
15437   PyObject *__pyx_t_6 = NULL;
15438   char *__pyx_t_7;
15439   int __pyx_lineno = 0;
15440   const char *__pyx_filename = NULL;
15441   int __pyx_clineno = 0;
15442   __Pyx_RefNannySetupContext("setVariableName", 0);
15443   __Pyx_TraceCall("setVariableName", __pyx_f[0], 937, 0, __PYX_ERR(0, 937, __pyx_L1_error));
15444   /* Check if called by wrapper */
15445   if (unlikely(__pyx_skip_dispatch)) ;
15446   /* Check if overridden in Python */
15447   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
15448     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15449     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15450     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
15451       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15452       #endif
15453       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setVariableName); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 937, __pyx_L1_error)
15454       __Pyx_GOTREF(__pyx_t_1);
15455       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName)) {
15456         __Pyx_XDECREF(__pyx_r);
15457         __Pyx_INCREF(__pyx_t_1);
15458         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
15459         __pyx_t_5 = 0;
15460         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
15461           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
15462           if (likely(__pyx_t_4)) {
15463             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
15464             __Pyx_INCREF(__pyx_t_4);
15465             __Pyx_INCREF(function);
15466             __Pyx_DECREF_SET(__pyx_t_3, function);
15467             __pyx_t_5 = 1;
15468           }
15469         }
15470         #if CYTHON_FAST_PYCALL
15471         if (PyFunction_Check(__pyx_t_3)) {
15472           PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_varInd, __pyx_v_name};
15473           __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 937, __pyx_L1_error)
15474           __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15475           __Pyx_GOTREF(__pyx_t_2);
15476         } else
15477         #endif
15478         #if CYTHON_FAST_PYCCALL
15479         if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
15480           PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_varInd, __pyx_v_name};
15481           __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 937, __pyx_L1_error)
15482           __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15483           __Pyx_GOTREF(__pyx_t_2);
15484         } else
15485         #endif
15486         {
15487           __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 937, __pyx_L1_error)
15488           __Pyx_GOTREF(__pyx_t_6);
15489           if (__pyx_t_4) {
15490             __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
15491           }
15492           __Pyx_INCREF(__pyx_v_varInd);
15493           __Pyx_GIVEREF(__pyx_v_varInd);
15494           PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_varInd);
15495           __Pyx_INCREF(__pyx_v_name);
15496           __Pyx_GIVEREF(__pyx_v_name);
15497           PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_name);
15498           __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 937, __pyx_L1_error)
15499           __Pyx_GOTREF(__pyx_t_2);
15500           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15501         }
15502         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15503         __pyx_r = __pyx_t_2;
15504         __pyx_t_2 = 0;
15505         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15506         goto __pyx_L0;
15507       }
15508       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15509       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15510       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
15511       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
15512         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15513       }
15514       #endif
15515       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15516       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15517     }
15518     #endif
15519   }
15520 
15521   /* "cylp/cy/CyClpSimplex.pyx":947
15522  *
15523  *         '''
15524  *         self.CppSelf.setVariableName(varInd, name)             # <<<<<<<<<<<<<<
15525  *
15526  *     cpdef setConstraintName(self, constInd, name):
15527  */
15528   __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_varInd); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L1_error)
15529   __pyx_t_7 = __Pyx_PyObject_AsWritableString(__pyx_v_name); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L1_error)
15530   __pyx_v_self->CppSelf->setVariableName(__pyx_t_5, __pyx_t_7);
15531 
15532   /* "cylp/cy/CyClpSimplex.pyx":937
15533  *         return ret
15534  *
15535  *     cpdef setVariableName(self, varInd, name):             # <<<<<<<<<<<<<<
15536  *         '''
15537  *         Set the name of variable index ``varInd`` to ``name``.
15538  */
15539 
15540   /* function exit code */
15541   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15542   goto __pyx_L0;
15543   __pyx_L1_error:;
15544   __Pyx_XDECREF(__pyx_t_1);
15545   __Pyx_XDECREF(__pyx_t_2);
15546   __Pyx_XDECREF(__pyx_t_3);
15547   __Pyx_XDECREF(__pyx_t_4);
15548   __Pyx_XDECREF(__pyx_t_6);
15549   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableName", __pyx_clineno, __pyx_lineno, __pyx_filename);
15550   __pyx_r = 0;
15551   __pyx_L0:;
15552   __Pyx_XGIVEREF(__pyx_r);
15553   __Pyx_TraceReturn(__pyx_r, 0);
15554   __Pyx_RefNannyFinishContext();
15555   return __pyx_r;
15556 }
15557 
15558 /* Python wrapper */
15559 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15560 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_42setVariableName[] = "CyClpSimplex.setVariableName(self, varInd, name)\n\n        Set the name of variable index ``varInd`` to ``name``.\n\n        :arg varInd: variable index\n        :type varInd: integer\n        :arg name: desired name for the variable\n        :type name: string\n\n        ";
15561 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15562   PyObject *__pyx_v_varInd = 0;
15563   PyObject *__pyx_v_name = 0;
15564   int __pyx_lineno = 0;
15565   const char *__pyx_filename = NULL;
15566   int __pyx_clineno = 0;
15567   PyObject *__pyx_r = 0;
15568   __Pyx_RefNannyDeclarations
15569   __Pyx_RefNannySetupContext("setVariableName (wrapper)", 0);
15570   {
15571     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_varInd,&__pyx_n_s_name,0};
15572     PyObject* values[2] = {0,0};
15573     if (unlikely(__pyx_kwds)) {
15574       Py_ssize_t kw_args;
15575       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15576       switch (pos_args) {
15577         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15578         CYTHON_FALLTHROUGH;
15579         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15580         CYTHON_FALLTHROUGH;
15581         case  0: break;
15582         default: goto __pyx_L5_argtuple_error;
15583       }
15584       kw_args = PyDict_Size(__pyx_kwds);
15585       switch (pos_args) {
15586         case  0:
15587         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_varInd)) != 0)) kw_args--;
15588         else goto __pyx_L5_argtuple_error;
15589         CYTHON_FALLTHROUGH;
15590         case  1:
15591         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
15592         else {
15593           __Pyx_RaiseArgtupleInvalid("setVariableName", 1, 2, 2, 1); __PYX_ERR(0, 937, __pyx_L3_error)
15594         }
15595       }
15596       if (unlikely(kw_args > 0)) {
15597         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVariableName") < 0)) __PYX_ERR(0, 937, __pyx_L3_error)
15598       }
15599     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
15600       goto __pyx_L5_argtuple_error;
15601     } else {
15602       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15603       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15604     }
15605     __pyx_v_varInd = values[0];
15606     __pyx_v_name = values[1];
15607   }
15608   goto __pyx_L4_argument_unpacking_done;
15609   __pyx_L5_argtuple_error:;
15610   __Pyx_RaiseArgtupleInvalid("setVariableName", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 937, __pyx_L3_error)
15611   __pyx_L3_error:;
15612   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableName", __pyx_clineno, __pyx_lineno, __pyx_filename);
15613   __Pyx_RefNannyFinishContext();
15614   return NULL;
15615   __pyx_L4_argument_unpacking_done:;
15616   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_42setVariableName(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_varInd, __pyx_v_name);
15617 
15618   /* function exit code */
15619   __Pyx_RefNannyFinishContext();
15620   return __pyx_r;
15621 }
15622 
15623 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_42setVariableName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd, PyObject *__pyx_v_name) {
15624   PyObject *__pyx_r = NULL;
15625   __Pyx_TraceDeclarations
15626   __Pyx_RefNannyDeclarations
15627   PyObject *__pyx_t_1 = NULL;
15628   int __pyx_lineno = 0;
15629   const char *__pyx_filename = NULL;
15630   int __pyx_clineno = 0;
15631   __Pyx_RefNannySetupContext("setVariableName", 0);
15632   __Pyx_TraceCall("setVariableName (wrapper)", __pyx_f[0], 937, 0, __PYX_ERR(0, 937, __pyx_L1_error));
15633   __Pyx_XDECREF(__pyx_r);
15634   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setVariableName(__pyx_v_self, __pyx_v_varInd, __pyx_v_name, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 937, __pyx_L1_error)
15635   __Pyx_GOTREF(__pyx_t_1);
15636   __pyx_r = __pyx_t_1;
15637   __pyx_t_1 = 0;
15638   goto __pyx_L0;
15639 
15640   /* function exit code */
15641   __pyx_L1_error:;
15642   __Pyx_XDECREF(__pyx_t_1);
15643   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableName", __pyx_clineno, __pyx_lineno, __pyx_filename);
15644   __pyx_r = NULL;
15645   __pyx_L0:;
15646   __Pyx_XGIVEREF(__pyx_r);
15647   __Pyx_TraceReturn(__pyx_r, 0);
15648   __Pyx_RefNannyFinishContext();
15649   return __pyx_r;
15650 }
15651 
15652 /* "cylp/cy/CyClpSimplex.pyx":949
15653  *         self.CppSelf.setVariableName(varInd, name)
15654  *
15655  *     cpdef setConstraintName(self, constInd, name):             # <<<<<<<<<<<<<<
15656  *         '''
15657  *         Set the name of constraint index ``constInd`` to ``name``.
15658  */
15659 
15660 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15661 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setConstraintName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_constInd, PyObject *__pyx_v_name, int __pyx_skip_dispatch) {
15662   PyObject *__pyx_r = NULL;
15663   __Pyx_TraceDeclarations
15664   __Pyx_RefNannyDeclarations
15665   PyObject *__pyx_t_1 = NULL;
15666   PyObject *__pyx_t_2 = NULL;
15667   PyObject *__pyx_t_3 = NULL;
15668   PyObject *__pyx_t_4 = NULL;
15669   int __pyx_t_5;
15670   PyObject *__pyx_t_6 = NULL;
15671   char *__pyx_t_7;
15672   int __pyx_lineno = 0;
15673   const char *__pyx_filename = NULL;
15674   int __pyx_clineno = 0;
15675   __Pyx_RefNannySetupContext("setConstraintName", 0);
15676   __Pyx_TraceCall("setConstraintName", __pyx_f[0], 949, 0, __PYX_ERR(0, 949, __pyx_L1_error));
15677   /* Check if called by wrapper */
15678   if (unlikely(__pyx_skip_dispatch)) ;
15679   /* Check if overridden in Python */
15680   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
15681     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15682     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15683     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
15684       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15685       #endif
15686       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setConstraintName); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 949, __pyx_L1_error)
15687       __Pyx_GOTREF(__pyx_t_1);
15688       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName)) {
15689         __Pyx_XDECREF(__pyx_r);
15690         __Pyx_INCREF(__pyx_t_1);
15691         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
15692         __pyx_t_5 = 0;
15693         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
15694           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
15695           if (likely(__pyx_t_4)) {
15696             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
15697             __Pyx_INCREF(__pyx_t_4);
15698             __Pyx_INCREF(function);
15699             __Pyx_DECREF_SET(__pyx_t_3, function);
15700             __pyx_t_5 = 1;
15701           }
15702         }
15703         #if CYTHON_FAST_PYCALL
15704         if (PyFunction_Check(__pyx_t_3)) {
15705           PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_constInd, __pyx_v_name};
15706           __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 949, __pyx_L1_error)
15707           __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15708           __Pyx_GOTREF(__pyx_t_2);
15709         } else
15710         #endif
15711         #if CYTHON_FAST_PYCCALL
15712         if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
15713           PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_constInd, __pyx_v_name};
15714           __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 949, __pyx_L1_error)
15715           __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15716           __Pyx_GOTREF(__pyx_t_2);
15717         } else
15718         #endif
15719         {
15720           __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 949, __pyx_L1_error)
15721           __Pyx_GOTREF(__pyx_t_6);
15722           if (__pyx_t_4) {
15723             __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
15724           }
15725           __Pyx_INCREF(__pyx_v_constInd);
15726           __Pyx_GIVEREF(__pyx_v_constInd);
15727           PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_constInd);
15728           __Pyx_INCREF(__pyx_v_name);
15729           __Pyx_GIVEREF(__pyx_v_name);
15730           PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_name);
15731           __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 949, __pyx_L1_error)
15732           __Pyx_GOTREF(__pyx_t_2);
15733           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15734         }
15735         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15736         __pyx_r = __pyx_t_2;
15737         __pyx_t_2 = 0;
15738         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15739         goto __pyx_L0;
15740       }
15741       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15742       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15743       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
15744       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
15745         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15746       }
15747       #endif
15748       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15749       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15750     }
15751     #endif
15752   }
15753 
15754   /* "cylp/cy/CyClpSimplex.pyx":959
15755  *
15756  *         '''
15757  *         self.CppSelf.setConstraintName(constInd, name)             # <<<<<<<<<<<<<<
15758  *
15759  *     cdef int* pivotVariable(self):
15760  */
15761   __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_constInd); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L1_error)
15762   __pyx_t_7 = __Pyx_PyObject_AsWritableString(__pyx_v_name); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L1_error)
15763   __pyx_v_self->CppSelf->setConstraintName(__pyx_t_5, __pyx_t_7);
15764 
15765   /* "cylp/cy/CyClpSimplex.pyx":949
15766  *         self.CppSelf.setVariableName(varInd, name)
15767  *
15768  *     cpdef setConstraintName(self, constInd, name):             # <<<<<<<<<<<<<<
15769  *         '''
15770  *         Set the name of constraint index ``constInd`` to ``name``.
15771  */
15772 
15773   /* function exit code */
15774   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15775   goto __pyx_L0;
15776   __pyx_L1_error:;
15777   __Pyx_XDECREF(__pyx_t_1);
15778   __Pyx_XDECREF(__pyx_t_2);
15779   __Pyx_XDECREF(__pyx_t_3);
15780   __Pyx_XDECREF(__pyx_t_4);
15781   __Pyx_XDECREF(__pyx_t_6);
15782   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintName", __pyx_clineno, __pyx_lineno, __pyx_filename);
15783   __pyx_r = 0;
15784   __pyx_L0:;
15785   __Pyx_XGIVEREF(__pyx_r);
15786   __Pyx_TraceReturn(__pyx_r, 0);
15787   __Pyx_RefNannyFinishContext();
15788   return __pyx_r;
15789 }
15790 
15791 /* Python wrapper */
15792 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15793 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_44setConstraintName[] = "CyClpSimplex.setConstraintName(self, constInd, name)\n\n        Set the name of constraint index ``constInd`` to ``name``.\n\n        :arg constInd: constraint index\n        :type constInd: integer\n        :arg name: desired name for the constraint\n        :type name: string\n\n        ";
15794 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15795   PyObject *__pyx_v_constInd = 0;
15796   PyObject *__pyx_v_name = 0;
15797   int __pyx_lineno = 0;
15798   const char *__pyx_filename = NULL;
15799   int __pyx_clineno = 0;
15800   PyObject *__pyx_r = 0;
15801   __Pyx_RefNannyDeclarations
15802   __Pyx_RefNannySetupContext("setConstraintName (wrapper)", 0);
15803   {
15804     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_constInd,&__pyx_n_s_name,0};
15805     PyObject* values[2] = {0,0};
15806     if (unlikely(__pyx_kwds)) {
15807       Py_ssize_t kw_args;
15808       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15809       switch (pos_args) {
15810         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15811         CYTHON_FALLTHROUGH;
15812         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15813         CYTHON_FALLTHROUGH;
15814         case  0: break;
15815         default: goto __pyx_L5_argtuple_error;
15816       }
15817       kw_args = PyDict_Size(__pyx_kwds);
15818       switch (pos_args) {
15819         case  0:
15820         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_constInd)) != 0)) kw_args--;
15821         else goto __pyx_L5_argtuple_error;
15822         CYTHON_FALLTHROUGH;
15823         case  1:
15824         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
15825         else {
15826           __Pyx_RaiseArgtupleInvalid("setConstraintName", 1, 2, 2, 1); __PYX_ERR(0, 949, __pyx_L3_error)
15827         }
15828       }
15829       if (unlikely(kw_args > 0)) {
15830         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstraintName") < 0)) __PYX_ERR(0, 949, __pyx_L3_error)
15831       }
15832     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
15833       goto __pyx_L5_argtuple_error;
15834     } else {
15835       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15836       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15837     }
15838     __pyx_v_constInd = values[0];
15839     __pyx_v_name = values[1];
15840   }
15841   goto __pyx_L4_argument_unpacking_done;
15842   __pyx_L5_argtuple_error:;
15843   __Pyx_RaiseArgtupleInvalid("setConstraintName", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 949, __pyx_L3_error)
15844   __pyx_L3_error:;
15845   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintName", __pyx_clineno, __pyx_lineno, __pyx_filename);
15846   __Pyx_RefNannyFinishContext();
15847   return NULL;
15848   __pyx_L4_argument_unpacking_done:;
15849   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_44setConstraintName(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_constInd, __pyx_v_name);
15850 
15851   /* function exit code */
15852   __Pyx_RefNannyFinishContext();
15853   return __pyx_r;
15854 }
15855 
15856 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_44setConstraintName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_constInd, PyObject *__pyx_v_name) {
15857   PyObject *__pyx_r = NULL;
15858   __Pyx_TraceDeclarations
15859   __Pyx_RefNannyDeclarations
15860   PyObject *__pyx_t_1 = NULL;
15861   int __pyx_lineno = 0;
15862   const char *__pyx_filename = NULL;
15863   int __pyx_clineno = 0;
15864   __Pyx_RefNannySetupContext("setConstraintName", 0);
15865   __Pyx_TraceCall("setConstraintName (wrapper)", __pyx_f[0], 949, 0, __PYX_ERR(0, 949, __pyx_L1_error));
15866   __Pyx_XDECREF(__pyx_r);
15867   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setConstraintName(__pyx_v_self, __pyx_v_constInd, __pyx_v_name, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 949, __pyx_L1_error)
15868   __Pyx_GOTREF(__pyx_t_1);
15869   __pyx_r = __pyx_t_1;
15870   __pyx_t_1 = 0;
15871   goto __pyx_L0;
15872 
15873   /* function exit code */
15874   __pyx_L1_error:;
15875   __Pyx_XDECREF(__pyx_t_1);
15876   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintName", __pyx_clineno, __pyx_lineno, __pyx_filename);
15877   __pyx_r = NULL;
15878   __pyx_L0:;
15879   __Pyx_XGIVEREF(__pyx_r);
15880   __Pyx_TraceReturn(__pyx_r, 0);
15881   __Pyx_RefNannyFinishContext();
15882   return __pyx_r;
15883 }
15884 
15885 /* "cylp/cy/CyClpSimplex.pyx":961
15886  *         self.CppSelf.setConstraintName(constInd, name)
15887  *
15888  *     cdef int* pivotVariable(self):             # <<<<<<<<<<<<<<
15889  *         '''
15890  *         Return the index set of the basic variables.
15891  */
15892 
15893 static int *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_pivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
15894   int *__pyx_r;
15895   __Pyx_TraceDeclarations
15896   __Pyx_RefNannyDeclarations
15897   int __pyx_lineno = 0;
15898   const char *__pyx_filename = NULL;
15899   int __pyx_clineno = 0;
15900   __Pyx_RefNannySetupContext("pivotVariable", 0);
15901   __Pyx_TraceCall("pivotVariable", __pyx_f[0], 961, 0, __PYX_ERR(0, 961, __pyx_L1_error));
15902 
15903   /* "cylp/cy/CyClpSimplex.pyx":967
15904  *         :rtype: int*
15905  *         '''
15906  *         return self.CppSelf.pivotVariable()             # <<<<<<<<<<<<<<
15907  *
15908  *     cpdef  getPivotVariable(self):
15909  */
15910   __pyx_r = __pyx_v_self->CppSelf->pivotVariable();
15911   goto __pyx_L0;
15912 
15913   /* "cylp/cy/CyClpSimplex.pyx":961
15914  *         self.CppSelf.setConstraintName(constInd, name)
15915  *
15916  *     cdef int* pivotVariable(self):             # <<<<<<<<<<<<<<
15917  *         '''
15918  *         Return the index set of the basic variables.
15919  */
15920 
15921   /* function exit code */
15922   __pyx_L1_error:;
15923   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.pivotVariable", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
15924   __pyx_r = 0;
15925   __pyx_L0:;
15926   __Pyx_TraceReturn(Py_None, 0);
15927   __Pyx_RefNannyFinishContext();
15928   return __pyx_r;
15929 }
15930 
15931 /* "cylp/cy/CyClpSimplex.pyx":969
15932  *         return self.CppSelf.pivotVariable()
15933  *
15934  *     cpdef  getPivotVariable(self):             # <<<<<<<<<<<<<<
15935  *         '''
15936  *         Return the index set of the basic variables.
15937  */
15938 
15939 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
15940 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getPivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch) {
15941   PyObject *__pyx_r = NULL;
15942   __Pyx_TraceDeclarations
15943   __Pyx_RefNannyDeclarations
15944   PyObject *__pyx_t_1 = NULL;
15945   PyObject *__pyx_t_2 = NULL;
15946   PyObject *__pyx_t_3 = NULL;
15947   PyObject *__pyx_t_4 = NULL;
15948   PyObject *__pyx_t_5;
15949   int __pyx_lineno = 0;
15950   const char *__pyx_filename = NULL;
15951   int __pyx_clineno = 0;
15952   __Pyx_RefNannySetupContext("getPivotVariable", 0);
15953   __Pyx_TraceCall("getPivotVariable", __pyx_f[0], 969, 0, __PYX_ERR(0, 969, __pyx_L1_error));
15954   /* Check if called by wrapper */
15955   if (unlikely(__pyx_skip_dispatch)) ;
15956   /* Check if overridden in Python */
15957   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
15958     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15959     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15960     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
15961       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15962       #endif
15963       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getPivotVariable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L1_error)
15964       __Pyx_GOTREF(__pyx_t_1);
15965       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable)) {
15966         __Pyx_XDECREF(__pyx_r);
15967         __Pyx_INCREF(__pyx_t_1);
15968         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
15969         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
15970           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
15971           if (likely(__pyx_t_4)) {
15972             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
15973             __Pyx_INCREF(__pyx_t_4);
15974             __Pyx_INCREF(function);
15975             __Pyx_DECREF_SET(__pyx_t_3, function);
15976           }
15977         }
15978         __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
15979         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15980         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 969, __pyx_L1_error)
15981         __Pyx_GOTREF(__pyx_t_2);
15982         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15983         __pyx_r = __pyx_t_2;
15984         __pyx_t_2 = 0;
15985         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15986         goto __pyx_L0;
15987       }
15988       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15989       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
15990       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
15991       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
15992         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
15993       }
15994       #endif
15995       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15996       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
15997     }
15998     #endif
15999   }
16000 
16001   /* "cylp/cy/CyClpSimplex.pyx":975
16002  *         :rtype: Numpy array
16003  *         '''
16004  *         return <object>self.CppSelf.getPivotVariable()             # <<<<<<<<<<<<<<
16005  *
16006  *     cpdef CLP_getVarStatus(self, int sequence):
16007  */
16008   __Pyx_XDECREF(__pyx_r);
16009   __pyx_t_5 = __pyx_v_self->CppSelf->getPivotVariable();
16010   __Pyx_INCREF(((PyObject *)__pyx_t_5));
16011   __pyx_r = ((PyObject *)__pyx_t_5);
16012   goto __pyx_L0;
16013 
16014   /* "cylp/cy/CyClpSimplex.pyx":969
16015  *         return self.CppSelf.pivotVariable()
16016  *
16017  *     cpdef  getPivotVariable(self):             # <<<<<<<<<<<<<<
16018  *         '''
16019  *         Return the index set of the basic variables.
16020  */
16021 
16022   /* function exit code */
16023   __pyx_L1_error:;
16024   __Pyx_XDECREF(__pyx_t_1);
16025   __Pyx_XDECREF(__pyx_t_2);
16026   __Pyx_XDECREF(__pyx_t_3);
16027   __Pyx_XDECREF(__pyx_t_4);
16028   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getPivotVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
16029   __pyx_r = 0;
16030   __pyx_L0:;
16031   __Pyx_XGIVEREF(__pyx_r);
16032   __Pyx_TraceReturn(__pyx_r, 0);
16033   __Pyx_RefNannyFinishContext();
16034   return __pyx_r;
16035 }
16036 
16037 /* Python wrapper */
16038 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
16039 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_46getPivotVariable[] = "CyClpSimplex.getPivotVariable(self)\n\n        Return the index set of the basic variables.\n\n        :rtype: Numpy array\n        ";
16040 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
16041   PyObject *__pyx_r = 0;
16042   __Pyx_RefNannyDeclarations
16043   __Pyx_RefNannySetupContext("getPivotVariable (wrapper)", 0);
16044   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_46getPivotVariable(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
16045 
16046   /* function exit code */
16047   __Pyx_RefNannyFinishContext();
16048   return __pyx_r;
16049 }
16050 
16051 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_46getPivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
16052   PyObject *__pyx_r = NULL;
16053   __Pyx_TraceDeclarations
16054   __Pyx_RefNannyDeclarations
16055   PyObject *__pyx_t_1 = NULL;
16056   int __pyx_lineno = 0;
16057   const char *__pyx_filename = NULL;
16058   int __pyx_clineno = 0;
16059   __Pyx_RefNannySetupContext("getPivotVariable", 0);
16060   __Pyx_TraceCall("getPivotVariable (wrapper)", __pyx_f[0], 969, 0, __PYX_ERR(0, 969, __pyx_L1_error));
16061   __Pyx_XDECREF(__pyx_r);
16062   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getPivotVariable(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L1_error)
16063   __Pyx_GOTREF(__pyx_t_1);
16064   __pyx_r = __pyx_t_1;
16065   __pyx_t_1 = 0;
16066   goto __pyx_L0;
16067 
16068   /* function exit code */
16069   __pyx_L1_error:;
16070   __Pyx_XDECREF(__pyx_t_1);
16071   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getPivotVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
16072   __pyx_r = NULL;
16073   __pyx_L0:;
16074   __Pyx_XGIVEREF(__pyx_r);
16075   __Pyx_TraceReturn(__pyx_r, 0);
16076   __Pyx_RefNannyFinishContext();
16077   return __pyx_r;
16078 }
16079 
16080 /* "cylp/cy/CyClpSimplex.pyx":977
16081  *         return <object>self.CppSelf.getPivotVariable()
16082  *
16083  *     cpdef CLP_getVarStatus(self, int sequence):             # <<<<<<<<<<<<<<
16084  *         '''
16085  *         get the status of a variable
16086  */
16087 
16088 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_arg_sequence); /*proto*/
16089 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_CLP_getVarStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_sequence, int __pyx_skip_dispatch) {
16090   PyObject *__pyx_r = NULL;
16091   __Pyx_TraceDeclarations
16092   __Pyx_RefNannyDeclarations
16093   PyObject *__pyx_t_1 = NULL;
16094   PyObject *__pyx_t_2 = NULL;
16095   PyObject *__pyx_t_3 = NULL;
16096   PyObject *__pyx_t_4 = NULL;
16097   PyObject *__pyx_t_5 = NULL;
16098   int __pyx_lineno = 0;
16099   const char *__pyx_filename = NULL;
16100   int __pyx_clineno = 0;
16101   __Pyx_RefNannySetupContext("CLP_getVarStatus", 0);
16102   __Pyx_TraceCall("CLP_getVarStatus", __pyx_f[0], 977, 0, __PYX_ERR(0, 977, __pyx_L1_error));
16103   /* Check if called by wrapper */
16104   if (unlikely(__pyx_skip_dispatch)) ;
16105   /* Check if overridden in Python */
16106   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
16107     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
16108     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
16109     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
16110       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
16111       #endif
16112       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_CLP_getVarStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 977, __pyx_L1_error)
16113       __Pyx_GOTREF(__pyx_t_1);
16114       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus)) {
16115         __Pyx_XDECREF(__pyx_r);
16116         __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_sequence); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 977, __pyx_L1_error)
16117         __Pyx_GOTREF(__pyx_t_3);
16118         __Pyx_INCREF(__pyx_t_1);
16119         __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
16120         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
16121           __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
16122           if (likely(__pyx_t_5)) {
16123             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
16124             __Pyx_INCREF(__pyx_t_5);
16125             __Pyx_INCREF(function);
16126             __Pyx_DECREF_SET(__pyx_t_4, function);
16127           }
16128         }
16129         __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
16130         __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
16131         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16132         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 977, __pyx_L1_error)
16133         __Pyx_GOTREF(__pyx_t_2);
16134         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16135         __pyx_r = __pyx_t_2;
16136         __pyx_t_2 = 0;
16137         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16138         goto __pyx_L0;
16139       }
16140       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
16141       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
16142       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
16143       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
16144         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
16145       }
16146       #endif
16147       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16148       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
16149     }
16150     #endif
16151   }
16152 
16153   /* "cylp/cy/CyClpSimplex.pyx":990
16154  *         :rtype: int
16155  *         '''
16156  *         return self.CppSelf.getStatus(sequence)             # <<<<<<<<<<<<<<
16157  *
16158  *     cpdef CLP_setVarStatus(self, int sequence, int status):
16159  */
16160   __Pyx_XDECREF(__pyx_r);
16161   __pyx_t_1 = __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(__pyx_v_self->CppSelf->getStatus(__pyx_v_sequence)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 990, __pyx_L1_error)
16162   __Pyx_GOTREF(__pyx_t_1);
16163   __pyx_r = __pyx_t_1;
16164   __pyx_t_1 = 0;
16165   goto __pyx_L0;
16166 
16167   /* "cylp/cy/CyClpSimplex.pyx":977
16168  *         return <object>self.CppSelf.getPivotVariable()
16169  *
16170  *     cpdef CLP_getVarStatus(self, int sequence):             # <<<<<<<<<<<<<<
16171  *         '''
16172  *         get the status of a variable
16173  */
16174 
16175   /* function exit code */
16176   __pyx_L1_error:;
16177   __Pyx_XDECREF(__pyx_t_1);
16178   __Pyx_XDECREF(__pyx_t_2);
16179   __Pyx_XDECREF(__pyx_t_3);
16180   __Pyx_XDECREF(__pyx_t_4);
16181   __Pyx_XDECREF(__pyx_t_5);
16182   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_getVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
16183   __pyx_r = 0;
16184   __pyx_L0:;
16185   __Pyx_XGIVEREF(__pyx_r);
16186   __Pyx_TraceReturn(__pyx_r, 0);
16187   __Pyx_RefNannyFinishContext();
16188   return __pyx_r;
16189 }
16190 
16191 /* Python wrapper */
16192 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_arg_sequence); /*proto*/
16193 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_48CLP_getVarStatus[] = "CyClpSimplex.CLP_getVarStatus(self, int sequence)\n\n        get the status of a variable\n\n        * free : 0\n        * basic : 1\n        * atUpperBound : 2\n        * atLowerBound : 3\n        * superBasic : 4\n        * fixed : 5\n\n        :rtype: int\n        ";
16194 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_arg_sequence) {
16195   int __pyx_v_sequence;
16196   int __pyx_lineno = 0;
16197   const char *__pyx_filename = NULL;
16198   int __pyx_clineno = 0;
16199   PyObject *__pyx_r = 0;
16200   __Pyx_RefNannyDeclarations
16201   __Pyx_RefNannySetupContext("CLP_getVarStatus (wrapper)", 0);
16202   assert(__pyx_arg_sequence); {
16203     __pyx_v_sequence = __Pyx_PyInt_As_int(__pyx_arg_sequence); if (unlikely((__pyx_v_sequence == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
16204   }
16205   goto __pyx_L4_argument_unpacking_done;
16206   __pyx_L3_error:;
16207   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_getVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
16208   __Pyx_RefNannyFinishContext();
16209   return NULL;
16210   __pyx_L4_argument_unpacking_done:;
16211   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_48CLP_getVarStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((int)__pyx_v_sequence));
16212 
16213   /* function exit code */
16214   __Pyx_RefNannyFinishContext();
16215   return __pyx_r;
16216 }
16217 
16218 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_48CLP_getVarStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_sequence) {
16219   PyObject *__pyx_r = NULL;
16220   __Pyx_TraceDeclarations
16221   __Pyx_RefNannyDeclarations
16222   PyObject *__pyx_t_1 = NULL;
16223   int __pyx_lineno = 0;
16224   const char *__pyx_filename = NULL;
16225   int __pyx_clineno = 0;
16226   __Pyx_RefNannySetupContext("CLP_getVarStatus", 0);
16227   __Pyx_TraceCall("CLP_getVarStatus (wrapper)", __pyx_f[0], 977, 0, __PYX_ERR(0, 977, __pyx_L1_error));
16228   __Pyx_XDECREF(__pyx_r);
16229   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_CLP_getVarStatus(__pyx_v_self, __pyx_v_sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 977, __pyx_L1_error)
16230   __Pyx_GOTREF(__pyx_t_1);
16231   __pyx_r = __pyx_t_1;
16232   __pyx_t_1 = 0;
16233   goto __pyx_L0;
16234 
16235   /* function exit code */
16236   __pyx_L1_error:;
16237   __Pyx_XDECREF(__pyx_t_1);
16238   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_getVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
16239   __pyx_r = NULL;
16240   __pyx_L0:;
16241   __Pyx_XGIVEREF(__pyx_r);
16242   __Pyx_TraceReturn(__pyx_r, 0);
16243   __Pyx_RefNannyFinishContext();
16244   return __pyx_r;
16245 }
16246 
16247 /* "cylp/cy/CyClpSimplex.pyx":992
16248  *         return self.CppSelf.getStatus(sequence)
16249  *
16250  *     cpdef CLP_setVarStatus(self, int sequence, int status):             # <<<<<<<<<<<<<<
16251  *         '''
16252  *         set the status of a variable
16253  */
16254 
16255 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_51CLP_setVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16256 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_CLP_setVarStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_sequence, int __pyx_v_status, int __pyx_skip_dispatch) {
16257   PyObject *__pyx_r = NULL;
16258   __Pyx_TraceDeclarations
16259   __Pyx_RefNannyDeclarations
16260   PyObject *__pyx_t_1 = NULL;
16261   PyObject *__pyx_t_2 = NULL;
16262   PyObject *__pyx_t_3 = NULL;
16263   PyObject *__pyx_t_4 = NULL;
16264   PyObject *__pyx_t_5 = NULL;
16265   PyObject *__pyx_t_6 = NULL;
16266   int __pyx_t_7;
16267   PyObject *__pyx_t_8 = NULL;
16268   enum IClpSimplex::Status __pyx_t_9;
16269   int __pyx_lineno = 0;
16270   const char *__pyx_filename = NULL;
16271   int __pyx_clineno = 0;
16272   __Pyx_RefNannySetupContext("CLP_setVarStatus", 0);
16273   __Pyx_TraceCall("CLP_setVarStatus", __pyx_f[0], 992, 0, __PYX_ERR(0, 992, __pyx_L1_error));
16274   /* Check if called by wrapper */
16275   if (unlikely(__pyx_skip_dispatch)) ;
16276   /* Check if overridden in Python */
16277   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
16278     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
16279     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
16280     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
16281       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
16282       #endif
16283       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_CLP_setVarStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 992, __pyx_L1_error)
16284       __Pyx_GOTREF(__pyx_t_1);
16285       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_51CLP_setVarStatus)) {
16286         __Pyx_XDECREF(__pyx_r);
16287         __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_sequence); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
16288         __Pyx_GOTREF(__pyx_t_3);
16289         __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_status); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 992, __pyx_L1_error)
16290         __Pyx_GOTREF(__pyx_t_4);
16291         __Pyx_INCREF(__pyx_t_1);
16292         __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
16293         __pyx_t_7 = 0;
16294         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
16295           __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
16296           if (likely(__pyx_t_6)) {
16297             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
16298             __Pyx_INCREF(__pyx_t_6);
16299             __Pyx_INCREF(function);
16300             __Pyx_DECREF_SET(__pyx_t_5, function);
16301             __pyx_t_7 = 1;
16302           }
16303         }
16304         #if CYTHON_FAST_PYCALL
16305         if (PyFunction_Check(__pyx_t_5)) {
16306           PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
16307           __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 992, __pyx_L1_error)
16308           __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
16309           __Pyx_GOTREF(__pyx_t_2);
16310           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16311           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16312         } else
16313         #endif
16314         #if CYTHON_FAST_PYCCALL
16315         if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
16316           PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
16317           __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 992, __pyx_L1_error)
16318           __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
16319           __Pyx_GOTREF(__pyx_t_2);
16320           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16321           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16322         } else
16323         #endif
16324         {
16325           __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 992, __pyx_L1_error)
16326           __Pyx_GOTREF(__pyx_t_8);
16327           if (__pyx_t_6) {
16328             __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
16329           }
16330           __Pyx_GIVEREF(__pyx_t_3);
16331           PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
16332           __Pyx_GIVEREF(__pyx_t_4);
16333           PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4);
16334           __pyx_t_3 = 0;
16335           __pyx_t_4 = 0;
16336           __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 992, __pyx_L1_error)
16337           __Pyx_GOTREF(__pyx_t_2);
16338           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
16339         }
16340         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
16341         __pyx_r = __pyx_t_2;
16342         __pyx_t_2 = 0;
16343         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16344         goto __pyx_L0;
16345       }
16346       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
16347       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
16348       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
16349       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
16350         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
16351       }
16352       #endif
16353       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16354       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
16355     }
16356     #endif
16357   }
16358 
16359   /* "cylp/cy/CyClpSimplex.pyx":1004
16360  *
16361  *         '''
16362  *         self.CppSelf.setStatus(sequence, CLP_variableStatusEnum[status])             # <<<<<<<<<<<<<<
16363  *
16364  *     def setVariableStatus(self, arg, status):
16365  */
16366   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CLP_variableStatusEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1004, __pyx_L1_error)
16367   __Pyx_GOTREF(__pyx_t_1);
16368   __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_status, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1004, __pyx_L1_error)
16369   __Pyx_GOTREF(__pyx_t_2);
16370   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16371   __pyx_t_9 = ((enum IClpSimplex::Status)__Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1004, __pyx_L1_error)
16372   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16373   __pyx_v_self->CppSelf->setStatus(__pyx_v_sequence, __pyx_t_9);
16374 
16375   /* "cylp/cy/CyClpSimplex.pyx":992
16376  *         return self.CppSelf.getStatus(sequence)
16377  *
16378  *     cpdef CLP_setVarStatus(self, int sequence, int status):             # <<<<<<<<<<<<<<
16379  *         '''
16380  *         set the status of a variable
16381  */
16382 
16383   /* function exit code */
16384   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16385   goto __pyx_L0;
16386   __pyx_L1_error:;
16387   __Pyx_XDECREF(__pyx_t_1);
16388   __Pyx_XDECREF(__pyx_t_2);
16389   __Pyx_XDECREF(__pyx_t_3);
16390   __Pyx_XDECREF(__pyx_t_4);
16391   __Pyx_XDECREF(__pyx_t_5);
16392   __Pyx_XDECREF(__pyx_t_6);
16393   __Pyx_XDECREF(__pyx_t_8);
16394   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_setVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
16395   __pyx_r = 0;
16396   __pyx_L0:;
16397   __Pyx_XGIVEREF(__pyx_r);
16398   __Pyx_TraceReturn(__pyx_r, 0);
16399   __Pyx_RefNannyFinishContext();
16400   return __pyx_r;
16401 }
16402 
16403 /* Python wrapper */
16404 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_51CLP_setVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16405 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_50CLP_setVarStatus[] = "CyClpSimplex.CLP_setVarStatus(self, int sequence, int status)\n\n        set the status of a variable\n\n        * free : 0\n        * basic : 1\n        * atUpperBound : 2\n        * atLowerBound : 3\n        * superBasic : 4\n        * fixed : 5\n\n        ";
16406 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_51CLP_setVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16407   int __pyx_v_sequence;
16408   int __pyx_v_status;
16409   int __pyx_lineno = 0;
16410   const char *__pyx_filename = NULL;
16411   int __pyx_clineno = 0;
16412   PyObject *__pyx_r = 0;
16413   __Pyx_RefNannyDeclarations
16414   __Pyx_RefNannySetupContext("CLP_setVarStatus (wrapper)", 0);
16415   {
16416     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sequence,&__pyx_n_s_status,0};
16417     PyObject* values[2] = {0,0};
16418     if (unlikely(__pyx_kwds)) {
16419       Py_ssize_t kw_args;
16420       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16421       switch (pos_args) {
16422         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16423         CYTHON_FALLTHROUGH;
16424         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16425         CYTHON_FALLTHROUGH;
16426         case  0: break;
16427         default: goto __pyx_L5_argtuple_error;
16428       }
16429       kw_args = PyDict_Size(__pyx_kwds);
16430       switch (pos_args) {
16431         case  0:
16432         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sequence)) != 0)) kw_args--;
16433         else goto __pyx_L5_argtuple_error;
16434         CYTHON_FALLTHROUGH;
16435         case  1:
16436         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_status)) != 0)) kw_args--;
16437         else {
16438           __Pyx_RaiseArgtupleInvalid("CLP_setVarStatus", 1, 2, 2, 1); __PYX_ERR(0, 992, __pyx_L3_error)
16439         }
16440       }
16441       if (unlikely(kw_args > 0)) {
16442         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CLP_setVarStatus") < 0)) __PYX_ERR(0, 992, __pyx_L3_error)
16443       }
16444     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
16445       goto __pyx_L5_argtuple_error;
16446     } else {
16447       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16448       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16449     }
16450     __pyx_v_sequence = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_sequence == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 992, __pyx_L3_error)
16451     __pyx_v_status = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_status == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 992, __pyx_L3_error)
16452   }
16453   goto __pyx_L4_argument_unpacking_done;
16454   __pyx_L5_argtuple_error:;
16455   __Pyx_RaiseArgtupleInvalid("CLP_setVarStatus", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 992, __pyx_L3_error)
16456   __pyx_L3_error:;
16457   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_setVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
16458   __Pyx_RefNannyFinishContext();
16459   return NULL;
16460   __pyx_L4_argument_unpacking_done:;
16461   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_50CLP_setVarStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_sequence, __pyx_v_status);
16462 
16463   /* function exit code */
16464   __Pyx_RefNannyFinishContext();
16465   return __pyx_r;
16466 }
16467 
16468 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_50CLP_setVarStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_sequence, int __pyx_v_status) {
16469   PyObject *__pyx_r = NULL;
16470   __Pyx_TraceDeclarations
16471   __Pyx_RefNannyDeclarations
16472   PyObject *__pyx_t_1 = NULL;
16473   int __pyx_lineno = 0;
16474   const char *__pyx_filename = NULL;
16475   int __pyx_clineno = 0;
16476   __Pyx_RefNannySetupContext("CLP_setVarStatus", 0);
16477   __Pyx_TraceCall("CLP_setVarStatus (wrapper)", __pyx_f[0], 992, 0, __PYX_ERR(0, 992, __pyx_L1_error));
16478   __Pyx_XDECREF(__pyx_r);
16479   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_CLP_setVarStatus(__pyx_v_self, __pyx_v_sequence, __pyx_v_status, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 992, __pyx_L1_error)
16480   __Pyx_GOTREF(__pyx_t_1);
16481   __pyx_r = __pyx_t_1;
16482   __pyx_t_1 = 0;
16483   goto __pyx_L0;
16484 
16485   /* function exit code */
16486   __pyx_L1_error:;
16487   __Pyx_XDECREF(__pyx_t_1);
16488   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_setVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
16489   __pyx_r = NULL;
16490   __pyx_L0:;
16491   __Pyx_XGIVEREF(__pyx_r);
16492   __Pyx_TraceReturn(__pyx_r, 0);
16493   __Pyx_RefNannyFinishContext();
16494   return __pyx_r;
16495 }
16496 
16497 /* "cylp/cy/CyClpSimplex.pyx":1006
16498  *         self.CppSelf.setStatus(sequence, CLP_variableStatusEnum[status])
16499  *
16500  *     def setVariableStatus(self, arg, status):             # <<<<<<<<<<<<<<
16501  *         '''
16502  *         Set the status of a variable.
16503  */
16504 
16505 /* Python wrapper */
16506 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_53setVariableStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16507 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_52setVariableStatus[] = "CyClpSimplex.setVariableStatus(self, arg, status)\n\n        Set the status of a variable.\n\n        :arg arg: Specifies the variable to change (a CyLPVar, or an index)\n        :type status: CyLPVar, int\n        :arg status: 'basic', 'atUpperBound', 'atLowerBound', 'superBasic', 'fixed'\n        :type status: string\n\n\n        Example:\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex\n        >>> s = CyClpSimplex()\n        >>> x = s.addVariable('x', 4)\n        >>> # Using CyLPVars:\n        >>> s.setVariableStatus(x[1:3], 'basic')\n        >>> s.getVariableStatus(x[1])\n        'basic'\n        >>> # Using a variable index directly\n        >>> s.setVariableStatus(1, 'atLowerBound')\n        >>> s.getVariableStatus(x[1])\n        'atLowerBound'\n\n        ";
16508 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_53setVariableStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16509   PyObject *__pyx_v_arg = 0;
16510   PyObject *__pyx_v_status = 0;
16511   int __pyx_lineno = 0;
16512   const char *__pyx_filename = NULL;
16513   int __pyx_clineno = 0;
16514   PyObject *__pyx_r = 0;
16515   __Pyx_RefNannyDeclarations
16516   __Pyx_RefNannySetupContext("setVariableStatus (wrapper)", 0);
16517   {
16518     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arg,&__pyx_n_s_status,0};
16519     PyObject* values[2] = {0,0};
16520     if (unlikely(__pyx_kwds)) {
16521       Py_ssize_t kw_args;
16522       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16523       switch (pos_args) {
16524         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16525         CYTHON_FALLTHROUGH;
16526         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16527         CYTHON_FALLTHROUGH;
16528         case  0: break;
16529         default: goto __pyx_L5_argtuple_error;
16530       }
16531       kw_args = PyDict_Size(__pyx_kwds);
16532       switch (pos_args) {
16533         case  0:
16534         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--;
16535         else goto __pyx_L5_argtuple_error;
16536         CYTHON_FALLTHROUGH;
16537         case  1:
16538         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_status)) != 0)) kw_args--;
16539         else {
16540           __Pyx_RaiseArgtupleInvalid("setVariableStatus", 1, 2, 2, 1); __PYX_ERR(0, 1006, __pyx_L3_error)
16541         }
16542       }
16543       if (unlikely(kw_args > 0)) {
16544         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVariableStatus") < 0)) __PYX_ERR(0, 1006, __pyx_L3_error)
16545       }
16546     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
16547       goto __pyx_L5_argtuple_error;
16548     } else {
16549       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16550       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16551     }
16552     __pyx_v_arg = values[0];
16553     __pyx_v_status = values[1];
16554   }
16555   goto __pyx_L4_argument_unpacking_done;
16556   __pyx_L5_argtuple_error:;
16557   __Pyx_RaiseArgtupleInvalid("setVariableStatus", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1006, __pyx_L3_error)
16558   __pyx_L3_error:;
16559   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
16560   __Pyx_RefNannyFinishContext();
16561   return NULL;
16562   __pyx_L4_argument_unpacking_done:;
16563   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_52setVariableStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_arg, __pyx_v_status);
16564 
16565   /* function exit code */
16566   __Pyx_RefNannyFinishContext();
16567   return __pyx_r;
16568 }
16569 
16570 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_52setVariableStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg, PyObject *__pyx_v_status) {
16571   PyObject *__pyx_v_var = NULL;
16572   PyObject *__pyx_v_model = NULL;
16573   PyObject *__pyx_v_inds = NULL;
16574   PyObject *__pyx_v_varName = NULL;
16575   PyObject *__pyx_v_x = NULL;
16576   PyObject *__pyx_v_i = NULL;
16577   PyObject *__pyx_r = NULL;
16578   __Pyx_TraceDeclarations
16579   __Pyx_RefNannyDeclarations
16580   PyObject *__pyx_t_1 = NULL;
16581   PyObject *__pyx_t_2 = NULL;
16582   PyObject *__pyx_t_3 = NULL;
16583   int __pyx_t_4;
16584   int __pyx_t_5;
16585   int __pyx_t_6;
16586   int __pyx_t_7;
16587   enum IClpSimplex::Status __pyx_t_8;
16588   Py_ssize_t __pyx_t_9;
16589   PyObject *(*__pyx_t_10)(PyObject *);
16590   int __pyx_lineno = 0;
16591   const char *__pyx_filename = NULL;
16592   int __pyx_clineno = 0;
16593   __Pyx_RefNannySetupContext("setVariableStatus", 0);
16594   __Pyx_TraceCall("setVariableStatus", __pyx_f[0], 1006, 0, __PYX_ERR(0, 1006, __pyx_L1_error));
16595   __Pyx_INCREF(__pyx_v_status);
16596 
16597   /* "cylp/cy/CyClpSimplex.pyx":1031
16598  *
16599  *         '''
16600  *         status = CLP_variableStatusEnum[StatusToInt[status]]             # <<<<<<<<<<<<<<
16601  *         if isinstance(arg, (int, long)):
16602  *             self.CppSelf.setStatus(arg, status)
16603  */
16604   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CLP_variableStatusEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1031, __pyx_L1_error)
16605   __Pyx_GOTREF(__pyx_t_1);
16606   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusToInt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1031, __pyx_L1_error)
16607   __Pyx_GOTREF(__pyx_t_2);
16608   __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_status); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1031, __pyx_L1_error)
16609   __Pyx_GOTREF(__pyx_t_3);
16610   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16611   __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1031, __pyx_L1_error)
16612   __Pyx_GOTREF(__pyx_t_2);
16613   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16614   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16615   __Pyx_DECREF_SET(__pyx_v_status, __pyx_t_2);
16616   __pyx_t_2 = 0;
16617 
16618   /* "cylp/cy/CyClpSimplex.pyx":1032
16619  *         '''
16620  *         status = CLP_variableStatusEnum[StatusToInt[status]]
16621  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
16622  *             self.CppSelf.setStatus(arg, status)
16623  *         elif True:  # isinstance(arg, CyLPVar):
16624  */
16625   __pyx_t_5 = PyInt_Check(__pyx_v_arg);
16626   __pyx_t_6 = (__pyx_t_5 != 0);
16627   if (!__pyx_t_6) {
16628   } else {
16629     __pyx_t_4 = __pyx_t_6;
16630     goto __pyx_L4_bool_binop_done;
16631   }
16632   __pyx_t_6 = PyLong_Check(__pyx_v_arg);
16633   __pyx_t_5 = (__pyx_t_6 != 0);
16634   __pyx_t_4 = __pyx_t_5;
16635   __pyx_L4_bool_binop_done:;
16636   __pyx_t_5 = (__pyx_t_4 != 0);
16637   if (__pyx_t_5) {
16638 
16639     /* "cylp/cy/CyClpSimplex.pyx":1033
16640  *         status = CLP_variableStatusEnum[StatusToInt[status]]
16641  *         if isinstance(arg, (int, long)):
16642  *             self.CppSelf.setStatus(arg, status)             # <<<<<<<<<<<<<<
16643  *         elif True:  # isinstance(arg, CyLPVar):
16644  *             if self.cyLPModel is None:
16645  */
16646     __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_v_arg); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1033, __pyx_L1_error)
16647     __pyx_t_8 = ((enum IClpSimplex::Status)__Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(__pyx_v_status)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1033, __pyx_L1_error)
16648     __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);
16649 
16650     /* "cylp/cy/CyClpSimplex.pyx":1032
16651  *         '''
16652  *         status = CLP_variableStatusEnum[StatusToInt[status]]
16653  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
16654  *             self.CppSelf.setStatus(arg, status)
16655  *         elif True:  # isinstance(arg, CyLPVar):
16656  */
16657     goto __pyx_L3;
16658   }
16659 
16660   /* "cylp/cy/CyClpSimplex.pyx":1035
16661  *             self.CppSelf.setStatus(arg, status)
16662  *         elif True:  # isinstance(arg, CyLPVar):
16663  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
16664  *                 raise Exception('The argument of setVarStatus can be ' \
16665  *                                 'a CyLPVar only if the object is built ' \
16666  */
16667   /*else*/ {
16668     __pyx_t_5 = (__pyx_v_self->cyLPModel == Py_None);
16669     __pyx_t_4 = (__pyx_t_5 != 0);
16670     if (unlikely(__pyx_t_4)) {
16671 
16672       /* "cylp/cy/CyClpSimplex.pyx":1036
16673  *         elif True:  # isinstance(arg, CyLPVar):
16674  *             if self.cyLPModel is None:
16675  *                 raise Exception('The argument of setVarStatus can be ' \             # <<<<<<<<<<<<<<
16676  *                                 'a CyLPVar only if the object is built ' \
16677  *                                 'using a CyLPModel.')
16678  */
16679       __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1036, __pyx_L1_error)
16680       __Pyx_GOTREF(__pyx_t_2);
16681       __Pyx_Raise(__pyx_t_2, 0, 0, 0);
16682       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16683       __PYX_ERR(0, 1036, __pyx_L1_error)
16684 
16685       /* "cylp/cy/CyClpSimplex.pyx":1035
16686  *             self.CppSelf.setStatus(arg, status)
16687  *         elif True:  # isinstance(arg, CyLPVar):
16688  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
16689  *                 raise Exception('The argument of setVarStatus can be ' \
16690  *                                 'a CyLPVar only if the object is built ' \
16691  */
16692     }
16693 
16694     /* "cylp/cy/CyClpSimplex.pyx":1039
16695  *                                 'a CyLPVar only if the object is built ' \
16696  *                                 'using a CyLPModel.')
16697  *             var = arg             # <<<<<<<<<<<<<<
16698  *             model = self.cyLPModel
16699  *             inds = model.inds
16700  */
16701     __Pyx_INCREF(__pyx_v_arg);
16702     __pyx_v_var = __pyx_v_arg;
16703 
16704     /* "cylp/cy/CyClpSimplex.pyx":1040
16705  *                                 'using a CyLPModel.')
16706  *             var = arg
16707  *             model = self.cyLPModel             # <<<<<<<<<<<<<<
16708  *             inds = model.inds
16709  *             varName = var.name
16710  */
16711     __pyx_t_2 = __pyx_v_self->cyLPModel;
16712     __Pyx_INCREF(__pyx_t_2);
16713     __pyx_v_model = __pyx_t_2;
16714     __pyx_t_2 = 0;
16715 
16716     /* "cylp/cy/CyClpSimplex.pyx":1041
16717  *             var = arg
16718  *             model = self.cyLPModel
16719  *             inds = model.inds             # <<<<<<<<<<<<<<
16720  *             varName = var.name
16721  *             if not inds.hasVar(varName):
16722  */
16723     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_inds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1041, __pyx_L1_error)
16724     __Pyx_GOTREF(__pyx_t_2);
16725     __pyx_v_inds = __pyx_t_2;
16726     __pyx_t_2 = 0;
16727 
16728     /* "cylp/cy/CyClpSimplex.pyx":1042
16729  *             model = self.cyLPModel
16730  *             inds = model.inds
16731  *             varName = var.name             # <<<<<<<<<<<<<<
16732  *             if not inds.hasVar(varName):
16733  *                 raise Exception('No such variable: %s' % varName)
16734  */
16735     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1042, __pyx_L1_error)
16736     __Pyx_GOTREF(__pyx_t_2);
16737     __pyx_v_varName = __pyx_t_2;
16738     __pyx_t_2 = 0;
16739 
16740     /* "cylp/cy/CyClpSimplex.pyx":1043
16741  *             inds = model.inds
16742  *             varName = var.name
16743  *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
16744  *                 raise Exception('No such variable: %s' % varName)
16745  *             x = inds.varIndex[varName]
16746  */
16747     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_hasVar); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L1_error)
16748     __Pyx_GOTREF(__pyx_t_3);
16749     __pyx_t_1 = NULL;
16750     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
16751       __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
16752       if (likely(__pyx_t_1)) {
16753         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
16754         __Pyx_INCREF(__pyx_t_1);
16755         __Pyx_INCREF(function);
16756         __Pyx_DECREF_SET(__pyx_t_3, function);
16757       }
16758     }
16759     __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_v_varName) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_varName);
16760     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
16761     if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1043, __pyx_L1_error)
16762     __Pyx_GOTREF(__pyx_t_2);
16763     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16764     __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1043, __pyx_L1_error)
16765     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16766     __pyx_t_5 = ((!__pyx_t_4) != 0);
16767     if (unlikely(__pyx_t_5)) {
16768 
16769       /* "cylp/cy/CyClpSimplex.pyx":1044
16770  *             varName = var.name
16771  *             if not inds.hasVar(varName):
16772  *                 raise Exception('No such variable: %s' % varName)             # <<<<<<<<<<<<<<
16773  *             x = inds.varIndex[varName]
16774  *             if var.parent:
16775  */
16776       __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_No_such_variable_s, __pyx_v_varName); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1044, __pyx_L1_error)
16777       __Pyx_GOTREF(__pyx_t_2);
16778       __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1044, __pyx_L1_error)
16779       __Pyx_GOTREF(__pyx_t_3);
16780       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16781       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
16782       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16783       __PYX_ERR(0, 1044, __pyx_L1_error)
16784 
16785       /* "cylp/cy/CyClpSimplex.pyx":1043
16786  *             inds = model.inds
16787  *             varName = var.name
16788  *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
16789  *                 raise Exception('No such variable: %s' % varName)
16790  *             x = inds.varIndex[varName]
16791  */
16792     }
16793 
16794     /* "cylp/cy/CyClpSimplex.pyx":1045
16795  *             if not inds.hasVar(varName):
16796  *                 raise Exception('No such variable: %s' % varName)
16797  *             x = inds.varIndex[varName]             # <<<<<<<<<<<<<<
16798  *             if var.parent:
16799  *                 for i in var.indices:
16800  */
16801     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1045, __pyx_L1_error)
16802     __Pyx_GOTREF(__pyx_t_3);
16803     __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_varName); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L1_error)
16804     __Pyx_GOTREF(__pyx_t_2);
16805     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16806     __pyx_v_x = __pyx_t_2;
16807     __pyx_t_2 = 0;
16808 
16809     /* "cylp/cy/CyClpSimplex.pyx":1046
16810  *                 raise Exception('No such variable: %s' % varName)
16811  *             x = inds.varIndex[varName]
16812  *             if var.parent:             # <<<<<<<<<<<<<<
16813  *                 for i in var.indices:
16814  *                     self.CppSelf.setStatus(x[i], status)
16815  */
16816     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_parent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
16817     __Pyx_GOTREF(__pyx_t_2);
16818     __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1046, __pyx_L1_error)
16819     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16820     if (__pyx_t_5) {
16821 
16822       /* "cylp/cy/CyClpSimplex.pyx":1047
16823  *             x = inds.varIndex[varName]
16824  *             if var.parent:
16825  *                 for i in var.indices:             # <<<<<<<<<<<<<<
16826  *                     self.CppSelf.setStatus(x[i], status)
16827  *             else:
16828  */
16829       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1047, __pyx_L1_error)
16830       __Pyx_GOTREF(__pyx_t_2);
16831       if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
16832         __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
16833         __pyx_t_10 = NULL;
16834       } else {
16835         __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1047, __pyx_L1_error)
16836         __Pyx_GOTREF(__pyx_t_3);
16837         __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1047, __pyx_L1_error)
16838       }
16839       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16840       for (;;) {
16841         if (likely(!__pyx_t_10)) {
16842           if (likely(PyList_CheckExact(__pyx_t_3))) {
16843             if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
16844             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
16845             __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1047, __pyx_L1_error)
16846             #else
16847             __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1047, __pyx_L1_error)
16848             __Pyx_GOTREF(__pyx_t_2);
16849             #endif
16850           } else {
16851             if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
16852             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
16853             __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1047, __pyx_L1_error)
16854             #else
16855             __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1047, __pyx_L1_error)
16856             __Pyx_GOTREF(__pyx_t_2);
16857             #endif
16858           }
16859         } else {
16860           __pyx_t_2 = __pyx_t_10(__pyx_t_3);
16861           if (unlikely(!__pyx_t_2)) {
16862             PyObject* exc_type = PyErr_Occurred();
16863             if (exc_type) {
16864               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
16865               else __PYX_ERR(0, 1047, __pyx_L1_error)
16866             }
16867             break;
16868           }
16869           __Pyx_GOTREF(__pyx_t_2);
16870         }
16871         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);
16872         __pyx_t_2 = 0;
16873 
16874         /* "cylp/cy/CyClpSimplex.pyx":1048
16875  *             if var.parent:
16876  *                 for i in var.indices:
16877  *                     self.CppSelf.setStatus(x[i], status)             # <<<<<<<<<<<<<<
16878  *             else:
16879  *                 for i in xrange(var.dim):
16880  */
16881         __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1048, __pyx_L1_error)
16882         __Pyx_GOTREF(__pyx_t_2);
16883         __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1048, __pyx_L1_error)
16884         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16885         __pyx_t_8 = ((enum IClpSimplex::Status)__Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(__pyx_v_status)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1048, __pyx_L1_error)
16886         __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);
16887 
16888         /* "cylp/cy/CyClpSimplex.pyx":1047
16889  *             x = inds.varIndex[varName]
16890  *             if var.parent:
16891  *                 for i in var.indices:             # <<<<<<<<<<<<<<
16892  *                     self.CppSelf.setStatus(x[i], status)
16893  *             else:
16894  */
16895       }
16896       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16897 
16898       /* "cylp/cy/CyClpSimplex.pyx":1046
16899  *                 raise Exception('No such variable: %s' % varName)
16900  *             x = inds.varIndex[varName]
16901  *             if var.parent:             # <<<<<<<<<<<<<<
16902  *                 for i in var.indices:
16903  *                     self.CppSelf.setStatus(x[i], status)
16904  */
16905       goto __pyx_L8;
16906     }
16907 
16908     /* "cylp/cy/CyClpSimplex.pyx":1050
16909  *                     self.CppSelf.setStatus(x[i], status)
16910  *             else:
16911  *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
16912  *                     self.CppSelf.setStatus(x[i], status)
16913  *
16914  */
16915     /*else*/ {
16916       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1050, __pyx_L1_error)
16917       __Pyx_GOTREF(__pyx_t_3);
16918       __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1050, __pyx_L1_error)
16919       __Pyx_GOTREF(__pyx_t_2);
16920       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16921       if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
16922         __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
16923         __pyx_t_10 = NULL;
16924       } else {
16925         __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1050, __pyx_L1_error)
16926         __Pyx_GOTREF(__pyx_t_3);
16927         __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1050, __pyx_L1_error)
16928       }
16929       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16930       for (;;) {
16931         if (likely(!__pyx_t_10)) {
16932           if (likely(PyList_CheckExact(__pyx_t_3))) {
16933             if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
16934             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
16935             __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1050, __pyx_L1_error)
16936             #else
16937             __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1050, __pyx_L1_error)
16938             __Pyx_GOTREF(__pyx_t_2);
16939             #endif
16940           } else {
16941             if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
16942             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
16943             __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1050, __pyx_L1_error)
16944             #else
16945             __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1050, __pyx_L1_error)
16946             __Pyx_GOTREF(__pyx_t_2);
16947             #endif
16948           }
16949         } else {
16950           __pyx_t_2 = __pyx_t_10(__pyx_t_3);
16951           if (unlikely(!__pyx_t_2)) {
16952             PyObject* exc_type = PyErr_Occurred();
16953             if (exc_type) {
16954               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
16955               else __PYX_ERR(0, 1050, __pyx_L1_error)
16956             }
16957             break;
16958           }
16959           __Pyx_GOTREF(__pyx_t_2);
16960         }
16961         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);
16962         __pyx_t_2 = 0;
16963 
16964         /* "cylp/cy/CyClpSimplex.pyx":1051
16965  *             else:
16966  *                 for i in xrange(var.dim):
16967  *                     self.CppSelf.setStatus(x[i], status)             # <<<<<<<<<<<<<<
16968  *
16969  *     def getVariableStatus(self, arg):
16970  */
16971         __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1051, __pyx_L1_error)
16972         __Pyx_GOTREF(__pyx_t_2);
16973         __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1051, __pyx_L1_error)
16974         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16975         __pyx_t_8 = ((enum IClpSimplex::Status)__Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(__pyx_v_status)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1051, __pyx_L1_error)
16976         __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);
16977 
16978         /* "cylp/cy/CyClpSimplex.pyx":1050
16979  *                     self.CppSelf.setStatus(x[i], status)
16980  *             else:
16981  *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
16982  *                     self.CppSelf.setStatus(x[i], status)
16983  *
16984  */
16985       }
16986       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16987     }
16988     __pyx_L8:;
16989   }
16990   __pyx_L3:;
16991 
16992   /* "cylp/cy/CyClpSimplex.pyx":1006
16993  *         self.CppSelf.setStatus(sequence, CLP_variableStatusEnum[status])
16994  *
16995  *     def setVariableStatus(self, arg, status):             # <<<<<<<<<<<<<<
16996  *         '''
16997  *         Set the status of a variable.
16998  */
16999 
17000   /* function exit code */
17001   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17002   goto __pyx_L0;
17003   __pyx_L1_error:;
17004   __Pyx_XDECREF(__pyx_t_1);
17005   __Pyx_XDECREF(__pyx_t_2);
17006   __Pyx_XDECREF(__pyx_t_3);
17007   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
17008   __pyx_r = NULL;
17009   __pyx_L0:;
17010   __Pyx_XDECREF(__pyx_v_var);
17011   __Pyx_XDECREF(__pyx_v_model);
17012   __Pyx_XDECREF(__pyx_v_inds);
17013   __Pyx_XDECREF(__pyx_v_varName);
17014   __Pyx_XDECREF(__pyx_v_x);
17015   __Pyx_XDECREF(__pyx_v_i);
17016   __Pyx_XDECREF(__pyx_v_status);
17017   __Pyx_XGIVEREF(__pyx_r);
17018   __Pyx_TraceReturn(__pyx_r, 0);
17019   __Pyx_RefNannyFinishContext();
17020   return __pyx_r;
17021 }
17022 
17023 /* "cylp/cy/CyClpSimplex.pyx":1053
17024  *                     self.CppSelf.setStatus(x[i], status)
17025  *
17026  *     def getVariableStatus(self, arg):             # <<<<<<<<<<<<<<
17027  *         '''
17028  *         Get the status of a variable.
17029  */
17030 
17031 /* Python wrapper */
17032 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_55getVariableStatus(PyObject *__pyx_v_self, PyObject *__pyx_v_arg); /*proto*/
17033 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus[] = "CyClpSimplex.getVariableStatus(self, arg)\n\n        Get the status of a variable.\n        ";
17034 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_55getVariableStatus(PyObject *__pyx_v_self, PyObject *__pyx_v_arg) {
17035   PyObject *__pyx_r = 0;
17036   __Pyx_RefNannyDeclarations
17037   __Pyx_RefNannySetupContext("getVariableStatus (wrapper)", 0);
17038   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_arg));
17039 
17040   /* function exit code */
17041   __Pyx_RefNannyFinishContext();
17042   return __pyx_r;
17043 }
17044 
17045 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg) {
17046   PyObject *__pyx_v_var = NULL;
17047   PyObject *__pyx_v_model = NULL;
17048   PyObject *__pyx_v_inds = NULL;
17049   PyObject *__pyx_v_varName = NULL;
17050   PyObject *__pyx_v_x = NULL;
17051   PyObject *__pyx_v_s = NULL;
17052   PyObject *__pyx_v_i = NULL;
17053   PyObject *__pyx_r = NULL;
17054   __Pyx_TraceDeclarations
17055   __Pyx_RefNannyDeclarations
17056   int __pyx_t_1;
17057   int __pyx_t_2;
17058   int __pyx_t_3;
17059   PyObject *__pyx_t_4 = NULL;
17060   int __pyx_t_5;
17061   PyObject *__pyx_t_6 = NULL;
17062   PyObject *__pyx_t_7 = NULL;
17063   PyObject *__pyx_t_8 = NULL;
17064   PyObject *__pyx_t_9 = NULL;
17065   Py_ssize_t __pyx_t_10;
17066   PyObject *(*__pyx_t_11)(PyObject *);
17067   PyObject *__pyx_t_12 = NULL;
17068   PyObject *__pyx_t_13 = NULL;
17069   int __pyx_lineno = 0;
17070   const char *__pyx_filename = NULL;
17071   int __pyx_clineno = 0;
17072   __Pyx_RefNannySetupContext("getVariableStatus", 0);
17073   __Pyx_TraceCall("getVariableStatus", __pyx_f[0], 1053, 0, __PYX_ERR(0, 1053, __pyx_L1_error));
17074 
17075   /* "cylp/cy/CyClpSimplex.pyx":1057
17076  *         Get the status of a variable.
17077  *         '''
17078  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
17079  *             return IntToStatus[self.CppSelf.getStatus(arg)]
17080  *         elif True:  # isinstance(arg, CyLPVar):
17081  */
17082   __pyx_t_2 = PyInt_Check(__pyx_v_arg);
17083   __pyx_t_3 = (__pyx_t_2 != 0);
17084   if (!__pyx_t_3) {
17085   } else {
17086     __pyx_t_1 = __pyx_t_3;
17087     goto __pyx_L4_bool_binop_done;
17088   }
17089   __pyx_t_3 = PyLong_Check(__pyx_v_arg);
17090   __pyx_t_2 = (__pyx_t_3 != 0);
17091   __pyx_t_1 = __pyx_t_2;
17092   __pyx_L4_bool_binop_done:;
17093   __pyx_t_2 = (__pyx_t_1 != 0);
17094   if (__pyx_t_2) {
17095 
17096     /* "cylp/cy/CyClpSimplex.pyx":1058
17097  *         '''
17098  *         if isinstance(arg, (int, long)):
17099  *             return IntToStatus[self.CppSelf.getStatus(arg)]             # <<<<<<<<<<<<<<
17100  *         elif True:  # isinstance(arg, CyLPVar):
17101  *             if self.cyLPModel is None:
17102  */
17103     __Pyx_XDECREF(__pyx_r);
17104     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1058, __pyx_L1_error)
17105     __Pyx_GOTREF(__pyx_t_4);
17106     __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_arg); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1058, __pyx_L1_error)
17107     __pyx_t_6 = __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(__pyx_v_self->CppSelf->getStatus(__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1058, __pyx_L1_error)
17108     __Pyx_GOTREF(__pyx_t_6);
17109     __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1058, __pyx_L1_error)
17110     __Pyx_GOTREF(__pyx_t_7);
17111     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
17112     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17113     __pyx_r = __pyx_t_7;
17114     __pyx_t_7 = 0;
17115     goto __pyx_L0;
17116 
17117     /* "cylp/cy/CyClpSimplex.pyx":1057
17118  *         Get the status of a variable.
17119  *         '''
17120  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
17121  *             return IntToStatus[self.CppSelf.getStatus(arg)]
17122  *         elif True:  # isinstance(arg, CyLPVar):
17123  */
17124   }
17125 
17126   /* "cylp/cy/CyClpSimplex.pyx":1060
17127  *             return IntToStatus[self.CppSelf.getStatus(arg)]
17128  *         elif True:  # isinstance(arg, CyLPVar):
17129  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
17130  *                 raise Exception('The argument of getVarStatus can be ' \
17131  *                                 'a CyLPVar only if the object is built ' \
17132  */
17133   /*else*/ {
17134     __pyx_t_2 = (__pyx_v_self->cyLPModel == Py_None);
17135     __pyx_t_1 = (__pyx_t_2 != 0);
17136     if (unlikely(__pyx_t_1)) {
17137 
17138       /* "cylp/cy/CyClpSimplex.pyx":1061
17139  *         elif True:  # isinstance(arg, CyLPVar):
17140  *             if self.cyLPModel is None:
17141  *                 raise Exception('The argument of getVarStatus can be ' \             # <<<<<<<<<<<<<<
17142  *                                 'a CyLPVar only if the object is built ' \
17143  *                                 'using a CyLPModel.')
17144  */
17145       __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1061, __pyx_L1_error)
17146       __Pyx_GOTREF(__pyx_t_7);
17147       __Pyx_Raise(__pyx_t_7, 0, 0, 0);
17148       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17149       __PYX_ERR(0, 1061, __pyx_L1_error)
17150 
17151       /* "cylp/cy/CyClpSimplex.pyx":1060
17152  *             return IntToStatus[self.CppSelf.getStatus(arg)]
17153  *         elif True:  # isinstance(arg, CyLPVar):
17154  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
17155  *                 raise Exception('The argument of getVarStatus can be ' \
17156  *                                 'a CyLPVar only if the object is built ' \
17157  */
17158     }
17159 
17160     /* "cylp/cy/CyClpSimplex.pyx":1064
17161  *                                 'a CyLPVar only if the object is built ' \
17162  *                                 'using a CyLPModel.')
17163  *             var = arg             # <<<<<<<<<<<<<<
17164  *             model = self.cyLPModel
17165  *             inds = model.inds
17166  */
17167     __Pyx_INCREF(__pyx_v_arg);
17168     __pyx_v_var = __pyx_v_arg;
17169 
17170     /* "cylp/cy/CyClpSimplex.pyx":1065
17171  *                                 'using a CyLPModel.')
17172  *             var = arg
17173  *             model = self.cyLPModel             # <<<<<<<<<<<<<<
17174  *             inds = model.inds
17175  *             varName = var.name
17176  */
17177     __pyx_t_7 = __pyx_v_self->cyLPModel;
17178     __Pyx_INCREF(__pyx_t_7);
17179     __pyx_v_model = __pyx_t_7;
17180     __pyx_t_7 = 0;
17181 
17182     /* "cylp/cy/CyClpSimplex.pyx":1066
17183  *             var = arg
17184  *             model = self.cyLPModel
17185  *             inds = model.inds             # <<<<<<<<<<<<<<
17186  *             varName = var.name
17187  *             if not inds.hasVar(varName):
17188  */
17189     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_inds); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1066, __pyx_L1_error)
17190     __Pyx_GOTREF(__pyx_t_7);
17191     __pyx_v_inds = __pyx_t_7;
17192     __pyx_t_7 = 0;
17193 
17194     /* "cylp/cy/CyClpSimplex.pyx":1067
17195  *             model = self.cyLPModel
17196  *             inds = model.inds
17197  *             varName = var.name             # <<<<<<<<<<<<<<
17198  *             if not inds.hasVar(varName):
17199  *                 raise Exception('No such variable: %s' % varName)
17200  */
17201     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1067, __pyx_L1_error)
17202     __Pyx_GOTREF(__pyx_t_7);
17203     __pyx_v_varName = __pyx_t_7;
17204     __pyx_t_7 = 0;
17205 
17206     /* "cylp/cy/CyClpSimplex.pyx":1068
17207  *             inds = model.inds
17208  *             varName = var.name
17209  *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
17210  *                 raise Exception('No such variable: %s' % varName)
17211  *             x = inds.varIndex[varName]
17212  */
17213     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_hasVar); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1068, __pyx_L1_error)
17214     __Pyx_GOTREF(__pyx_t_6);
17215     __pyx_t_4 = NULL;
17216     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
17217       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
17218       if (likely(__pyx_t_4)) {
17219         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
17220         __Pyx_INCREF(__pyx_t_4);
17221         __Pyx_INCREF(function);
17222         __Pyx_DECREF_SET(__pyx_t_6, function);
17223       }
17224     }
17225     __pyx_t_7 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_v_varName) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_varName);
17226     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
17227     if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1068, __pyx_L1_error)
17228     __Pyx_GOTREF(__pyx_t_7);
17229     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17230     __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1068, __pyx_L1_error)
17231     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17232     __pyx_t_2 = ((!__pyx_t_1) != 0);
17233     if (unlikely(__pyx_t_2)) {
17234 
17235       /* "cylp/cy/CyClpSimplex.pyx":1069
17236  *             varName = var.name
17237  *             if not inds.hasVar(varName):
17238  *                 raise Exception('No such variable: %s' % varName)             # <<<<<<<<<<<<<<
17239  *             x = inds.varIndex[varName]
17240  *             if var.parent:
17241  */
17242       __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_No_such_variable_s, __pyx_v_varName); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1069, __pyx_L1_error)
17243       __Pyx_GOTREF(__pyx_t_7);
17244       __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
17245       __Pyx_GOTREF(__pyx_t_6);
17246       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17247       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
17248       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17249       __PYX_ERR(0, 1069, __pyx_L1_error)
17250 
17251       /* "cylp/cy/CyClpSimplex.pyx":1068
17252  *             inds = model.inds
17253  *             varName = var.name
17254  *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
17255  *                 raise Exception('No such variable: %s' % varName)
17256  *             x = inds.varIndex[varName]
17257  */
17258     }
17259 
17260     /* "cylp/cy/CyClpSimplex.pyx":1070
17261  *             if not inds.hasVar(varName):
17262  *                 raise Exception('No such variable: %s' % varName)
17263  *             x = inds.varIndex[varName]             # <<<<<<<<<<<<<<
17264  *             if var.parent:
17265  *                 s = np.array([IntToStatus[
17266  */
17267     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1070, __pyx_L1_error)
17268     __Pyx_GOTREF(__pyx_t_6);
17269     __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_varName); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1070, __pyx_L1_error)
17270     __Pyx_GOTREF(__pyx_t_7);
17271     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17272     __pyx_v_x = __pyx_t_7;
17273     __pyx_t_7 = 0;
17274 
17275     /* "cylp/cy/CyClpSimplex.pyx":1071
17276  *                 raise Exception('No such variable: %s' % varName)
17277  *             x = inds.varIndex[varName]
17278  *             if var.parent:             # <<<<<<<<<<<<<<
17279  *                 s = np.array([IntToStatus[
17280  *                             self.CppSelf.getStatus(x[i])]
17281  */
17282     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_parent); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1071, __pyx_L1_error)
17283     __Pyx_GOTREF(__pyx_t_7);
17284     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1071, __pyx_L1_error)
17285     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17286     if (__pyx_t_2) {
17287 
17288       /* "cylp/cy/CyClpSimplex.pyx":1072
17289  *             x = inds.varIndex[varName]
17290  *             if var.parent:
17291  *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
17292  *                             self.CppSelf.getStatus(x[i])]
17293  *                             for i in var.indices])
17294  */
17295       __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1072, __pyx_L1_error)
17296       __Pyx_GOTREF(__pyx_t_6);
17297       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1072, __pyx_L1_error)
17298       __Pyx_GOTREF(__pyx_t_4);
17299       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17300       __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1072, __pyx_L1_error)
17301       __Pyx_GOTREF(__pyx_t_6);
17302 
17303       /* "cylp/cy/CyClpSimplex.pyx":1074
17304  *                 s = np.array([IntToStatus[
17305  *                             self.CppSelf.getStatus(x[i])]
17306  *                             for i in var.indices])             # <<<<<<<<<<<<<<
17307  *             else:
17308  *                 s = np.array([IntToStatus[
17309  */
17310       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_indices); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1074, __pyx_L1_error)
17311       __Pyx_GOTREF(__pyx_t_8);
17312       if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
17313         __pyx_t_9 = __pyx_t_8; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
17314         __pyx_t_11 = NULL;
17315       } else {
17316         __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1074, __pyx_L1_error)
17317         __Pyx_GOTREF(__pyx_t_9);
17318         __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1074, __pyx_L1_error)
17319       }
17320       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17321       for (;;) {
17322         if (likely(!__pyx_t_11)) {
17323           if (likely(PyList_CheckExact(__pyx_t_9))) {
17324             if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
17325             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
17326             __pyx_t_8 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1074, __pyx_L1_error)
17327             #else
17328             __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1074, __pyx_L1_error)
17329             __Pyx_GOTREF(__pyx_t_8);
17330             #endif
17331           } else {
17332             if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
17333             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
17334             __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1074, __pyx_L1_error)
17335             #else
17336             __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1074, __pyx_L1_error)
17337             __Pyx_GOTREF(__pyx_t_8);
17338             #endif
17339           }
17340         } else {
17341           __pyx_t_8 = __pyx_t_11(__pyx_t_9);
17342           if (unlikely(!__pyx_t_8)) {
17343             PyObject* exc_type = PyErr_Occurred();
17344             if (exc_type) {
17345               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
17346               else __PYX_ERR(0, 1074, __pyx_L1_error)
17347             }
17348             break;
17349           }
17350           __Pyx_GOTREF(__pyx_t_8);
17351         }
17352         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8);
17353         __pyx_t_8 = 0;
17354 
17355         /* "cylp/cy/CyClpSimplex.pyx":1072
17356  *             x = inds.varIndex[varName]
17357  *             if var.parent:
17358  *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
17359  *                             self.CppSelf.getStatus(x[i])]
17360  *                             for i in var.indices])
17361  */
17362         __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1072, __pyx_L1_error)
17363         __Pyx_GOTREF(__pyx_t_8);
17364 
17365         /* "cylp/cy/CyClpSimplex.pyx":1073
17366  *             if var.parent:
17367  *                 s = np.array([IntToStatus[
17368  *                             self.CppSelf.getStatus(x[i])]             # <<<<<<<<<<<<<<
17369  *                             for i in var.indices])
17370  *             else:
17371  */
17372         __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1073, __pyx_L1_error)
17373         __Pyx_GOTREF(__pyx_t_12);
17374         __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1073, __pyx_L1_error)
17375         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
17376         __pyx_t_12 = __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(__pyx_v_self->CppSelf->getStatus(__pyx_t_5)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1073, __pyx_L1_error)
17377         __Pyx_GOTREF(__pyx_t_12);
17378 
17379         /* "cylp/cy/CyClpSimplex.pyx":1072
17380  *             x = inds.varIndex[varName]
17381  *             if var.parent:
17382  *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
17383  *                             self.CppSelf.getStatus(x[i])]
17384  *                             for i in var.indices])
17385  */
17386         __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1072, __pyx_L1_error)
17387         __Pyx_GOTREF(__pyx_t_13);
17388         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17389         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
17390         if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 1072, __pyx_L1_error)
17391         __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
17392 
17393         /* "cylp/cy/CyClpSimplex.pyx":1074
17394  *                 s = np.array([IntToStatus[
17395  *                             self.CppSelf.getStatus(x[i])]
17396  *                             for i in var.indices])             # <<<<<<<<<<<<<<
17397  *             else:
17398  *                 s = np.array([IntToStatus[
17399  */
17400       }
17401       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
17402       __pyx_t_9 = NULL;
17403       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
17404         __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
17405         if (likely(__pyx_t_9)) {
17406           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
17407           __Pyx_INCREF(__pyx_t_9);
17408           __Pyx_INCREF(function);
17409           __Pyx_DECREF_SET(__pyx_t_4, function);
17410         }
17411       }
17412       __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_9, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6);
17413       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
17414       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17415       if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1072, __pyx_L1_error)
17416       __Pyx_GOTREF(__pyx_t_7);
17417       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
17418       __pyx_v_s = __pyx_t_7;
17419       __pyx_t_7 = 0;
17420 
17421       /* "cylp/cy/CyClpSimplex.pyx":1071
17422  *                 raise Exception('No such variable: %s' % varName)
17423  *             x = inds.varIndex[varName]
17424  *             if var.parent:             # <<<<<<<<<<<<<<
17425  *                 s = np.array([IntToStatus[
17426  *                             self.CppSelf.getStatus(x[i])]
17427  */
17428       goto __pyx_L8;
17429     }
17430 
17431     /* "cylp/cy/CyClpSimplex.pyx":1076
17432  *                             for i in var.indices])
17433  *             else:
17434  *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
17435  *                             self.CppSelf.getStatus(x[i])]
17436  *                             for i in xrange(var.dim)])
17437  */
17438     /*else*/ {
17439       __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1076, __pyx_L1_error)
17440       __Pyx_GOTREF(__pyx_t_4);
17441       __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1076, __pyx_L1_error)
17442       __Pyx_GOTREF(__pyx_t_6);
17443       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
17444       __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1076, __pyx_L1_error)
17445       __Pyx_GOTREF(__pyx_t_4);
17446 
17447       /* "cylp/cy/CyClpSimplex.pyx":1078
17448  *                 s = np.array([IntToStatus[
17449  *                             self.CppSelf.getStatus(x[i])]
17450  *                             for i in xrange(var.dim)])             # <<<<<<<<<<<<<<
17451  *             if len(s) == 1:
17452  *                 return s[0]
17453  */
17454       __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dim); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1078, __pyx_L1_error)
17455       __Pyx_GOTREF(__pyx_t_9);
17456       __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1078, __pyx_L1_error)
17457       __Pyx_GOTREF(__pyx_t_13);
17458       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
17459       if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
17460         __pyx_t_9 = __pyx_t_13; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
17461         __pyx_t_11 = NULL;
17462       } else {
17463         __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1078, __pyx_L1_error)
17464         __Pyx_GOTREF(__pyx_t_9);
17465         __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1078, __pyx_L1_error)
17466       }
17467       __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
17468       for (;;) {
17469         if (likely(!__pyx_t_11)) {
17470           if (likely(PyList_CheckExact(__pyx_t_9))) {
17471             if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
17472             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
17473             __pyx_t_13 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_13); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1078, __pyx_L1_error)
17474             #else
17475             __pyx_t_13 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1078, __pyx_L1_error)
17476             __Pyx_GOTREF(__pyx_t_13);
17477             #endif
17478           } else {
17479             if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
17480             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
17481             __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_13); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1078, __pyx_L1_error)
17482             #else
17483             __pyx_t_13 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1078, __pyx_L1_error)
17484             __Pyx_GOTREF(__pyx_t_13);
17485             #endif
17486           }
17487         } else {
17488           __pyx_t_13 = __pyx_t_11(__pyx_t_9);
17489           if (unlikely(!__pyx_t_13)) {
17490             PyObject* exc_type = PyErr_Occurred();
17491             if (exc_type) {
17492               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
17493               else __PYX_ERR(0, 1078, __pyx_L1_error)
17494             }
17495             break;
17496           }
17497           __Pyx_GOTREF(__pyx_t_13);
17498         }
17499         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_13);
17500         __pyx_t_13 = 0;
17501 
17502         /* "cylp/cy/CyClpSimplex.pyx":1076
17503  *                             for i in var.indices])
17504  *             else:
17505  *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
17506  *                             self.CppSelf.getStatus(x[i])]
17507  *                             for i in xrange(var.dim)])
17508  */
17509         __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1076, __pyx_L1_error)
17510         __Pyx_GOTREF(__pyx_t_13);
17511 
17512         /* "cylp/cy/CyClpSimplex.pyx":1077
17513  *             else:
17514  *                 s = np.array([IntToStatus[
17515  *                             self.CppSelf.getStatus(x[i])]             # <<<<<<<<<<<<<<
17516  *                             for i in xrange(var.dim)])
17517  *             if len(s) == 1:
17518  */
17519         __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1077, __pyx_L1_error)
17520         __Pyx_GOTREF(__pyx_t_12);
17521         __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1077, __pyx_L1_error)
17522         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
17523         __pyx_t_12 = __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(__pyx_v_self->CppSelf->getStatus(__pyx_t_5)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1077, __pyx_L1_error)
17524         __Pyx_GOTREF(__pyx_t_12);
17525 
17526         /* "cylp/cy/CyClpSimplex.pyx":1076
17527  *                             for i in var.indices])
17528  *             else:
17529  *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
17530  *                             self.CppSelf.getStatus(x[i])]
17531  *                             for i in xrange(var.dim)])
17532  */
17533         __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1076, __pyx_L1_error)
17534         __Pyx_GOTREF(__pyx_t_8);
17535         __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
17536         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
17537         if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 1076, __pyx_L1_error)
17538         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
17539 
17540         /* "cylp/cy/CyClpSimplex.pyx":1078
17541  *                 s = np.array([IntToStatus[
17542  *                             self.CppSelf.getStatus(x[i])]
17543  *                             for i in xrange(var.dim)])             # <<<<<<<<<<<<<<
17544  *             if len(s) == 1:
17545  *                 return s[0]
17546  */
17547       }
17548       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
17549       __pyx_t_9 = NULL;
17550       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
17551         __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6);
17552         if (likely(__pyx_t_9)) {
17553           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
17554           __Pyx_INCREF(__pyx_t_9);
17555           __Pyx_INCREF(function);
17556           __Pyx_DECREF_SET(__pyx_t_6, function);
17557         }
17558       }
17559       __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_9, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4);
17560       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
17561       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
17562       if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1076, __pyx_L1_error)
17563       __Pyx_GOTREF(__pyx_t_7);
17564       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
17565       __pyx_v_s = __pyx_t_7;
17566       __pyx_t_7 = 0;
17567     }
17568     __pyx_L8:;
17569 
17570     /* "cylp/cy/CyClpSimplex.pyx":1079
17571  *                             self.CppSelf.getStatus(x[i])]
17572  *                             for i in xrange(var.dim)])
17573  *             if len(s) == 1:             # <<<<<<<<<<<<<<
17574  *                 return s[0]
17575  *             return s
17576  */
17577     __pyx_t_10 = PyObject_Length(__pyx_v_s); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1079, __pyx_L1_error)
17578     __pyx_t_2 = ((__pyx_t_10 == 1) != 0);
17579     if (__pyx_t_2) {
17580 
17581       /* "cylp/cy/CyClpSimplex.pyx":1080
17582  *                             for i in xrange(var.dim)])
17583  *             if len(s) == 1:
17584  *                 return s[0]             # <<<<<<<<<<<<<<
17585  *             return s
17586  *
17587  */
17588       __Pyx_XDECREF(__pyx_r);
17589       __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_s, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1080, __pyx_L1_error)
17590       __Pyx_GOTREF(__pyx_t_7);
17591       __pyx_r = __pyx_t_7;
17592       __pyx_t_7 = 0;
17593       goto __pyx_L0;
17594 
17595       /* "cylp/cy/CyClpSimplex.pyx":1079
17596  *                             self.CppSelf.getStatus(x[i])]
17597  *                             for i in xrange(var.dim)])
17598  *             if len(s) == 1:             # <<<<<<<<<<<<<<
17599  *                 return s[0]
17600  *             return s
17601  */
17602     }
17603 
17604     /* "cylp/cy/CyClpSimplex.pyx":1081
17605  *             if len(s) == 1:
17606  *                 return s[0]
17607  *             return s             # <<<<<<<<<<<<<<
17608  *
17609  *     def setConstraintStatus(self, arg, status):
17610  */
17611     __Pyx_XDECREF(__pyx_r);
17612     __Pyx_INCREF(__pyx_v_s);
17613     __pyx_r = __pyx_v_s;
17614     goto __pyx_L0;
17615   }
17616 
17617   /* "cylp/cy/CyClpSimplex.pyx":1053
17618  *                     self.CppSelf.setStatus(x[i], status)
17619  *
17620  *     def getVariableStatus(self, arg):             # <<<<<<<<<<<<<<
17621  *         '''
17622  *         Get the status of a variable.
17623  */
17624 
17625   /* function exit code */
17626   __pyx_L1_error:;
17627   __Pyx_XDECREF(__pyx_t_4);
17628   __Pyx_XDECREF(__pyx_t_6);
17629   __Pyx_XDECREF(__pyx_t_7);
17630   __Pyx_XDECREF(__pyx_t_8);
17631   __Pyx_XDECREF(__pyx_t_9);
17632   __Pyx_XDECREF(__pyx_t_12);
17633   __Pyx_XDECREF(__pyx_t_13);
17634   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getVariableStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
17635   __pyx_r = NULL;
17636   __pyx_L0:;
17637   __Pyx_XDECREF(__pyx_v_var);
17638   __Pyx_XDECREF(__pyx_v_model);
17639   __Pyx_XDECREF(__pyx_v_inds);
17640   __Pyx_XDECREF(__pyx_v_varName);
17641   __Pyx_XDECREF(__pyx_v_x);
17642   __Pyx_XDECREF(__pyx_v_s);
17643   __Pyx_XDECREF(__pyx_v_i);
17644   __Pyx_XGIVEREF(__pyx_r);
17645   __Pyx_TraceReturn(__pyx_r, 0);
17646   __Pyx_RefNannyFinishContext();
17647   return __pyx_r;
17648 }
17649 
17650 /* "cylp/cy/CyClpSimplex.pyx":1083
17651  *             return s
17652  *
17653  *     def setConstraintStatus(self, arg, status):             # <<<<<<<<<<<<<<
17654  *         '''
17655  *         Set the status of a constraint.
17656  */
17657 
17658 /* Python wrapper */
17659 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_57setConstraintStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17660 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_56setConstraintStatus[] = "CyClpSimplex.setConstraintStatus(self, arg, status)\n\n        Set the status of a constraint.\n\n        :arg arg: Specifies the constraint to change (name or index)\n        :type status: string,int\n        :arg status: 'basic', 'atUpperBound', 'atLowerBound', 'superBasic', 'fixed'\n        :type status: string\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex\n        >>> s = CyClpSimplex()\n        >>> x = s.addVariable('x', 4)\n        >>> s.addConstraint(0 <= x[0] + x[1] <= 1, 'const1')\n        >>> # Using constraint name:\n        >>> s.setConstraintStatus('const1', 'atUpperBound')\n        >>> s.getConstraintStatus('const1')\n        'atUpperBound'\n        >>> # Using constraint index directly\n        >>> s.setConstraintStatus(0, 'atLowerBound')\n        >>> s.getConstraintStatus('const1')\n        'atLowerBound'\n        ";
17661 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_57setConstraintStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17662   PyObject *__pyx_v_arg = 0;
17663   PyObject *__pyx_v_status = 0;
17664   int __pyx_lineno = 0;
17665   const char *__pyx_filename = NULL;
17666   int __pyx_clineno = 0;
17667   PyObject *__pyx_r = 0;
17668   __Pyx_RefNannyDeclarations
17669   __Pyx_RefNannySetupContext("setConstraintStatus (wrapper)", 0);
17670   {
17671     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arg,&__pyx_n_s_status,0};
17672     PyObject* values[2] = {0,0};
17673     if (unlikely(__pyx_kwds)) {
17674       Py_ssize_t kw_args;
17675       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17676       switch (pos_args) {
17677         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17678         CYTHON_FALLTHROUGH;
17679         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17680         CYTHON_FALLTHROUGH;
17681         case  0: break;
17682         default: goto __pyx_L5_argtuple_error;
17683       }
17684       kw_args = PyDict_Size(__pyx_kwds);
17685       switch (pos_args) {
17686         case  0:
17687         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--;
17688         else goto __pyx_L5_argtuple_error;
17689         CYTHON_FALLTHROUGH;
17690         case  1:
17691         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_status)) != 0)) kw_args--;
17692         else {
17693           __Pyx_RaiseArgtupleInvalid("setConstraintStatus", 1, 2, 2, 1); __PYX_ERR(0, 1083, __pyx_L3_error)
17694         }
17695       }
17696       if (unlikely(kw_args > 0)) {
17697         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstraintStatus") < 0)) __PYX_ERR(0, 1083, __pyx_L3_error)
17698       }
17699     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
17700       goto __pyx_L5_argtuple_error;
17701     } else {
17702       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17703       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17704     }
17705     __pyx_v_arg = values[0];
17706     __pyx_v_status = values[1];
17707   }
17708   goto __pyx_L4_argument_unpacking_done;
17709   __pyx_L5_argtuple_error:;
17710   __Pyx_RaiseArgtupleInvalid("setConstraintStatus", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1083, __pyx_L3_error)
17711   __pyx_L3_error:;
17712   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
17713   __Pyx_RefNannyFinishContext();
17714   return NULL;
17715   __pyx_L4_argument_unpacking_done:;
17716   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_56setConstraintStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_arg, __pyx_v_status);
17717 
17718   /* function exit code */
17719   __Pyx_RefNannyFinishContext();
17720   return __pyx_r;
17721 }
17722 
17723 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_56setConstraintStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg, PyObject *__pyx_v_status) {
17724   PyObject *__pyx_v_model = NULL;
17725   PyObject *__pyx_v_inds = NULL;
17726   PyObject *__pyx_v_constName = NULL;
17727   PyObject *__pyx_v_c = NULL;
17728   PyObject *__pyx_v_cInds = NULL;
17729   Py_ssize_t __pyx_v_i;
17730   PyObject *__pyx_r = NULL;
17731   __Pyx_TraceDeclarations
17732   __Pyx_RefNannyDeclarations
17733   PyObject *__pyx_t_1 = NULL;
17734   PyObject *__pyx_t_2 = NULL;
17735   PyObject *__pyx_t_3 = NULL;
17736   int __pyx_t_4;
17737   int __pyx_t_5;
17738   int __pyx_t_6;
17739   int __pyx_t_7;
17740   enum IClpSimplex::Status __pyx_t_8;
17741   Py_ssize_t __pyx_t_9;
17742   Py_ssize_t __pyx_t_10;
17743   Py_ssize_t __pyx_t_11;
17744   int __pyx_lineno = 0;
17745   const char *__pyx_filename = NULL;
17746   int __pyx_clineno = 0;
17747   __Pyx_RefNannySetupContext("setConstraintStatus", 0);
17748   __Pyx_TraceCall("setConstraintStatus", __pyx_f[0], 1083, 0, __PYX_ERR(0, 1083, __pyx_L1_error));
17749   __Pyx_INCREF(__pyx_v_arg);
17750   __Pyx_INCREF(__pyx_v_status);
17751 
17752   /* "cylp/cy/CyClpSimplex.pyx":1105
17753  *         'atLowerBound'
17754  *         '''
17755  *         status = CLP_variableStatusEnum[StatusToInt[status]]             # <<<<<<<<<<<<<<
17756  *         if isinstance(arg, (int, long)):
17757  *             arg += self.nVariables
17758  */
17759   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CLP_variableStatusEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1105, __pyx_L1_error)
17760   __Pyx_GOTREF(__pyx_t_1);
17761   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusToInt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1105, __pyx_L1_error)
17762   __Pyx_GOTREF(__pyx_t_2);
17763   __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_status); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1105, __pyx_L1_error)
17764   __Pyx_GOTREF(__pyx_t_3);
17765   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17766   __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1105, __pyx_L1_error)
17767   __Pyx_GOTREF(__pyx_t_2);
17768   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17769   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17770   __Pyx_DECREF_SET(__pyx_v_status, __pyx_t_2);
17771   __pyx_t_2 = 0;
17772 
17773   /* "cylp/cy/CyClpSimplex.pyx":1106
17774  *         '''
17775  *         status = CLP_variableStatusEnum[StatusToInt[status]]
17776  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
17777  *             arg += self.nVariables
17778  *             self.CppSelf.setStatus(arg, status)
17779  */
17780   __pyx_t_5 = PyInt_Check(__pyx_v_arg);
17781   __pyx_t_6 = (__pyx_t_5 != 0);
17782   if (!__pyx_t_6) {
17783   } else {
17784     __pyx_t_4 = __pyx_t_6;
17785     goto __pyx_L4_bool_binop_done;
17786   }
17787   __pyx_t_6 = PyLong_Check(__pyx_v_arg);
17788   __pyx_t_5 = (__pyx_t_6 != 0);
17789   __pyx_t_4 = __pyx_t_5;
17790   __pyx_L4_bool_binop_done:;
17791   __pyx_t_5 = (__pyx_t_4 != 0);
17792   if (__pyx_t_5) {
17793 
17794     /* "cylp/cy/CyClpSimplex.pyx":1107
17795  *         status = CLP_variableStatusEnum[StatusToInt[status]]
17796  *         if isinstance(arg, (int, long)):
17797  *             arg += self.nVariables             # <<<<<<<<<<<<<<
17798  *             self.CppSelf.setStatus(arg, status)
17799  *         elif True:  # isinstance(arg, CyLPVar):
17800  */
17801     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1107, __pyx_L1_error)
17802     __Pyx_GOTREF(__pyx_t_2);
17803     __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_arg, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1107, __pyx_L1_error)
17804     __Pyx_GOTREF(__pyx_t_3);
17805     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17806     __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_3);
17807     __pyx_t_3 = 0;
17808 
17809     /* "cylp/cy/CyClpSimplex.pyx":1108
17810  *         if isinstance(arg, (int, long)):
17811  *             arg += self.nVariables
17812  *             self.CppSelf.setStatus(arg, status)             # <<<<<<<<<<<<<<
17813  *         elif True:  # isinstance(arg, CyLPVar):
17814  *             if self.cyLPModel is None:
17815  */
17816     __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_v_arg); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1108, __pyx_L1_error)
17817     __pyx_t_8 = ((enum IClpSimplex::Status)__Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(__pyx_v_status)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1108, __pyx_L1_error)
17818     __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);
17819 
17820     /* "cylp/cy/CyClpSimplex.pyx":1106
17821  *         '''
17822  *         status = CLP_variableStatusEnum[StatusToInt[status]]
17823  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
17824  *             arg += self.nVariables
17825  *             self.CppSelf.setStatus(arg, status)
17826  */
17827     goto __pyx_L3;
17828   }
17829 
17830   /* "cylp/cy/CyClpSimplex.pyx":1110
17831  *             self.CppSelf.setStatus(arg, status)
17832  *         elif True:  # isinstance(arg, CyLPVar):
17833  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
17834  *                 raise Exception('The argument of setVarStatus can be ' \
17835  *                                 'a CyLPVar only if the object is built ' \
17836  */
17837   /*else*/ {
17838     __pyx_t_5 = (__pyx_v_self->cyLPModel == Py_None);
17839     __pyx_t_4 = (__pyx_t_5 != 0);
17840     if (unlikely(__pyx_t_4)) {
17841 
17842       /* "cylp/cy/CyClpSimplex.pyx":1111
17843  *         elif True:  # isinstance(arg, CyLPVar):
17844  *             if self.cyLPModel is None:
17845  *                 raise Exception('The argument of setVarStatus can be ' \             # <<<<<<<<<<<<<<
17846  *                                 'a CyLPVar only if the object is built ' \
17847  *                                 'using a CyLPModel.')
17848  */
17849       __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1111, __pyx_L1_error)
17850       __Pyx_GOTREF(__pyx_t_3);
17851       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
17852       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17853       __PYX_ERR(0, 1111, __pyx_L1_error)
17854 
17855       /* "cylp/cy/CyClpSimplex.pyx":1110
17856  *             self.CppSelf.setStatus(arg, status)
17857  *         elif True:  # isinstance(arg, CyLPVar):
17858  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
17859  *                 raise Exception('The argument of setVarStatus can be ' \
17860  *                                 'a CyLPVar only if the object is built ' \
17861  */
17862     }
17863 
17864     /* "cylp/cy/CyClpSimplex.pyx":1114
17865  *                                 'a CyLPVar only if the object is built ' \
17866  *                                 'using a CyLPModel.')
17867  *             model = self.cyLPModel             # <<<<<<<<<<<<<<
17868  *             inds = model.inds
17869  *             constName = arg
17870  */
17871     __pyx_t_3 = __pyx_v_self->cyLPModel;
17872     __Pyx_INCREF(__pyx_t_3);
17873     __pyx_v_model = __pyx_t_3;
17874     __pyx_t_3 = 0;
17875 
17876     /* "cylp/cy/CyClpSimplex.pyx":1115
17877  *                                 'using a CyLPModel.')
17878  *             model = self.cyLPModel
17879  *             inds = model.inds             # <<<<<<<<<<<<<<
17880  *             constName = arg
17881  *             if not inds.hasConst(constName):
17882  */
17883     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_inds); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1115, __pyx_L1_error)
17884     __Pyx_GOTREF(__pyx_t_3);
17885     __pyx_v_inds = __pyx_t_3;
17886     __pyx_t_3 = 0;
17887 
17888     /* "cylp/cy/CyClpSimplex.pyx":1116
17889  *             model = self.cyLPModel
17890  *             inds = model.inds
17891  *             constName = arg             # <<<<<<<<<<<<<<
17892  *             if not inds.hasConst(constName):
17893  *                 raise Exception('No such constraint: %s' % constName)
17894  */
17895     __Pyx_INCREF(__pyx_v_arg);
17896     __pyx_v_constName = __pyx_v_arg;
17897 
17898     /* "cylp/cy/CyClpSimplex.pyx":1117
17899  *             inds = model.inds
17900  *             constName = arg
17901  *             if not inds.hasConst(constName):             # <<<<<<<<<<<<<<
17902  *                 raise Exception('No such constraint: %s' % constName)
17903  *             c = inds.constIndex[constName]
17904  */
17905     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_hasConst); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1117, __pyx_L1_error)
17906     __Pyx_GOTREF(__pyx_t_2);
17907     __pyx_t_1 = NULL;
17908     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
17909       __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
17910       if (likely(__pyx_t_1)) {
17911         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
17912         __Pyx_INCREF(__pyx_t_1);
17913         __Pyx_INCREF(function);
17914         __Pyx_DECREF_SET(__pyx_t_2, function);
17915       }
17916     }
17917     __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_v_constName) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_constName);
17918     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
17919     if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error)
17920     __Pyx_GOTREF(__pyx_t_3);
17921     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17922     __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1117, __pyx_L1_error)
17923     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17924     __pyx_t_5 = ((!__pyx_t_4) != 0);
17925     if (unlikely(__pyx_t_5)) {
17926 
17927       /* "cylp/cy/CyClpSimplex.pyx":1118
17928  *             constName = arg
17929  *             if not inds.hasConst(constName):
17930  *                 raise Exception('No such constraint: %s' % constName)             # <<<<<<<<<<<<<<
17931  *             c = inds.constIndex[constName]
17932  *             cInds = c + self.nVariables
17933  */
17934       __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_No_such_constraint_s, __pyx_v_constName); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1118, __pyx_L1_error)
17935       __Pyx_GOTREF(__pyx_t_3);
17936       __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1118, __pyx_L1_error)
17937       __Pyx_GOTREF(__pyx_t_2);
17938       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17939       __Pyx_Raise(__pyx_t_2, 0, 0, 0);
17940       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17941       __PYX_ERR(0, 1118, __pyx_L1_error)
17942 
17943       /* "cylp/cy/CyClpSimplex.pyx":1117
17944  *             inds = model.inds
17945  *             constName = arg
17946  *             if not inds.hasConst(constName):             # <<<<<<<<<<<<<<
17947  *                 raise Exception('No such constraint: %s' % constName)
17948  *             c = inds.constIndex[constName]
17949  */
17950     }
17951 
17952     /* "cylp/cy/CyClpSimplex.pyx":1119
17953  *             if not inds.hasConst(constName):
17954  *                 raise Exception('No such constraint: %s' % constName)
17955  *             c = inds.constIndex[constName]             # <<<<<<<<<<<<<<
17956  *             cInds = c + self.nVariables
17957  *             for i in xrange(len(cInds)):
17958  */
17959     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_constIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1119, __pyx_L1_error)
17960     __Pyx_GOTREF(__pyx_t_2);
17961     __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_constName); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1119, __pyx_L1_error)
17962     __Pyx_GOTREF(__pyx_t_3);
17963     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17964     __pyx_v_c = __pyx_t_3;
17965     __pyx_t_3 = 0;
17966 
17967     /* "cylp/cy/CyClpSimplex.pyx":1120
17968  *                 raise Exception('No such constraint: %s' % constName)
17969  *             c = inds.constIndex[constName]
17970  *             cInds = c + self.nVariables             # <<<<<<<<<<<<<<
17971  *             for i in xrange(len(cInds)):
17972  *                 self.CppSelf.setStatus(cInds[i], status)
17973  */
17974     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1120, __pyx_L1_error)
17975     __Pyx_GOTREF(__pyx_t_3);
17976     __pyx_t_2 = PyNumber_Add(__pyx_v_c, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1120, __pyx_L1_error)
17977     __Pyx_GOTREF(__pyx_t_2);
17978     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17979     __pyx_v_cInds = __pyx_t_2;
17980     __pyx_t_2 = 0;
17981 
17982     /* "cylp/cy/CyClpSimplex.pyx":1121
17983  *             c = inds.constIndex[constName]
17984  *             cInds = c + self.nVariables
17985  *             for i in xrange(len(cInds)):             # <<<<<<<<<<<<<<
17986  *                 self.CppSelf.setStatus(cInds[i], status)
17987  *
17988  */
17989     __pyx_t_9 = PyObject_Length(__pyx_v_cInds); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1121, __pyx_L1_error)
17990     __pyx_t_10 = __pyx_t_9;
17991     for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
17992       __pyx_v_i = __pyx_t_11;
17993 
17994       /* "cylp/cy/CyClpSimplex.pyx":1122
17995  *             cInds = c + self.nVariables
17996  *             for i in xrange(len(cInds)):
17997  *                 self.CppSelf.setStatus(cInds[i], status)             # <<<<<<<<<<<<<<
17998  *
17999  *     def getConstraintStatus(self, arg):
18000  */
18001       __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_cInds, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1122, __pyx_L1_error)
18002       __Pyx_GOTREF(__pyx_t_2);
18003       __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1122, __pyx_L1_error)
18004       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18005       __pyx_t_8 = ((enum IClpSimplex::Status)__Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(__pyx_v_status)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1122, __pyx_L1_error)
18006       __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);
18007     }
18008   }
18009   __pyx_L3:;
18010 
18011   /* "cylp/cy/CyClpSimplex.pyx":1083
18012  *             return s
18013  *
18014  *     def setConstraintStatus(self, arg, status):             # <<<<<<<<<<<<<<
18015  *         '''
18016  *         Set the status of a constraint.
18017  */
18018 
18019   /* function exit code */
18020   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18021   goto __pyx_L0;
18022   __pyx_L1_error:;
18023   __Pyx_XDECREF(__pyx_t_1);
18024   __Pyx_XDECREF(__pyx_t_2);
18025   __Pyx_XDECREF(__pyx_t_3);
18026   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
18027   __pyx_r = NULL;
18028   __pyx_L0:;
18029   __Pyx_XDECREF(__pyx_v_model);
18030   __Pyx_XDECREF(__pyx_v_inds);
18031   __Pyx_XDECREF(__pyx_v_constName);
18032   __Pyx_XDECREF(__pyx_v_c);
18033   __Pyx_XDECREF(__pyx_v_cInds);
18034   __Pyx_XDECREF(__pyx_v_arg);
18035   __Pyx_XDECREF(__pyx_v_status);
18036   __Pyx_XGIVEREF(__pyx_r);
18037   __Pyx_TraceReturn(__pyx_r, 0);
18038   __Pyx_RefNannyFinishContext();
18039   return __pyx_r;
18040 }
18041 
18042 /* "cylp/cy/CyClpSimplex.pyx":1124
18043  *                 self.CppSelf.setStatus(cInds[i], status)
18044  *
18045  *     def getConstraintStatus(self, arg):             # <<<<<<<<<<<<<<
18046  *         '''
18047  *         Get the status of a constraint.
18048  */
18049 
18050 /* Python wrapper */
18051 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_59getConstraintStatus(PyObject *__pyx_v_self, PyObject *__pyx_v_arg); /*proto*/
18052 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus[] = "CyClpSimplex.getConstraintStatus(self, arg)\n\n        Get the status of a constraint.\n        ";
18053 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_59getConstraintStatus(PyObject *__pyx_v_self, PyObject *__pyx_v_arg) {
18054   PyObject *__pyx_r = 0;
18055   __Pyx_RefNannyDeclarations
18056   __Pyx_RefNannySetupContext("getConstraintStatus (wrapper)", 0);
18057   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_arg));
18058 
18059   /* function exit code */
18060   __Pyx_RefNannyFinishContext();
18061   return __pyx_r;
18062 }
18063 
18064 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg) {
18065   PyObject *__pyx_v_model = NULL;
18066   PyObject *__pyx_v_inds = NULL;
18067   PyObject *__pyx_v_constName = NULL;
18068   PyObject *__pyx_v_c = NULL;
18069   PyObject *__pyx_v_cInds = NULL;
18070   PyObject *__pyx_v_s = NULL;
18071   Py_ssize_t __pyx_v_i;
18072   PyObject *__pyx_r = NULL;
18073   __Pyx_TraceDeclarations
18074   __Pyx_RefNannyDeclarations
18075   int __pyx_t_1;
18076   int __pyx_t_2;
18077   int __pyx_t_3;
18078   PyObject *__pyx_t_4 = NULL;
18079   PyObject *__pyx_t_5 = NULL;
18080   int __pyx_t_6;
18081   PyObject *__pyx_t_7 = NULL;
18082   Py_ssize_t __pyx_t_8;
18083   Py_ssize_t __pyx_t_9;
18084   Py_ssize_t __pyx_t_10;
18085   PyObject *__pyx_t_11 = NULL;
18086   PyObject *__pyx_t_12 = NULL;
18087   PyObject *__pyx_t_13 = NULL;
18088   int __pyx_lineno = 0;
18089   const char *__pyx_filename = NULL;
18090   int __pyx_clineno = 0;
18091   __Pyx_RefNannySetupContext("getConstraintStatus", 0);
18092   __Pyx_TraceCall("getConstraintStatus", __pyx_f[0], 1124, 0, __PYX_ERR(0, 1124, __pyx_L1_error));
18093   __Pyx_INCREF(__pyx_v_arg);
18094 
18095   /* "cylp/cy/CyClpSimplex.pyx":1128
18096  *         Get the status of a constraint.
18097  *         '''
18098  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
18099  *             arg += self.nVariables
18100  *             return IntToStatus[self.CppSelf.getStatus(arg)]
18101  */
18102   __pyx_t_2 = PyInt_Check(__pyx_v_arg);
18103   __pyx_t_3 = (__pyx_t_2 != 0);
18104   if (!__pyx_t_3) {
18105   } else {
18106     __pyx_t_1 = __pyx_t_3;
18107     goto __pyx_L4_bool_binop_done;
18108   }
18109   __pyx_t_3 = PyLong_Check(__pyx_v_arg);
18110   __pyx_t_2 = (__pyx_t_3 != 0);
18111   __pyx_t_1 = __pyx_t_2;
18112   __pyx_L4_bool_binop_done:;
18113   __pyx_t_2 = (__pyx_t_1 != 0);
18114   if (__pyx_t_2) {
18115 
18116     /* "cylp/cy/CyClpSimplex.pyx":1129
18117  *         '''
18118  *         if isinstance(arg, (int, long)):
18119  *             arg += self.nVariables             # <<<<<<<<<<<<<<
18120  *             return IntToStatus[self.CppSelf.getStatus(arg)]
18121  *         elif True:  # isinstance(arg, CyLPVar):
18122  */
18123     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1129, __pyx_L1_error)
18124     __Pyx_GOTREF(__pyx_t_4);
18125     __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_arg, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1129, __pyx_L1_error)
18126     __Pyx_GOTREF(__pyx_t_5);
18127     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18128     __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_5);
18129     __pyx_t_5 = 0;
18130 
18131     /* "cylp/cy/CyClpSimplex.pyx":1130
18132  *         if isinstance(arg, (int, long)):
18133  *             arg += self.nVariables
18134  *             return IntToStatus[self.CppSelf.getStatus(arg)]             # <<<<<<<<<<<<<<
18135  *         elif True:  # isinstance(arg, CyLPVar):
18136  *             if self.cyLPModel is None:
18137  */
18138     __Pyx_XDECREF(__pyx_r);
18139     __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1130, __pyx_L1_error)
18140     __Pyx_GOTREF(__pyx_t_5);
18141     __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_arg); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1130, __pyx_L1_error)
18142     __pyx_t_4 = __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(__pyx_v_self->CppSelf->getStatus(__pyx_t_6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1130, __pyx_L1_error)
18143     __Pyx_GOTREF(__pyx_t_4);
18144     __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1130, __pyx_L1_error)
18145     __Pyx_GOTREF(__pyx_t_7);
18146     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
18147     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18148     __pyx_r = __pyx_t_7;
18149     __pyx_t_7 = 0;
18150     goto __pyx_L0;
18151 
18152     /* "cylp/cy/CyClpSimplex.pyx":1128
18153  *         Get the status of a constraint.
18154  *         '''
18155  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
18156  *             arg += self.nVariables
18157  *             return IntToStatus[self.CppSelf.getStatus(arg)]
18158  */
18159   }
18160 
18161   /* "cylp/cy/CyClpSimplex.pyx":1132
18162  *             return IntToStatus[self.CppSelf.getStatus(arg)]
18163  *         elif True:  # isinstance(arg, CyLPVar):
18164  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
18165  *                 raise Exception('The argument of setVarStatus can be ' \
18166  *                                 'a CyLPVar only if the object is built ' \
18167  */
18168   /*else*/ {
18169     __pyx_t_2 = (__pyx_v_self->cyLPModel == Py_None);
18170     __pyx_t_1 = (__pyx_t_2 != 0);
18171     if (unlikely(__pyx_t_1)) {
18172 
18173       /* "cylp/cy/CyClpSimplex.pyx":1133
18174  *         elif True:  # isinstance(arg, CyLPVar):
18175  *             if self.cyLPModel is None:
18176  *                 raise Exception('The argument of setVarStatus can be ' \             # <<<<<<<<<<<<<<
18177  *                                 'a CyLPVar only if the object is built ' \
18178  *                                 'using a CyLPModel.')
18179  */
18180       __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1133, __pyx_L1_error)
18181       __Pyx_GOTREF(__pyx_t_7);
18182       __Pyx_Raise(__pyx_t_7, 0, 0, 0);
18183       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18184       __PYX_ERR(0, 1133, __pyx_L1_error)
18185 
18186       /* "cylp/cy/CyClpSimplex.pyx":1132
18187  *             return IntToStatus[self.CppSelf.getStatus(arg)]
18188  *         elif True:  # isinstance(arg, CyLPVar):
18189  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
18190  *                 raise Exception('The argument of setVarStatus can be ' \
18191  *                                 'a CyLPVar only if the object is built ' \
18192  */
18193     }
18194 
18195     /* "cylp/cy/CyClpSimplex.pyx":1136
18196  *                                 'a CyLPVar only if the object is built ' \
18197  *                                 'using a CyLPModel.')
18198  *             model = self.cyLPModel             # <<<<<<<<<<<<<<
18199  *             inds = model.inds
18200  *             constName = arg
18201  */
18202     __pyx_t_7 = __pyx_v_self->cyLPModel;
18203     __Pyx_INCREF(__pyx_t_7);
18204     __pyx_v_model = __pyx_t_7;
18205     __pyx_t_7 = 0;
18206 
18207     /* "cylp/cy/CyClpSimplex.pyx":1137
18208  *                                 'using a CyLPModel.')
18209  *             model = self.cyLPModel
18210  *             inds = model.inds             # <<<<<<<<<<<<<<
18211  *             constName = arg
18212  *             if not inds.hasConst(constName):
18213  */
18214     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_inds); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1137, __pyx_L1_error)
18215     __Pyx_GOTREF(__pyx_t_7);
18216     __pyx_v_inds = __pyx_t_7;
18217     __pyx_t_7 = 0;
18218 
18219     /* "cylp/cy/CyClpSimplex.pyx":1138
18220  *             model = self.cyLPModel
18221  *             inds = model.inds
18222  *             constName = arg             # <<<<<<<<<<<<<<
18223  *             if not inds.hasConst(constName):
18224  *                 raise Exception('No such constraint: %s' % constName)
18225  */
18226     __Pyx_INCREF(__pyx_v_arg);
18227     __pyx_v_constName = __pyx_v_arg;
18228 
18229     /* "cylp/cy/CyClpSimplex.pyx":1139
18230  *             inds = model.inds
18231  *             constName = arg
18232  *             if not inds.hasConst(constName):             # <<<<<<<<<<<<<<
18233  *                 raise Exception('No such constraint: %s' % constName)
18234  *             c = inds.constIndex[constName]
18235  */
18236     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_hasConst); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1139, __pyx_L1_error)
18237     __Pyx_GOTREF(__pyx_t_4);
18238     __pyx_t_5 = NULL;
18239     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
18240       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
18241       if (likely(__pyx_t_5)) {
18242         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
18243         __Pyx_INCREF(__pyx_t_5);
18244         __Pyx_INCREF(function);
18245         __Pyx_DECREF_SET(__pyx_t_4, function);
18246       }
18247     }
18248     __pyx_t_7 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_constName) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_constName);
18249     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
18250     if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1139, __pyx_L1_error)
18251     __Pyx_GOTREF(__pyx_t_7);
18252     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18253     __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1139, __pyx_L1_error)
18254     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18255     __pyx_t_2 = ((!__pyx_t_1) != 0);
18256     if (unlikely(__pyx_t_2)) {
18257 
18258       /* "cylp/cy/CyClpSimplex.pyx":1140
18259  *             constName = arg
18260  *             if not inds.hasConst(constName):
18261  *                 raise Exception('No such constraint: %s' % constName)             # <<<<<<<<<<<<<<
18262  *             c = inds.constIndex[constName]
18263  *             cInds = c + self.nVariables
18264  */
18265       __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_No_such_constraint_s, __pyx_v_constName); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1140, __pyx_L1_error)
18266       __Pyx_GOTREF(__pyx_t_7);
18267       __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1140, __pyx_L1_error)
18268       __Pyx_GOTREF(__pyx_t_4);
18269       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18270       __Pyx_Raise(__pyx_t_4, 0, 0, 0);
18271       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18272       __PYX_ERR(0, 1140, __pyx_L1_error)
18273 
18274       /* "cylp/cy/CyClpSimplex.pyx":1139
18275  *             inds = model.inds
18276  *             constName = arg
18277  *             if not inds.hasConst(constName):             # <<<<<<<<<<<<<<
18278  *                 raise Exception('No such constraint: %s' % constName)
18279  *             c = inds.constIndex[constName]
18280  */
18281     }
18282 
18283     /* "cylp/cy/CyClpSimplex.pyx":1141
18284  *             if not inds.hasConst(constName):
18285  *                 raise Exception('No such constraint: %s' % constName)
18286  *             c = inds.constIndex[constName]             # <<<<<<<<<<<<<<
18287  *             cInds = c + self.nVariables
18288  *             s = np.array([IntToStatus[
18289  */
18290     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_constIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1141, __pyx_L1_error)
18291     __Pyx_GOTREF(__pyx_t_4);
18292     __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_constName); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1141, __pyx_L1_error)
18293     __Pyx_GOTREF(__pyx_t_7);
18294     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18295     __pyx_v_c = __pyx_t_7;
18296     __pyx_t_7 = 0;
18297 
18298     /* "cylp/cy/CyClpSimplex.pyx":1142
18299  *                 raise Exception('No such constraint: %s' % constName)
18300  *             c = inds.constIndex[constName]
18301  *             cInds = c + self.nVariables             # <<<<<<<<<<<<<<
18302  *             s = np.array([IntToStatus[
18303  *                             self.CppSelf.getStatus(cInds[i])]
18304  */
18305     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1142, __pyx_L1_error)
18306     __Pyx_GOTREF(__pyx_t_7);
18307     __pyx_t_4 = PyNumber_Add(__pyx_v_c, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1142, __pyx_L1_error)
18308     __Pyx_GOTREF(__pyx_t_4);
18309     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18310     __pyx_v_cInds = __pyx_t_4;
18311     __pyx_t_4 = 0;
18312 
18313     /* "cylp/cy/CyClpSimplex.pyx":1143
18314  *             c = inds.constIndex[constName]
18315  *             cInds = c + self.nVariables
18316  *             s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
18317  *                             self.CppSelf.getStatus(cInds[i])]
18318  *                             for i in xrange(len(cInds))])
18319  */
18320     __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1143, __pyx_L1_error)
18321     __Pyx_GOTREF(__pyx_t_7);
18322     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1143, __pyx_L1_error)
18323     __Pyx_GOTREF(__pyx_t_5);
18324     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18325     __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1143, __pyx_L1_error)
18326     __Pyx_GOTREF(__pyx_t_7);
18327 
18328     /* "cylp/cy/CyClpSimplex.pyx":1145
18329  *             s = np.array([IntToStatus[
18330  *                             self.CppSelf.getStatus(cInds[i])]
18331  *                             for i in xrange(len(cInds))])             # <<<<<<<<<<<<<<
18332  *             if len(s) == 1:
18333  *                 return s[0]
18334  */
18335     __pyx_t_8 = PyObject_Length(__pyx_v_cInds); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1145, __pyx_L1_error)
18336     __pyx_t_9 = __pyx_t_8;
18337     for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
18338       __pyx_v_i = __pyx_t_10;
18339 
18340       /* "cylp/cy/CyClpSimplex.pyx":1143
18341  *             c = inds.constIndex[constName]
18342  *             cInds = c + self.nVariables
18343  *             s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
18344  *                             self.CppSelf.getStatus(cInds[i])]
18345  *                             for i in xrange(len(cInds))])
18346  */
18347       __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1143, __pyx_L1_error)
18348       __Pyx_GOTREF(__pyx_t_11);
18349 
18350       /* "cylp/cy/CyClpSimplex.pyx":1144
18351  *             cInds = c + self.nVariables
18352  *             s = np.array([IntToStatus[
18353  *                             self.CppSelf.getStatus(cInds[i])]             # <<<<<<<<<<<<<<
18354  *                             for i in xrange(len(cInds))])
18355  *             if len(s) == 1:
18356  */
18357       __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_cInds, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1144, __pyx_L1_error)
18358       __Pyx_GOTREF(__pyx_t_12);
18359       __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1144, __pyx_L1_error)
18360       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
18361       __pyx_t_12 = __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(__pyx_v_self->CppSelf->getStatus(__pyx_t_6)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1144, __pyx_L1_error)
18362       __Pyx_GOTREF(__pyx_t_12);
18363 
18364       /* "cylp/cy/CyClpSimplex.pyx":1143
18365  *             c = inds.constIndex[constName]
18366  *             cInds = c + self.nVariables
18367  *             s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
18368  *                             self.CppSelf.getStatus(cInds[i])]
18369  *                             for i in xrange(len(cInds))])
18370  */
18371       __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1143, __pyx_L1_error)
18372       __Pyx_GOTREF(__pyx_t_13);
18373       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
18374       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
18375       if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 1143, __pyx_L1_error)
18376       __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
18377     }
18378     __pyx_t_13 = NULL;
18379     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
18380       __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5);
18381       if (likely(__pyx_t_13)) {
18382         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
18383         __Pyx_INCREF(__pyx_t_13);
18384         __Pyx_INCREF(function);
18385         __Pyx_DECREF_SET(__pyx_t_5, function);
18386       }
18387     }
18388     __pyx_t_4 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_13, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7);
18389     __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
18390     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18391     if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1143, __pyx_L1_error)
18392     __Pyx_GOTREF(__pyx_t_4);
18393     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
18394     __pyx_v_s = __pyx_t_4;
18395     __pyx_t_4 = 0;
18396 
18397     /* "cylp/cy/CyClpSimplex.pyx":1146
18398  *                             self.CppSelf.getStatus(cInds[i])]
18399  *                             for i in xrange(len(cInds))])
18400  *             if len(s) == 1:             # <<<<<<<<<<<<<<
18401  *                 return s[0]
18402  *             return s
18403  */
18404     __pyx_t_8 = PyObject_Length(__pyx_v_s); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1146, __pyx_L1_error)
18405     __pyx_t_2 = ((__pyx_t_8 == 1) != 0);
18406     if (__pyx_t_2) {
18407 
18408       /* "cylp/cy/CyClpSimplex.pyx":1147
18409  *                             for i in xrange(len(cInds))])
18410  *             if len(s) == 1:
18411  *                 return s[0]             # <<<<<<<<<<<<<<
18412  *             return s
18413  *
18414  */
18415       __Pyx_XDECREF(__pyx_r);
18416       __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_s, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1147, __pyx_L1_error)
18417       __Pyx_GOTREF(__pyx_t_4);
18418       __pyx_r = __pyx_t_4;
18419       __pyx_t_4 = 0;
18420       goto __pyx_L0;
18421 
18422       /* "cylp/cy/CyClpSimplex.pyx":1146
18423  *                             self.CppSelf.getStatus(cInds[i])]
18424  *                             for i in xrange(len(cInds))])
18425  *             if len(s) == 1:             # <<<<<<<<<<<<<<
18426  *                 return s[0]
18427  *             return s
18428  */
18429     }
18430 
18431     /* "cylp/cy/CyClpSimplex.pyx":1148
18432  *             if len(s) == 1:
18433  *                 return s[0]
18434  *             return s             # <<<<<<<<<<<<<<
18435  *
18436  *
18437  */
18438     __Pyx_XDECREF(__pyx_r);
18439     __Pyx_INCREF(__pyx_v_s);
18440     __pyx_r = __pyx_v_s;
18441     goto __pyx_L0;
18442   }
18443 
18444   /* "cylp/cy/CyClpSimplex.pyx":1124
18445  *                 self.CppSelf.setStatus(cInds[i], status)
18446  *
18447  *     def getConstraintStatus(self, arg):             # <<<<<<<<<<<<<<
18448  *         '''
18449  *         Get the status of a constraint.
18450  */
18451 
18452   /* function exit code */
18453   __pyx_L1_error:;
18454   __Pyx_XDECREF(__pyx_t_4);
18455   __Pyx_XDECREF(__pyx_t_5);
18456   __Pyx_XDECREF(__pyx_t_7);
18457   __Pyx_XDECREF(__pyx_t_11);
18458   __Pyx_XDECREF(__pyx_t_12);
18459   __Pyx_XDECREF(__pyx_t_13);
18460   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getConstraintStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
18461   __pyx_r = NULL;
18462   __pyx_L0:;
18463   __Pyx_XDECREF(__pyx_v_model);
18464   __Pyx_XDECREF(__pyx_v_inds);
18465   __Pyx_XDECREF(__pyx_v_constName);
18466   __Pyx_XDECREF(__pyx_v_c);
18467   __Pyx_XDECREF(__pyx_v_cInds);
18468   __Pyx_XDECREF(__pyx_v_s);
18469   __Pyx_XDECREF(__pyx_v_arg);
18470   __Pyx_XGIVEREF(__pyx_r);
18471   __Pyx_TraceReturn(__pyx_r, 0);
18472   __Pyx_RefNannyFinishContext();
18473   return __pyx_r;
18474 }
18475 
18476 /* "cylp/cy/CyClpSimplex.pyx":1151
18477  *
18478  *
18479  *     def setColumnUpperArray(self, np.ndarray[np.double_t, ndim=1] columnUpper):             # <<<<<<<<<<<<<<
18480  *         '''
18481  *         columnUpper should have n+m elements. The method only does
18482  */
18483 
18484 /* Python wrapper */
18485 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_61setColumnUpperArray(PyObject *__pyx_v_self, PyObject *__pyx_v_columnUpper); /*proto*/
18486 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_60setColumnUpperArray[] = "CyClpSimplex.setColumnUpperArray(self, ndarray columnUpper)\n\n        columnUpper should have n+m elements. The method only does\n        a pointer assignment. If you only want to set the first n\n        elements use setColumnUpperFirstElements().\n        ";
18487 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_61setColumnUpperArray(PyObject *__pyx_v_self, PyObject *__pyx_v_columnUpper) {
18488   int __pyx_lineno = 0;
18489   const char *__pyx_filename = NULL;
18490   int __pyx_clineno = 0;
18491   PyObject *__pyx_r = 0;
18492   __Pyx_RefNannyDeclarations
18493   __Pyx_RefNannySetupContext("setColumnUpperArray (wrapper)", 0);
18494   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnUpper), __pyx_ptype_5numpy_ndarray, 1, "columnUpper", 0))) __PYX_ERR(0, 1151, __pyx_L1_error)
18495   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_60setColumnUpperArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_columnUpper));
18496 
18497   /* function exit code */
18498   goto __pyx_L0;
18499   __pyx_L1_error:;
18500   __pyx_r = NULL;
18501   __pyx_L0:;
18502   __Pyx_RefNannyFinishContext();
18503   return __pyx_r;
18504 }
18505 
18506 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_60setColumnUpperArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnUpper) {
18507   __Pyx_LocalBuf_ND __pyx_pybuffernd_columnUpper;
18508   __Pyx_Buffer __pyx_pybuffer_columnUpper;
18509   PyObject *__pyx_r = NULL;
18510   __Pyx_TraceDeclarations
18511   __Pyx_RefNannyDeclarations
18512   int __pyx_lineno = 0;
18513   const char *__pyx_filename = NULL;
18514   int __pyx_clineno = 0;
18515   __Pyx_RefNannySetupContext("setColumnUpperArray", 0);
18516   __Pyx_TraceCall("setColumnUpperArray", __pyx_f[0], 1151, 0, __PYX_ERR(0, 1151, __pyx_L1_error));
18517   __pyx_pybuffer_columnUpper.pybuffer.buf = NULL;
18518   __pyx_pybuffer_columnUpper.refcount = 0;
18519   __pyx_pybuffernd_columnUpper.data = NULL;
18520   __pyx_pybuffernd_columnUpper.rcbuffer = &__pyx_pybuffer_columnUpper;
18521   {
18522     __Pyx_BufFmt_StackElem __pyx_stack[1];
18523     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer, (PyObject*)__pyx_v_columnUpper, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1151, __pyx_L1_error)
18524   }
18525   __pyx_pybuffernd_columnUpper.diminfo[0].strides = __pyx_pybuffernd_columnUpper.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columnUpper.diminfo[0].shape = __pyx_pybuffernd_columnUpper.rcbuffer->pybuffer.shape[0];
18526 
18527   /* "cylp/cy/CyClpSimplex.pyx":1157
18528  *         elements use setColumnUpperFirstElements().
18529  *         '''
18530  *         self.CppSelf.setColumnUpperArray(<double*>columnUpper.data)             # <<<<<<<<<<<<<<
18531  *
18532  *     def setColumnUpperFirstElements(self, np.ndarray[np.double_t, ndim=1] columnUpper):
18533  */
18534   __pyx_v_self->CppSelf->setColumnUpperArray(((double *)__pyx_v_columnUpper->data));
18535 
18536   /* "cylp/cy/CyClpSimplex.pyx":1151
18537  *
18538  *
18539  *     def setColumnUpperArray(self, np.ndarray[np.double_t, ndim=1] columnUpper):             # <<<<<<<<<<<<<<
18540  *         '''
18541  *         columnUpper should have n+m elements. The method only does
18542  */
18543 
18544   /* function exit code */
18545   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18546   goto __pyx_L0;
18547   __pyx_L1_error:;
18548   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
18549     __Pyx_PyThreadState_declare
18550     __Pyx_PyThreadState_assign
18551     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
18552     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
18553   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
18554   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpperArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
18555   __pyx_r = NULL;
18556   goto __pyx_L2;
18557   __pyx_L0:;
18558   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
18559   __pyx_L2:;
18560   __Pyx_XGIVEREF(__pyx_r);
18561   __Pyx_TraceReturn(__pyx_r, 0);
18562   __Pyx_RefNannyFinishContext();
18563   return __pyx_r;
18564 }
18565 
18566 /* "cylp/cy/CyClpSimplex.pyx":1159
18567  *         self.CppSelf.setColumnUpperArray(<double*>columnUpper.data)
18568  *
18569  *     def setColumnUpperFirstElements(self, np.ndarray[np.double_t, ndim=1] columnUpper):             # <<<<<<<<<<<<<<
18570  *         '''
18571  *         Run a loop in C++ and set the first n elements of variables' upperbounds
18572  */
18573 
18574 /* Python wrapper */
18575 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_63setColumnUpperFirstElements(PyObject *__pyx_v_self, PyObject *__pyx_v_columnUpper); /*proto*/
18576 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_62setColumnUpperFirstElements[] = "CyClpSimplex.setColumnUpperFirstElements(self, ndarray columnUpper)\n\n        Run a loop in C++ and set the first n elements of variables' upperbounds\n        ";
18577 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_63setColumnUpperFirstElements(PyObject *__pyx_v_self, PyObject *__pyx_v_columnUpper) {
18578   int __pyx_lineno = 0;
18579   const char *__pyx_filename = NULL;
18580   int __pyx_clineno = 0;
18581   PyObject *__pyx_r = 0;
18582   __Pyx_RefNannyDeclarations
18583   __Pyx_RefNannySetupContext("setColumnUpperFirstElements (wrapper)", 0);
18584   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnUpper), __pyx_ptype_5numpy_ndarray, 1, "columnUpper", 0))) __PYX_ERR(0, 1159, __pyx_L1_error)
18585   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_62setColumnUpperFirstElements(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_columnUpper));
18586 
18587   /* function exit code */
18588   goto __pyx_L0;
18589   __pyx_L1_error:;
18590   __pyx_r = NULL;
18591   __pyx_L0:;
18592   __Pyx_RefNannyFinishContext();
18593   return __pyx_r;
18594 }
18595 
18596 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_62setColumnUpperFirstElements(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnUpper) {
18597   __Pyx_LocalBuf_ND __pyx_pybuffernd_columnUpper;
18598   __Pyx_Buffer __pyx_pybuffer_columnUpper;
18599   PyObject *__pyx_r = NULL;
18600   __Pyx_TraceDeclarations
18601   __Pyx_RefNannyDeclarations
18602   Py_ssize_t __pyx_t_1;
18603   int __pyx_lineno = 0;
18604   const char *__pyx_filename = NULL;
18605   int __pyx_clineno = 0;
18606   __Pyx_RefNannySetupContext("setColumnUpperFirstElements", 0);
18607   __Pyx_TraceCall("setColumnUpperFirstElements", __pyx_f[0], 1159, 0, __PYX_ERR(0, 1159, __pyx_L1_error));
18608   __pyx_pybuffer_columnUpper.pybuffer.buf = NULL;
18609   __pyx_pybuffer_columnUpper.refcount = 0;
18610   __pyx_pybuffernd_columnUpper.data = NULL;
18611   __pyx_pybuffernd_columnUpper.rcbuffer = &__pyx_pybuffer_columnUpper;
18612   {
18613     __Pyx_BufFmt_StackElem __pyx_stack[1];
18614     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer, (PyObject*)__pyx_v_columnUpper, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1159, __pyx_L1_error)
18615   }
18616   __pyx_pybuffernd_columnUpper.diminfo[0].strides = __pyx_pybuffernd_columnUpper.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columnUpper.diminfo[0].shape = __pyx_pybuffernd_columnUpper.rcbuffer->pybuffer.shape[0];
18617 
18618   /* "cylp/cy/CyClpSimplex.pyx":1163
18619  *         Run a loop in C++ and set the first n elements of variables' upperbounds
18620  *         '''
18621  *         self.CppSelf.setColumnUpperFirstElements(len(columnUpper), <double*>columnUpper.data)             # <<<<<<<<<<<<<<
18622  *
18623  *     def setColumnLowerArray(self, np.ndarray[np.double_t, ndim=1] columnLower):
18624  */
18625   __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_columnUpper)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1163, __pyx_L1_error)
18626   __pyx_v_self->CppSelf->setColumnUpperFirstElements(__pyx_t_1, ((double *)__pyx_v_columnUpper->data));
18627 
18628   /* "cylp/cy/CyClpSimplex.pyx":1159
18629  *         self.CppSelf.setColumnUpperArray(<double*>columnUpper.data)
18630  *
18631  *     def setColumnUpperFirstElements(self, np.ndarray[np.double_t, ndim=1] columnUpper):             # <<<<<<<<<<<<<<
18632  *         '''
18633  *         Run a loop in C++ and set the first n elements of variables' upperbounds
18634  */
18635 
18636   /* function exit code */
18637   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18638   goto __pyx_L0;
18639   __pyx_L1_error:;
18640   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
18641     __Pyx_PyThreadState_declare
18642     __Pyx_PyThreadState_assign
18643     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
18644     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
18645   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
18646   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpperFirstElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
18647   __pyx_r = NULL;
18648   goto __pyx_L2;
18649   __pyx_L0:;
18650   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
18651   __pyx_L2:;
18652   __Pyx_XGIVEREF(__pyx_r);
18653   __Pyx_TraceReturn(__pyx_r, 0);
18654   __Pyx_RefNannyFinishContext();
18655   return __pyx_r;
18656 }
18657 
18658 /* "cylp/cy/CyClpSimplex.pyx":1165
18659  *         self.CppSelf.setColumnUpperFirstElements(len(columnUpper), <double*>columnUpper.data)
18660  *
18661  *     def setColumnLowerArray(self, np.ndarray[np.double_t, ndim=1] columnLower):             # <<<<<<<<<<<<<<
18662  *         '''
18663  *         columnLower should have n+m elements. The method only does
18664  */
18665 
18666 /* Python wrapper */
18667 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_65setColumnLowerArray(PyObject *__pyx_v_self, PyObject *__pyx_v_columnLower); /*proto*/
18668 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_64setColumnLowerArray[] = "CyClpSimplex.setColumnLowerArray(self, ndarray columnLower)\n\n        columnLower should have n+m elements. The method only does\n        a pointer assignment. If you only want to set the first n\n        elements use setColumnLowerFirstElements().\n        ";
18669 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_65setColumnLowerArray(PyObject *__pyx_v_self, PyObject *__pyx_v_columnLower) {
18670   int __pyx_lineno = 0;
18671   const char *__pyx_filename = NULL;
18672   int __pyx_clineno = 0;
18673   PyObject *__pyx_r = 0;
18674   __Pyx_RefNannyDeclarations
18675   __Pyx_RefNannySetupContext("setColumnLowerArray (wrapper)", 0);
18676   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnLower), __pyx_ptype_5numpy_ndarray, 1, "columnLower", 0))) __PYX_ERR(0, 1165, __pyx_L1_error)
18677   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_64setColumnLowerArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_columnLower));
18678 
18679   /* function exit code */
18680   goto __pyx_L0;
18681   __pyx_L1_error:;
18682   __pyx_r = NULL;
18683   __pyx_L0:;
18684   __Pyx_RefNannyFinishContext();
18685   return __pyx_r;
18686 }
18687 
18688 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_64setColumnLowerArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnLower) {
18689   __Pyx_LocalBuf_ND __pyx_pybuffernd_columnLower;
18690   __Pyx_Buffer __pyx_pybuffer_columnLower;
18691   PyObject *__pyx_r = NULL;
18692   __Pyx_TraceDeclarations
18693   __Pyx_RefNannyDeclarations
18694   int __pyx_lineno = 0;
18695   const char *__pyx_filename = NULL;
18696   int __pyx_clineno = 0;
18697   __Pyx_RefNannySetupContext("setColumnLowerArray", 0);
18698   __Pyx_TraceCall("setColumnLowerArray", __pyx_f[0], 1165, 0, __PYX_ERR(0, 1165, __pyx_L1_error));
18699   __pyx_pybuffer_columnLower.pybuffer.buf = NULL;
18700   __pyx_pybuffer_columnLower.refcount = 0;
18701   __pyx_pybuffernd_columnLower.data = NULL;
18702   __pyx_pybuffernd_columnLower.rcbuffer = &__pyx_pybuffer_columnLower;
18703   {
18704     __Pyx_BufFmt_StackElem __pyx_stack[1];
18705     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer, (PyObject*)__pyx_v_columnLower, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1165, __pyx_L1_error)
18706   }
18707   __pyx_pybuffernd_columnLower.diminfo[0].strides = __pyx_pybuffernd_columnLower.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columnLower.diminfo[0].shape = __pyx_pybuffernd_columnLower.rcbuffer->pybuffer.shape[0];
18708 
18709   /* "cylp/cy/CyClpSimplex.pyx":1171
18710  *         elements use setColumnLowerFirstElements().
18711  *         '''
18712  *         self.CppSelf.setColumnLowerArray(<double*>columnLower.data)             # <<<<<<<<<<<<<<
18713  *
18714  *     def setColumnLowerFirstElements(self, np.ndarray[np.double_t, ndim=1] columnLower):
18715  */
18716   __pyx_v_self->CppSelf->setColumnLowerArray(((double *)__pyx_v_columnLower->data));
18717 
18718   /* "cylp/cy/CyClpSimplex.pyx":1165
18719  *         self.CppSelf.setColumnUpperFirstElements(len(columnUpper), <double*>columnUpper.data)
18720  *
18721  *     def setColumnLowerArray(self, np.ndarray[np.double_t, ndim=1] columnLower):             # <<<<<<<<<<<<<<
18722  *         '''
18723  *         columnLower should have n+m elements. The method only does
18724  */
18725 
18726   /* function exit code */
18727   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18728   goto __pyx_L0;
18729   __pyx_L1_error:;
18730   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
18731     __Pyx_PyThreadState_declare
18732     __Pyx_PyThreadState_assign
18733     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
18734     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
18735   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
18736   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLowerArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
18737   __pyx_r = NULL;
18738   goto __pyx_L2;
18739   __pyx_L0:;
18740   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
18741   __pyx_L2:;
18742   __Pyx_XGIVEREF(__pyx_r);
18743   __Pyx_TraceReturn(__pyx_r, 0);
18744   __Pyx_RefNannyFinishContext();
18745   return __pyx_r;
18746 }
18747 
18748 /* "cylp/cy/CyClpSimplex.pyx":1173
18749  *         self.CppSelf.setColumnLowerArray(<double*>columnLower.data)
18750  *
18751  *     def setColumnLowerFirstElements(self, np.ndarray[np.double_t, ndim=1] columnLower):             # <<<<<<<<<<<<<<
18752  *         '''
18753  *         Run a loop in C++ and set the first n elements of variables' lowerbounds
18754  */
18755 
18756 /* Python wrapper */
18757 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_67setColumnLowerFirstElements(PyObject *__pyx_v_self, PyObject *__pyx_v_columnLower); /*proto*/
18758 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_66setColumnLowerFirstElements[] = "CyClpSimplex.setColumnLowerFirstElements(self, ndarray columnLower)\n\n        Run a loop in C++ and set the first n elements of variables' lowerbounds\n        ";
18759 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_67setColumnLowerFirstElements(PyObject *__pyx_v_self, PyObject *__pyx_v_columnLower) {
18760   int __pyx_lineno = 0;
18761   const char *__pyx_filename = NULL;
18762   int __pyx_clineno = 0;
18763   PyObject *__pyx_r = 0;
18764   __Pyx_RefNannyDeclarations
18765   __Pyx_RefNannySetupContext("setColumnLowerFirstElements (wrapper)", 0);
18766   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnLower), __pyx_ptype_5numpy_ndarray, 1, "columnLower", 0))) __PYX_ERR(0, 1173, __pyx_L1_error)
18767   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_66setColumnLowerFirstElements(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_columnLower));
18768 
18769   /* function exit code */
18770   goto __pyx_L0;
18771   __pyx_L1_error:;
18772   __pyx_r = NULL;
18773   __pyx_L0:;
18774   __Pyx_RefNannyFinishContext();
18775   return __pyx_r;
18776 }
18777 
18778 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_66setColumnLowerFirstElements(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnLower) {
18779   __Pyx_LocalBuf_ND __pyx_pybuffernd_columnLower;
18780   __Pyx_Buffer __pyx_pybuffer_columnLower;
18781   PyObject *__pyx_r = NULL;
18782   __Pyx_TraceDeclarations
18783   __Pyx_RefNannyDeclarations
18784   Py_ssize_t __pyx_t_1;
18785   int __pyx_lineno = 0;
18786   const char *__pyx_filename = NULL;
18787   int __pyx_clineno = 0;
18788   __Pyx_RefNannySetupContext("setColumnLowerFirstElements", 0);
18789   __Pyx_TraceCall("setColumnLowerFirstElements", __pyx_f[0], 1173, 0, __PYX_ERR(0, 1173, __pyx_L1_error));
18790   __pyx_pybuffer_columnLower.pybuffer.buf = NULL;
18791   __pyx_pybuffer_columnLower.refcount = 0;
18792   __pyx_pybuffernd_columnLower.data = NULL;
18793   __pyx_pybuffernd_columnLower.rcbuffer = &__pyx_pybuffer_columnLower;
18794   {
18795     __Pyx_BufFmt_StackElem __pyx_stack[1];
18796     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer, (PyObject*)__pyx_v_columnLower, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1173, __pyx_L1_error)
18797   }
18798   __pyx_pybuffernd_columnLower.diminfo[0].strides = __pyx_pybuffernd_columnLower.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columnLower.diminfo[0].shape = __pyx_pybuffernd_columnLower.rcbuffer->pybuffer.shape[0];
18799 
18800   /* "cylp/cy/CyClpSimplex.pyx":1177
18801  *         Run a loop in C++ and set the first n elements of variables' lowerbounds
18802  *         '''
18803  *         self.CppSelf.setColumnLowerFirstElements(len(columnLower), <double*>columnLower.data)             # <<<<<<<<<<<<<<
18804  *
18805  *     def setColumnLowerSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,
18806  */
18807   __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_columnLower)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1177, __pyx_L1_error)
18808   __pyx_v_self->CppSelf->setColumnLowerFirstElements(__pyx_t_1, ((double *)__pyx_v_columnLower->data));
18809 
18810   /* "cylp/cy/CyClpSimplex.pyx":1173
18811  *         self.CppSelf.setColumnLowerArray(<double*>columnLower.data)
18812  *
18813  *     def setColumnLowerFirstElements(self, np.ndarray[np.double_t, ndim=1] columnLower):             # <<<<<<<<<<<<<<
18814  *         '''
18815  *         Run a loop in C++ and set the first n elements of variables' lowerbounds
18816  */
18817 
18818   /* function exit code */
18819   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18820   goto __pyx_L0;
18821   __pyx_L1_error:;
18822   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
18823     __Pyx_PyThreadState_declare
18824     __Pyx_PyThreadState_assign
18825     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
18826     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
18827   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
18828   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLowerFirstElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
18829   __pyx_r = NULL;
18830   goto __pyx_L2;
18831   __pyx_L0:;
18832   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
18833   __pyx_L2:;
18834   __Pyx_XGIVEREF(__pyx_r);
18835   __Pyx_TraceReturn(__pyx_r, 0);
18836   __Pyx_RefNannyFinishContext();
18837   return __pyx_r;
18838 }
18839 
18840 /* "cylp/cy/CyClpSimplex.pyx":1179
18841  *         self.CppSelf.setColumnLowerFirstElements(len(columnLower), <double*>columnLower.data)
18842  *
18843  *     def setColumnLowerSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,             # <<<<<<<<<<<<<<
18844  *                                    np.ndarray[np.int32_t, ndim=1] indices,
18845  *                                    np.ndarray[np.double_t, ndim=1] columnLower):
18846  */
18847 
18848 /* Python wrapper */
18849 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_69setColumnLowerSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
18850 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_68setColumnLowerSubset[] = "CyClpSimplex.setColumnLowerSubset(self, ndarray indicesOfIndices, ndarray indices, ndarray columnLower)\n\n        This method is defined for a very specific purpose.\n        It's only to be used to speed up self.addConstraint()\n        ";
18851 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_69setColumnLowerSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
18852   PyArrayObject *__pyx_v_indicesOfIndices = 0;
18853   PyArrayObject *__pyx_v_indices = 0;
18854   PyArrayObject *__pyx_v_columnLower = 0;
18855   int __pyx_lineno = 0;
18856   const char *__pyx_filename = NULL;
18857   int __pyx_clineno = 0;
18858   PyObject *__pyx_r = 0;
18859   __Pyx_RefNannyDeclarations
18860   __Pyx_RefNannySetupContext("setColumnLowerSubset (wrapper)", 0);
18861   {
18862     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indicesOfIndices,&__pyx_n_s_indices,&__pyx_n_s_columnLower,0};
18863     PyObject* values[3] = {0,0,0};
18864     if (unlikely(__pyx_kwds)) {
18865       Py_ssize_t kw_args;
18866       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
18867       switch (pos_args) {
18868         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18869         CYTHON_FALLTHROUGH;
18870         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18871         CYTHON_FALLTHROUGH;
18872         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18873         CYTHON_FALLTHROUGH;
18874         case  0: break;
18875         default: goto __pyx_L5_argtuple_error;
18876       }
18877       kw_args = PyDict_Size(__pyx_kwds);
18878       switch (pos_args) {
18879         case  0:
18880         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indicesOfIndices)) != 0)) kw_args--;
18881         else goto __pyx_L5_argtuple_error;
18882         CYTHON_FALLTHROUGH;
18883         case  1:
18884         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--;
18885         else {
18886           __Pyx_RaiseArgtupleInvalid("setColumnLowerSubset", 1, 3, 3, 1); __PYX_ERR(0, 1179, __pyx_L3_error)
18887         }
18888         CYTHON_FALLTHROUGH;
18889         case  2:
18890         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnLower)) != 0)) kw_args--;
18891         else {
18892           __Pyx_RaiseArgtupleInvalid("setColumnLowerSubset", 1, 3, 3, 2); __PYX_ERR(0, 1179, __pyx_L3_error)
18893         }
18894       }
18895       if (unlikely(kw_args > 0)) {
18896         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setColumnLowerSubset") < 0)) __PYX_ERR(0, 1179, __pyx_L3_error)
18897       }
18898     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
18899       goto __pyx_L5_argtuple_error;
18900     } else {
18901       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18902       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18903       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18904     }
18905     __pyx_v_indicesOfIndices = ((PyArrayObject *)values[0]);
18906     __pyx_v_indices = ((PyArrayObject *)values[1]);
18907     __pyx_v_columnLower = ((PyArrayObject *)values[2]);
18908   }
18909   goto __pyx_L4_argument_unpacking_done;
18910   __pyx_L5_argtuple_error:;
18911   __Pyx_RaiseArgtupleInvalid("setColumnLowerSubset", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1179, __pyx_L3_error)
18912   __pyx_L3_error:;
18913   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLowerSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
18914   __Pyx_RefNannyFinishContext();
18915   return NULL;
18916   __pyx_L4_argument_unpacking_done:;
18917   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_indicesOfIndices), __pyx_ptype_5numpy_ndarray, 1, "indicesOfIndices", 0))) __PYX_ERR(0, 1179, __pyx_L1_error)
18918   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_indices), __pyx_ptype_5numpy_ndarray, 1, "indices", 0))) __PYX_ERR(0, 1180, __pyx_L1_error)
18919   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnLower), __pyx_ptype_5numpy_ndarray, 1, "columnLower", 0))) __PYX_ERR(0, 1181, __pyx_L1_error)
18920   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_68setColumnLowerSubset(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_indicesOfIndices, __pyx_v_indices, __pyx_v_columnLower);
18921 
18922   /* function exit code */
18923   goto __pyx_L0;
18924   __pyx_L1_error:;
18925   __pyx_r = NULL;
18926   __pyx_L0:;
18927   __Pyx_RefNannyFinishContext();
18928   return __pyx_r;
18929 }
18930 
18931 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_68setColumnLowerSubset(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_indicesOfIndices, PyArrayObject *__pyx_v_indices, PyArrayObject *__pyx_v_columnLower) {
18932   __Pyx_LocalBuf_ND __pyx_pybuffernd_columnLower;
18933   __Pyx_Buffer __pyx_pybuffer_columnLower;
18934   __Pyx_LocalBuf_ND __pyx_pybuffernd_indices;
18935   __Pyx_Buffer __pyx_pybuffer_indices;
18936   __Pyx_LocalBuf_ND __pyx_pybuffernd_indicesOfIndices;
18937   __Pyx_Buffer __pyx_pybuffer_indicesOfIndices;
18938   PyObject *__pyx_r = NULL;
18939   __Pyx_TraceDeclarations
18940   __Pyx_RefNannyDeclarations
18941   Py_ssize_t __pyx_t_1;
18942   int __pyx_lineno = 0;
18943   const char *__pyx_filename = NULL;
18944   int __pyx_clineno = 0;
18945   __Pyx_RefNannySetupContext("setColumnLowerSubset", 0);
18946   __Pyx_TraceCall("setColumnLowerSubset", __pyx_f[0], 1179, 0, __PYX_ERR(0, 1179, __pyx_L1_error));
18947   __pyx_pybuffer_indicesOfIndices.pybuffer.buf = NULL;
18948   __pyx_pybuffer_indicesOfIndices.refcount = 0;
18949   __pyx_pybuffernd_indicesOfIndices.data = NULL;
18950   __pyx_pybuffernd_indicesOfIndices.rcbuffer = &__pyx_pybuffer_indicesOfIndices;
18951   __pyx_pybuffer_indices.pybuffer.buf = NULL;
18952   __pyx_pybuffer_indices.refcount = 0;
18953   __pyx_pybuffernd_indices.data = NULL;
18954   __pyx_pybuffernd_indices.rcbuffer = &__pyx_pybuffer_indices;
18955   __pyx_pybuffer_columnLower.pybuffer.buf = NULL;
18956   __pyx_pybuffer_columnLower.refcount = 0;
18957   __pyx_pybuffernd_columnLower.data = NULL;
18958   __pyx_pybuffernd_columnLower.rcbuffer = &__pyx_pybuffer_columnLower;
18959   {
18960     __Pyx_BufFmt_StackElem __pyx_stack[1];
18961     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer, (PyObject*)__pyx_v_indicesOfIndices, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1179, __pyx_L1_error)
18962   }
18963   __pyx_pybuffernd_indicesOfIndices.diminfo[0].strides = __pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indicesOfIndices.diminfo[0].shape = __pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer.shape[0];
18964   {
18965     __Pyx_BufFmt_StackElem __pyx_stack[1];
18966     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indices.rcbuffer->pybuffer, (PyObject*)__pyx_v_indices, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1179, __pyx_L1_error)
18967   }
18968   __pyx_pybuffernd_indices.diminfo[0].strides = __pyx_pybuffernd_indices.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indices.diminfo[0].shape = __pyx_pybuffernd_indices.rcbuffer->pybuffer.shape[0];
18969   {
18970     __Pyx_BufFmt_StackElem __pyx_stack[1];
18971     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer, (PyObject*)__pyx_v_columnLower, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1179, __pyx_L1_error)
18972   }
18973   __pyx_pybuffernd_columnLower.diminfo[0].strides = __pyx_pybuffernd_columnLower.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columnLower.diminfo[0].shape = __pyx_pybuffernd_columnLower.rcbuffer->pybuffer.shape[0];
18974 
18975   /* "cylp/cy/CyClpSimplex.pyx":1186
18976  *         It's only to be used to speed up self.addConstraint()
18977  *         '''
18978  *         self.CppSelf.setColumnLowerSubset(len(indicesOfIndices), <int*> indicesOfIndices.data,             # <<<<<<<<<<<<<<
18979  *                                           <int*> indices.data,
18980  *                                           <double*>columnLower.data)
18981  */
18982   __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_indicesOfIndices)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1186, __pyx_L1_error)
18983 
18984   /* "cylp/cy/CyClpSimplex.pyx":1188
18985  *         self.CppSelf.setColumnLowerSubset(len(indicesOfIndices), <int*> indicesOfIndices.data,
18986  *                                           <int*> indices.data,
18987  *                                           <double*>columnLower.data)             # <<<<<<<<<<<<<<
18988  *
18989  *     def setColumnUpperSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,
18990  */
18991   __pyx_v_self->CppSelf->setColumnLowerSubset(__pyx_t_1, ((int *)__pyx_v_indicesOfIndices->data), ((int *)__pyx_v_indices->data), ((double *)__pyx_v_columnLower->data));
18992 
18993   /* "cylp/cy/CyClpSimplex.pyx":1179
18994  *         self.CppSelf.setColumnLowerFirstElements(len(columnLower), <double*>columnLower.data)
18995  *
18996  *     def setColumnLowerSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,             # <<<<<<<<<<<<<<
18997  *                                    np.ndarray[np.int32_t, ndim=1] indices,
18998  *                                    np.ndarray[np.double_t, ndim=1] columnLower):
18999  */
19000 
19001   /* function exit code */
19002   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19003   goto __pyx_L0;
19004   __pyx_L1_error:;
19005   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
19006     __Pyx_PyThreadState_declare
19007     __Pyx_PyThreadState_assign
19008     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
19009     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
19010     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer);
19011     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer);
19012   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
19013   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLowerSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
19014   __pyx_r = NULL;
19015   goto __pyx_L2;
19016   __pyx_L0:;
19017   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
19018   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer);
19019   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer);
19020   __pyx_L2:;
19021   __Pyx_XGIVEREF(__pyx_r);
19022   __Pyx_TraceReturn(__pyx_r, 0);
19023   __Pyx_RefNannyFinishContext();
19024   return __pyx_r;
19025 }
19026 
19027 /* "cylp/cy/CyClpSimplex.pyx":1190
19028  *                                           <double*>columnLower.data)
19029  *
19030  *     def setColumnUpperSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,             # <<<<<<<<<<<<<<
19031  *                                    np.ndarray[np.int32_t, ndim=1] indices,
19032  *                                    np.ndarray[np.double_t, ndim=1] columnUpper):
19033  */
19034 
19035 /* Python wrapper */
19036 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_71setColumnUpperSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19037 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_70setColumnUpperSubset[] = "CyClpSimplex.setColumnUpperSubset(self, ndarray indicesOfIndices, ndarray indices, ndarray columnUpper)\n\n        This method is defined for a very specific purpose.\n        It's only to be used to speed up self.addConstraint()\n        ";
19038 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_71setColumnUpperSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19039   PyArrayObject *__pyx_v_indicesOfIndices = 0;
19040   PyArrayObject *__pyx_v_indices = 0;
19041   PyArrayObject *__pyx_v_columnUpper = 0;
19042   int __pyx_lineno = 0;
19043   const char *__pyx_filename = NULL;
19044   int __pyx_clineno = 0;
19045   PyObject *__pyx_r = 0;
19046   __Pyx_RefNannyDeclarations
19047   __Pyx_RefNannySetupContext("setColumnUpperSubset (wrapper)", 0);
19048   {
19049     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indicesOfIndices,&__pyx_n_s_indices,&__pyx_n_s_columnUpper,0};
19050     PyObject* values[3] = {0,0,0};
19051     if (unlikely(__pyx_kwds)) {
19052       Py_ssize_t kw_args;
19053       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
19054       switch (pos_args) {
19055         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19056         CYTHON_FALLTHROUGH;
19057         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19058         CYTHON_FALLTHROUGH;
19059         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19060         CYTHON_FALLTHROUGH;
19061         case  0: break;
19062         default: goto __pyx_L5_argtuple_error;
19063       }
19064       kw_args = PyDict_Size(__pyx_kwds);
19065       switch (pos_args) {
19066         case  0:
19067         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indicesOfIndices)) != 0)) kw_args--;
19068         else goto __pyx_L5_argtuple_error;
19069         CYTHON_FALLTHROUGH;
19070         case  1:
19071         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--;
19072         else {
19073           __Pyx_RaiseArgtupleInvalid("setColumnUpperSubset", 1, 3, 3, 1); __PYX_ERR(0, 1190, __pyx_L3_error)
19074         }
19075         CYTHON_FALLTHROUGH;
19076         case  2:
19077         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnUpper)) != 0)) kw_args--;
19078         else {
19079           __Pyx_RaiseArgtupleInvalid("setColumnUpperSubset", 1, 3, 3, 2); __PYX_ERR(0, 1190, __pyx_L3_error)
19080         }
19081       }
19082       if (unlikely(kw_args > 0)) {
19083         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setColumnUpperSubset") < 0)) __PYX_ERR(0, 1190, __pyx_L3_error)
19084       }
19085     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
19086       goto __pyx_L5_argtuple_error;
19087     } else {
19088       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19089       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19090       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19091     }
19092     __pyx_v_indicesOfIndices = ((PyArrayObject *)values[0]);
19093     __pyx_v_indices = ((PyArrayObject *)values[1]);
19094     __pyx_v_columnUpper = ((PyArrayObject *)values[2]);
19095   }
19096   goto __pyx_L4_argument_unpacking_done;
19097   __pyx_L5_argtuple_error:;
19098   __Pyx_RaiseArgtupleInvalid("setColumnUpperSubset", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1190, __pyx_L3_error)
19099   __pyx_L3_error:;
19100   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpperSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
19101   __Pyx_RefNannyFinishContext();
19102   return NULL;
19103   __pyx_L4_argument_unpacking_done:;
19104   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_indicesOfIndices), __pyx_ptype_5numpy_ndarray, 1, "indicesOfIndices", 0))) __PYX_ERR(0, 1190, __pyx_L1_error)
19105   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_indices), __pyx_ptype_5numpy_ndarray, 1, "indices", 0))) __PYX_ERR(0, 1191, __pyx_L1_error)
19106   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnUpper), __pyx_ptype_5numpy_ndarray, 1, "columnUpper", 0))) __PYX_ERR(0, 1192, __pyx_L1_error)
19107   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_70setColumnUpperSubset(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_indicesOfIndices, __pyx_v_indices, __pyx_v_columnUpper);
19108 
19109   /* function exit code */
19110   goto __pyx_L0;
19111   __pyx_L1_error:;
19112   __pyx_r = NULL;
19113   __pyx_L0:;
19114   __Pyx_RefNannyFinishContext();
19115   return __pyx_r;
19116 }
19117 
19118 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_70setColumnUpperSubset(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_indicesOfIndices, PyArrayObject *__pyx_v_indices, PyArrayObject *__pyx_v_columnUpper) {
19119   __Pyx_LocalBuf_ND __pyx_pybuffernd_columnUpper;
19120   __Pyx_Buffer __pyx_pybuffer_columnUpper;
19121   __Pyx_LocalBuf_ND __pyx_pybuffernd_indices;
19122   __Pyx_Buffer __pyx_pybuffer_indices;
19123   __Pyx_LocalBuf_ND __pyx_pybuffernd_indicesOfIndices;
19124   __Pyx_Buffer __pyx_pybuffer_indicesOfIndices;
19125   PyObject *__pyx_r = NULL;
19126   __Pyx_TraceDeclarations
19127   __Pyx_RefNannyDeclarations
19128   Py_ssize_t __pyx_t_1;
19129   int __pyx_lineno = 0;
19130   const char *__pyx_filename = NULL;
19131   int __pyx_clineno = 0;
19132   __Pyx_RefNannySetupContext("setColumnUpperSubset", 0);
19133   __Pyx_TraceCall("setColumnUpperSubset", __pyx_f[0], 1190, 0, __PYX_ERR(0, 1190, __pyx_L1_error));
19134   __pyx_pybuffer_indicesOfIndices.pybuffer.buf = NULL;
19135   __pyx_pybuffer_indicesOfIndices.refcount = 0;
19136   __pyx_pybuffernd_indicesOfIndices.data = NULL;
19137   __pyx_pybuffernd_indicesOfIndices.rcbuffer = &__pyx_pybuffer_indicesOfIndices;
19138   __pyx_pybuffer_indices.pybuffer.buf = NULL;
19139   __pyx_pybuffer_indices.refcount = 0;
19140   __pyx_pybuffernd_indices.data = NULL;
19141   __pyx_pybuffernd_indices.rcbuffer = &__pyx_pybuffer_indices;
19142   __pyx_pybuffer_columnUpper.pybuffer.buf = NULL;
19143   __pyx_pybuffer_columnUpper.refcount = 0;
19144   __pyx_pybuffernd_columnUpper.data = NULL;
19145   __pyx_pybuffernd_columnUpper.rcbuffer = &__pyx_pybuffer_columnUpper;
19146   {
19147     __Pyx_BufFmt_StackElem __pyx_stack[1];
19148     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer, (PyObject*)__pyx_v_indicesOfIndices, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1190, __pyx_L1_error)
19149   }
19150   __pyx_pybuffernd_indicesOfIndices.diminfo[0].strides = __pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indicesOfIndices.diminfo[0].shape = __pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer.shape[0];
19151   {
19152     __Pyx_BufFmt_StackElem __pyx_stack[1];
19153     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indices.rcbuffer->pybuffer, (PyObject*)__pyx_v_indices, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1190, __pyx_L1_error)
19154   }
19155   __pyx_pybuffernd_indices.diminfo[0].strides = __pyx_pybuffernd_indices.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indices.diminfo[0].shape = __pyx_pybuffernd_indices.rcbuffer->pybuffer.shape[0];
19156   {
19157     __Pyx_BufFmt_StackElem __pyx_stack[1];
19158     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer, (PyObject*)__pyx_v_columnUpper, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1190, __pyx_L1_error)
19159   }
19160   __pyx_pybuffernd_columnUpper.diminfo[0].strides = __pyx_pybuffernd_columnUpper.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columnUpper.diminfo[0].shape = __pyx_pybuffernd_columnUpper.rcbuffer->pybuffer.shape[0];
19161 
19162   /* "cylp/cy/CyClpSimplex.pyx":1197
19163  *         It's only to be used to speed up self.addConstraint()
19164  *         '''
19165  *         self.CppSelf.setColumnUpperSubset(len(indicesOfIndices), <int*> indicesOfIndices.data,             # <<<<<<<<<<<<<<
19166  *                                           <int*> indices.data,
19167  *                                           <double*>columnUpper.data)
19168  */
19169   __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_indicesOfIndices)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1197, __pyx_L1_error)
19170 
19171   /* "cylp/cy/CyClpSimplex.pyx":1199
19172  *         self.CppSelf.setColumnUpperSubset(len(indicesOfIndices), <int*> indicesOfIndices.data,
19173  *                                           <int*> indices.data,
19174  *                                           <double*>columnUpper.data)             # <<<<<<<<<<<<<<
19175  *
19176  *     def setRowUpperArray(self, np.ndarray[np.double_t, ndim=1] rowUpper):
19177  */
19178   __pyx_v_self->CppSelf->setColumnUpperSubset(__pyx_t_1, ((int *)__pyx_v_indicesOfIndices->data), ((int *)__pyx_v_indices->data), ((double *)__pyx_v_columnUpper->data));
19179 
19180   /* "cylp/cy/CyClpSimplex.pyx":1190
19181  *                                           <double*>columnLower.data)
19182  *
19183  *     def setColumnUpperSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,             # <<<<<<<<<<<<<<
19184  *                                    np.ndarray[np.int32_t, ndim=1] indices,
19185  *                                    np.ndarray[np.double_t, ndim=1] columnUpper):
19186  */
19187 
19188   /* function exit code */
19189   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19190   goto __pyx_L0;
19191   __pyx_L1_error:;
19192   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
19193     __Pyx_PyThreadState_declare
19194     __Pyx_PyThreadState_assign
19195     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
19196     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
19197     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer);
19198     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer);
19199   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
19200   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpperSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
19201   __pyx_r = NULL;
19202   goto __pyx_L2;
19203   __pyx_L0:;
19204   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
19205   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer);
19206   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer);
19207   __pyx_L2:;
19208   __Pyx_XGIVEREF(__pyx_r);
19209   __Pyx_TraceReturn(__pyx_r, 0);
19210   __Pyx_RefNannyFinishContext();
19211   return __pyx_r;
19212 }
19213 
19214 /* "cylp/cy/CyClpSimplex.pyx":1201
19215  *                                           <double*>columnUpper.data)
19216  *
19217  *     def setRowUpperArray(self, np.ndarray[np.double_t, ndim=1] rowUpper):             # <<<<<<<<<<<<<<
19218  *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)
19219  *
19220  */
19221 
19222 /* Python wrapper */
19223 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_73setRowUpperArray(PyObject *__pyx_v_self, PyObject *__pyx_v_rowUpper); /*proto*/
19224 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray[] = "CyClpSimplex.setRowUpperArray(self, ndarray rowUpper)";
19225 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_73setRowUpperArray(PyObject *__pyx_v_self, PyObject *__pyx_v_rowUpper) {
19226   int __pyx_lineno = 0;
19227   const char *__pyx_filename = NULL;
19228   int __pyx_clineno = 0;
19229   PyObject *__pyx_r = 0;
19230   __Pyx_RefNannyDeclarations
19231   __Pyx_RefNannySetupContext("setRowUpperArray (wrapper)", 0);
19232   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowUpper), __pyx_ptype_5numpy_ndarray, 1, "rowUpper", 0))) __PYX_ERR(0, 1201, __pyx_L1_error)
19233   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_rowUpper));
19234 
19235   /* function exit code */
19236   goto __pyx_L0;
19237   __pyx_L1_error:;
19238   __pyx_r = NULL;
19239   __pyx_L0:;
19240   __Pyx_RefNannyFinishContext();
19241   return __pyx_r;
19242 }
19243 
19244 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rowUpper) {
19245   __Pyx_LocalBuf_ND __pyx_pybuffernd_rowUpper;
19246   __Pyx_Buffer __pyx_pybuffer_rowUpper;
19247   PyObject *__pyx_r = NULL;
19248   __Pyx_TraceDeclarations
19249   __Pyx_RefNannyDeclarations
19250   int __pyx_lineno = 0;
19251   const char *__pyx_filename = NULL;
19252   int __pyx_clineno = 0;
19253   __Pyx_RefNannySetupContext("setRowUpperArray", 0);
19254   __Pyx_TraceCall("setRowUpperArray", __pyx_f[0], 1201, 0, __PYX_ERR(0, 1201, __pyx_L1_error));
19255   __pyx_pybuffer_rowUpper.pybuffer.buf = NULL;
19256   __pyx_pybuffer_rowUpper.refcount = 0;
19257   __pyx_pybuffernd_rowUpper.data = NULL;
19258   __pyx_pybuffernd_rowUpper.rcbuffer = &__pyx_pybuffer_rowUpper;
19259   {
19260     __Pyx_BufFmt_StackElem __pyx_stack[1];
19261     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer, (PyObject*)__pyx_v_rowUpper, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1201, __pyx_L1_error)
19262   }
19263   __pyx_pybuffernd_rowUpper.diminfo[0].strides = __pyx_pybuffernd_rowUpper.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rowUpper.diminfo[0].shape = __pyx_pybuffernd_rowUpper.rcbuffer->pybuffer.shape[0];
19264 
19265   /* "cylp/cy/CyClpSimplex.pyx":1202
19266  *
19267  *     def setRowUpperArray(self, np.ndarray[np.double_t, ndim=1] rowUpper):
19268  *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)             # <<<<<<<<<<<<<<
19269  *
19270  *     def setRowLowerArray(self, np.ndarray[np.double_t, ndim=1] rowLower):
19271  */
19272   __pyx_v_self->CppSelf->setRowUpperArray(((double *)__pyx_v_rowUpper->data));
19273 
19274   /* "cylp/cy/CyClpSimplex.pyx":1201
19275  *                                           <double*>columnUpper.data)
19276  *
19277  *     def setRowUpperArray(self, np.ndarray[np.double_t, ndim=1] rowUpper):             # <<<<<<<<<<<<<<
19278  *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)
19279  *
19280  */
19281 
19282   /* function exit code */
19283   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19284   goto __pyx_L0;
19285   __pyx_L1_error:;
19286   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
19287     __Pyx_PyThreadState_declare
19288     __Pyx_PyThreadState_assign
19289     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
19290     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer);
19291   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
19292   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowUpperArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
19293   __pyx_r = NULL;
19294   goto __pyx_L2;
19295   __pyx_L0:;
19296   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer);
19297   __pyx_L2:;
19298   __Pyx_XGIVEREF(__pyx_r);
19299   __Pyx_TraceReturn(__pyx_r, 0);
19300   __Pyx_RefNannyFinishContext();
19301   return __pyx_r;
19302 }
19303 
19304 /* "cylp/cy/CyClpSimplex.pyx":1204
19305  *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)
19306  *
19307  *     def setRowLowerArray(self, np.ndarray[np.double_t, ndim=1] rowLower):             # <<<<<<<<<<<<<<
19308  *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)
19309  *
19310  */
19311 
19312 /* Python wrapper */
19313 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_75setRowLowerArray(PyObject *__pyx_v_self, PyObject *__pyx_v_rowLower); /*proto*/
19314 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray[] = "CyClpSimplex.setRowLowerArray(self, ndarray rowLower)";
19315 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_75setRowLowerArray(PyObject *__pyx_v_self, PyObject *__pyx_v_rowLower) {
19316   int __pyx_lineno = 0;
19317   const char *__pyx_filename = NULL;
19318   int __pyx_clineno = 0;
19319   PyObject *__pyx_r = 0;
19320   __Pyx_RefNannyDeclarations
19321   __Pyx_RefNannySetupContext("setRowLowerArray (wrapper)", 0);
19322   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowLower), __pyx_ptype_5numpy_ndarray, 1, "rowLower", 0))) __PYX_ERR(0, 1204, __pyx_L1_error)
19323   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_rowLower));
19324 
19325   /* function exit code */
19326   goto __pyx_L0;
19327   __pyx_L1_error:;
19328   __pyx_r = NULL;
19329   __pyx_L0:;
19330   __Pyx_RefNannyFinishContext();
19331   return __pyx_r;
19332 }
19333 
19334 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rowLower) {
19335   __Pyx_LocalBuf_ND __pyx_pybuffernd_rowLower;
19336   __Pyx_Buffer __pyx_pybuffer_rowLower;
19337   PyObject *__pyx_r = NULL;
19338   __Pyx_TraceDeclarations
19339   __Pyx_RefNannyDeclarations
19340   int __pyx_lineno = 0;
19341   const char *__pyx_filename = NULL;
19342   int __pyx_clineno = 0;
19343   __Pyx_RefNannySetupContext("setRowLowerArray", 0);
19344   __Pyx_TraceCall("setRowLowerArray", __pyx_f[0], 1204, 0, __PYX_ERR(0, 1204, __pyx_L1_error));
19345   __pyx_pybuffer_rowLower.pybuffer.buf = NULL;
19346   __pyx_pybuffer_rowLower.refcount = 0;
19347   __pyx_pybuffernd_rowLower.data = NULL;
19348   __pyx_pybuffernd_rowLower.rcbuffer = &__pyx_pybuffer_rowLower;
19349   {
19350     __Pyx_BufFmt_StackElem __pyx_stack[1];
19351     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer, (PyObject*)__pyx_v_rowLower, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1204, __pyx_L1_error)
19352   }
19353   __pyx_pybuffernd_rowLower.diminfo[0].strides = __pyx_pybuffernd_rowLower.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rowLower.diminfo[0].shape = __pyx_pybuffernd_rowLower.rcbuffer->pybuffer.shape[0];
19354 
19355   /* "cylp/cy/CyClpSimplex.pyx":1205
19356  *
19357  *     def setRowLowerArray(self, np.ndarray[np.double_t, ndim=1] rowLower):
19358  *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)             # <<<<<<<<<<<<<<
19359  *
19360  *     def setObjectiveArray(self, np.ndarray[np.double_t, ndim=1] objective):
19361  */
19362   __pyx_v_self->CppSelf->setRowLowerArray(((double *)__pyx_v_rowLower->data));
19363 
19364   /* "cylp/cy/CyClpSimplex.pyx":1204
19365  *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)
19366  *
19367  *     def setRowLowerArray(self, np.ndarray[np.double_t, ndim=1] rowLower):             # <<<<<<<<<<<<<<
19368  *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)
19369  *
19370  */
19371 
19372   /* function exit code */
19373   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19374   goto __pyx_L0;
19375   __pyx_L1_error:;
19376   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
19377     __Pyx_PyThreadState_declare
19378     __Pyx_PyThreadState_assign
19379     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
19380     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer);
19381   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
19382   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowLowerArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
19383   __pyx_r = NULL;
19384   goto __pyx_L2;
19385   __pyx_L0:;
19386   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer);
19387   __pyx_L2:;
19388   __Pyx_XGIVEREF(__pyx_r);
19389   __Pyx_TraceReturn(__pyx_r, 0);
19390   __Pyx_RefNannyFinishContext();
19391   return __pyx_r;
19392 }
19393 
19394 /* "cylp/cy/CyClpSimplex.pyx":1207
19395  *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)
19396  *
19397  *     def setObjectiveArray(self, np.ndarray[np.double_t, ndim=1] objective):             # <<<<<<<<<<<<<<
19398  *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))
19399  *
19400  */
19401 
19402 /* Python wrapper */
19403 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_77setObjectiveArray(PyObject *__pyx_v_self, PyObject *__pyx_v_objective); /*proto*/
19404 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray[] = "CyClpSimplex.setObjectiveArray(self, ndarray objective)";
19405 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_77setObjectiveArray(PyObject *__pyx_v_self, PyObject *__pyx_v_objective) {
19406   int __pyx_lineno = 0;
19407   const char *__pyx_filename = NULL;
19408   int __pyx_clineno = 0;
19409   PyObject *__pyx_r = 0;
19410   __Pyx_RefNannyDeclarations
19411   __Pyx_RefNannySetupContext("setObjectiveArray (wrapper)", 0);
19412   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_objective), __pyx_ptype_5numpy_ndarray, 1, "objective", 0))) __PYX_ERR(0, 1207, __pyx_L1_error)
19413   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_objective));
19414 
19415   /* function exit code */
19416   goto __pyx_L0;
19417   __pyx_L1_error:;
19418   __pyx_r = NULL;
19419   __pyx_L0:;
19420   __Pyx_RefNannyFinishContext();
19421   return __pyx_r;
19422 }
19423 
19424 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_objective) {
19425   __Pyx_LocalBuf_ND __pyx_pybuffernd_objective;
19426   __Pyx_Buffer __pyx_pybuffer_objective;
19427   PyObject *__pyx_r = NULL;
19428   __Pyx_TraceDeclarations
19429   __Pyx_RefNannyDeclarations
19430   Py_ssize_t __pyx_t_1;
19431   int __pyx_lineno = 0;
19432   const char *__pyx_filename = NULL;
19433   int __pyx_clineno = 0;
19434   __Pyx_RefNannySetupContext("setObjectiveArray", 0);
19435   __Pyx_TraceCall("setObjectiveArray", __pyx_f[0], 1207, 0, __PYX_ERR(0, 1207, __pyx_L1_error));
19436   __pyx_pybuffer_objective.pybuffer.buf = NULL;
19437   __pyx_pybuffer_objective.refcount = 0;
19438   __pyx_pybuffernd_objective.data = NULL;
19439   __pyx_pybuffernd_objective.rcbuffer = &__pyx_pybuffer_objective;
19440   {
19441     __Pyx_BufFmt_StackElem __pyx_stack[1];
19442     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_objective.rcbuffer->pybuffer, (PyObject*)__pyx_v_objective, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1207, __pyx_L1_error)
19443   }
19444   __pyx_pybuffernd_objective.diminfo[0].strides = __pyx_pybuffernd_objective.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_objective.diminfo[0].shape = __pyx_pybuffernd_objective.rcbuffer->pybuffer.shape[0];
19445 
19446   /* "cylp/cy/CyClpSimplex.pyx":1208
19447  *
19448  *     def setObjectiveArray(self, np.ndarray[np.double_t, ndim=1] objective):
19449  *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))             # <<<<<<<<<<<<<<
19450  *
19451  *     cdef double* primalColumnSolution(self):
19452  */
19453   __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_objective)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1208, __pyx_L1_error)
19454   __pyx_v_self->CppSelf->setObjectiveArray(((double *)__pyx_v_objective->data), __pyx_t_1);
19455 
19456   /* "cylp/cy/CyClpSimplex.pyx":1207
19457  *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)
19458  *
19459  *     def setObjectiveArray(self, np.ndarray[np.double_t, ndim=1] objective):             # <<<<<<<<<<<<<<
19460  *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))
19461  *
19462  */
19463 
19464   /* function exit code */
19465   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19466   goto __pyx_L0;
19467   __pyx_L1_error:;
19468   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
19469     __Pyx_PyThreadState_declare
19470     __Pyx_PyThreadState_assign
19471     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
19472     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_objective.rcbuffer->pybuffer);
19473   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
19474   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setObjectiveArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
19475   __pyx_r = NULL;
19476   goto __pyx_L2;
19477   __pyx_L0:;
19478   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_objective.rcbuffer->pybuffer);
19479   __pyx_L2:;
19480   __Pyx_XGIVEREF(__pyx_r);
19481   __Pyx_TraceReturn(__pyx_r, 0);
19482   __Pyx_RefNannyFinishContext();
19483   return __pyx_r;
19484 }
19485 
19486 /* "cylp/cy/CyClpSimplex.pyx":1210
19487  *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))
19488  *
19489  *     cdef double* primalColumnSolution(self):             # <<<<<<<<<<<<<<
19490  *         return self.CppSelf.primalColumnSolution()
19491  *
19492  */
19493 
19494 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalColumnSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
19495   double *__pyx_r;
19496   __Pyx_TraceDeclarations
19497   __Pyx_RefNannyDeclarations
19498   int __pyx_lineno = 0;
19499   const char *__pyx_filename = NULL;
19500   int __pyx_clineno = 0;
19501   __Pyx_RefNannySetupContext("primalColumnSolution", 0);
19502   __Pyx_TraceCall("primalColumnSolution", __pyx_f[0], 1210, 0, __PYX_ERR(0, 1210, __pyx_L1_error));
19503 
19504   /* "cylp/cy/CyClpSimplex.pyx":1211
19505  *
19506  *     cdef double* primalColumnSolution(self):
19507  *         return self.CppSelf.primalColumnSolution()             # <<<<<<<<<<<<<<
19508  *
19509  *     cdef double* dualColumnSolution(self):
19510  */
19511   __pyx_r = __pyx_v_self->CppSelf->primalColumnSolution();
19512   goto __pyx_L0;
19513 
19514   /* "cylp/cy/CyClpSimplex.pyx":1210
19515  *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))
19516  *
19517  *     cdef double* primalColumnSolution(self):             # <<<<<<<<<<<<<<
19518  *         return self.CppSelf.primalColumnSolution()
19519  *
19520  */
19521 
19522   /* function exit code */
19523   __pyx_L1_error:;
19524   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.primalColumnSolution", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
19525   __pyx_r = 0;
19526   __pyx_L0:;
19527   __Pyx_TraceReturn(Py_None, 0);
19528   __Pyx_RefNannyFinishContext();
19529   return __pyx_r;
19530 }
19531 
19532 /* "cylp/cy/CyClpSimplex.pyx":1213
19533  *         return self.CppSelf.primalColumnSolution()
19534  *
19535  *     cdef double* dualColumnSolution(self):             # <<<<<<<<<<<<<<
19536  *         return self.CppSelf.dualColumnSolution()
19537  *
19538  */
19539 
19540 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualColumnSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
19541   double *__pyx_r;
19542   __Pyx_TraceDeclarations
19543   __Pyx_RefNannyDeclarations
19544   int __pyx_lineno = 0;
19545   const char *__pyx_filename = NULL;
19546   int __pyx_clineno = 0;
19547   __Pyx_RefNannySetupContext("dualColumnSolution", 0);
19548   __Pyx_TraceCall("dualColumnSolution", __pyx_f[0], 1213, 0, __PYX_ERR(0, 1213, __pyx_L1_error));
19549 
19550   /* "cylp/cy/CyClpSimplex.pyx":1214
19551  *
19552  *     cdef double* dualColumnSolution(self):
19553  *         return self.CppSelf.dualColumnSolution()             # <<<<<<<<<<<<<<
19554  *
19555  *     cdef double* primalRowSolution(self):
19556  */
19557   __pyx_r = __pyx_v_self->CppSelf->dualColumnSolution();
19558   goto __pyx_L0;
19559 
19560   /* "cylp/cy/CyClpSimplex.pyx":1213
19561  *         return self.CppSelf.primalColumnSolution()
19562  *
19563  *     cdef double* dualColumnSolution(self):             # <<<<<<<<<<<<<<
19564  *         return self.CppSelf.dualColumnSolution()
19565  *
19566  */
19567 
19568   /* function exit code */
19569   __pyx_L1_error:;
19570   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.dualColumnSolution", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
19571   __pyx_r = 0;
19572   __pyx_L0:;
19573   __Pyx_TraceReturn(Py_None, 0);
19574   __Pyx_RefNannyFinishContext();
19575   return __pyx_r;
19576 }
19577 
19578 /* "cylp/cy/CyClpSimplex.pyx":1216
19579  *         return self.CppSelf.dualColumnSolution()
19580  *
19581  *     cdef double* primalRowSolution(self):             # <<<<<<<<<<<<<<
19582  *         return self.CppSelf.primalRowSolution()
19583  *
19584  */
19585 
19586 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalRowSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
19587   double *__pyx_r;
19588   __Pyx_TraceDeclarations
19589   __Pyx_RefNannyDeclarations
19590   int __pyx_lineno = 0;
19591   const char *__pyx_filename = NULL;
19592   int __pyx_clineno = 0;
19593   __Pyx_RefNannySetupContext("primalRowSolution", 0);
19594   __Pyx_TraceCall("primalRowSolution", __pyx_f[0], 1216, 0, __PYX_ERR(0, 1216, __pyx_L1_error));
19595 
19596   /* "cylp/cy/CyClpSimplex.pyx":1217
19597  *
19598  *     cdef double* primalRowSolution(self):
19599  *         return self.CppSelf.primalRowSolution()             # <<<<<<<<<<<<<<
19600  *
19601  *     cdef double* dualRowSolution(self):
19602  */
19603   __pyx_r = __pyx_v_self->CppSelf->primalRowSolution();
19604   goto __pyx_L0;
19605 
19606   /* "cylp/cy/CyClpSimplex.pyx":1216
19607  *         return self.CppSelf.dualColumnSolution()
19608  *
19609  *     cdef double* primalRowSolution(self):             # <<<<<<<<<<<<<<
19610  *         return self.CppSelf.primalRowSolution()
19611  *
19612  */
19613 
19614   /* function exit code */
19615   __pyx_L1_error:;
19616   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.primalRowSolution", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
19617   __pyx_r = 0;
19618   __pyx_L0:;
19619   __Pyx_TraceReturn(Py_None, 0);
19620   __Pyx_RefNannyFinishContext();
19621   return __pyx_r;
19622 }
19623 
19624 /* "cylp/cy/CyClpSimplex.pyx":1219
19625  *         return self.CppSelf.primalRowSolution()
19626  *
19627  *     cdef double* dualRowSolution(self):             # <<<<<<<<<<<<<<
19628  *         return self.CppSelf.dualRowSolution()
19629  *
19630  */
19631 
19632 static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualRowSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
19633   double *__pyx_r;
19634   __Pyx_TraceDeclarations
19635   __Pyx_RefNannyDeclarations
19636   int __pyx_lineno = 0;
19637   const char *__pyx_filename = NULL;
19638   int __pyx_clineno = 0;
19639   __Pyx_RefNannySetupContext("dualRowSolution", 0);
19640   __Pyx_TraceCall("dualRowSolution", __pyx_f[0], 1219, 0, __PYX_ERR(0, 1219, __pyx_L1_error));
19641 
19642   /* "cylp/cy/CyClpSimplex.pyx":1220
19643  *
19644  *     cdef double* dualRowSolution(self):
19645  *         return self.CppSelf.dualRowSolution()             # <<<<<<<<<<<<<<
19646  *
19647  *     def CLP_dualConstraintSolution(self):
19648  */
19649   __pyx_r = __pyx_v_self->CppSelf->dualRowSolution();
19650   goto __pyx_L0;
19651 
19652   /* "cylp/cy/CyClpSimplex.pyx":1219
19653  *         return self.CppSelf.primalRowSolution()
19654  *
19655  *     cdef double* dualRowSolution(self):             # <<<<<<<<<<<<<<
19656  *         return self.CppSelf.dualRowSolution()
19657  *
19658  */
19659 
19660   /* function exit code */
19661   __pyx_L1_error:;
19662   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.dualRowSolution", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
19663   __pyx_r = 0;
19664   __pyx_L0:;
19665   __Pyx_TraceReturn(Py_None, 0);
19666   __Pyx_RefNannyFinishContext();
19667   return __pyx_r;
19668 }
19669 
19670 /* "cylp/cy/CyClpSimplex.pyx":1222
19671  *         return self.CppSelf.dualRowSolution()
19672  *
19673  *     def CLP_dualConstraintSolution(self):             # <<<<<<<<<<<<<<
19674  *         cdef np.npy_intp shape[1]
19675  *         shape[0] = <np.npy_intp> self.nConstraints
19676  */
19677 
19678 /* Python wrapper */
19679 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_79CLP_dualConstraintSolution(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
19680 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution[] = "CyClpSimplex.CLP_dualConstraintSolution(self)";
19681 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_79CLP_dualConstraintSolution(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
19682   PyObject *__pyx_r = 0;
19683   __Pyx_RefNannyDeclarations
19684   __Pyx_RefNannySetupContext("CLP_dualConstraintSolution (wrapper)", 0);
19685   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
19686 
19687   /* function exit code */
19688   __Pyx_RefNannyFinishContext();
19689   return __pyx_r;
19690 }
19691 
19692 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
19693   npy_intp __pyx_v_shape[1];
19694   PyObject *__pyx_v_ndarray = NULL;
19695   PyObject *__pyx_r = NULL;
19696   __Pyx_TraceDeclarations
19697   __Pyx_RefNannyDeclarations
19698   PyObject *__pyx_t_1 = NULL;
19699   npy_intp __pyx_t_2;
19700   int __pyx_lineno = 0;
19701   const char *__pyx_filename = NULL;
19702   int __pyx_clineno = 0;
19703   __Pyx_RefNannySetupContext("CLP_dualConstraintSolution", 0);
19704   __Pyx_TraceCall("CLP_dualConstraintSolution", __pyx_f[0], 1222, 0, __PYX_ERR(0, 1222, __pyx_L1_error));
19705 
19706   /* "cylp/cy/CyClpSimplex.pyx":1224
19707  *     def CLP_dualConstraintSolution(self):
19708  *         cdef np.npy_intp shape[1]
19709  *         shape[0] = <np.npy_intp> self.nConstraints             # <<<<<<<<<<<<<<
19710  *         ndarray = np.PyArray_SimpleNewFromData(1, shape,
19711  *                                                np.NPY_DOUBLE, <void*> self.dualRowSolution())
19712  */
19713   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1224, __pyx_L1_error)
19714   __Pyx_GOTREF(__pyx_t_1);
19715   __pyx_t_2 = __Pyx_PyInt_As_Py_intptr_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1224, __pyx_L1_error)
19716   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19717   (__pyx_v_shape[0]) = ((npy_intp)__pyx_t_2);
19718 
19719   /* "cylp/cy/CyClpSimplex.pyx":1225
19720  *         cdef np.npy_intp shape[1]
19721  *         shape[0] = <np.npy_intp> self.nConstraints
19722  *         ndarray = np.PyArray_SimpleNewFromData(1, shape,             # <<<<<<<<<<<<<<
19723  *                                                np.NPY_DOUBLE, <void*> self.dualRowSolution())
19724  *         return ndarray
19725  */
19726   __pyx_t_1 = PyArray_SimpleNewFromData(1, __pyx_v_shape, NPY_DOUBLE, ((void *)((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->dualRowSolution(__pyx_v_self))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1225, __pyx_L1_error)
19727   __Pyx_GOTREF(__pyx_t_1);
19728   __pyx_v_ndarray = __pyx_t_1;
19729   __pyx_t_1 = 0;
19730 
19731   /* "cylp/cy/CyClpSimplex.pyx":1227
19732  *         ndarray = np.PyArray_SimpleNewFromData(1, shape,
19733  *                                                np.NPY_DOUBLE, <void*> self.dualRowSolution())
19734  *         return ndarray             # <<<<<<<<<<<<<<
19735  *
19736  *     #############################################
19737  */
19738   __Pyx_XDECREF(__pyx_r);
19739   __Pyx_INCREF(__pyx_v_ndarray);
19740   __pyx_r = __pyx_v_ndarray;
19741   goto __pyx_L0;
19742 
19743   /* "cylp/cy/CyClpSimplex.pyx":1222
19744  *         return self.CppSelf.dualRowSolution()
19745  *
19746  *     def CLP_dualConstraintSolution(self):             # <<<<<<<<<<<<<<
19747  *         cdef np.npy_intp shape[1]
19748  *         shape[0] = <np.npy_intp> self.nConstraints
19749  */
19750 
19751   /* function exit code */
19752   __pyx_L1_error:;
19753   __Pyx_XDECREF(__pyx_t_1);
19754   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_dualConstraintSolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
19755   __pyx_r = NULL;
19756   __pyx_L0:;
19757   __Pyx_XDECREF(__pyx_v_ndarray);
19758   __Pyx_XGIVEREF(__pyx_r);
19759   __Pyx_TraceReturn(__pyx_r, 0);
19760   __Pyx_RefNannyFinishContext();
19761   return __pyx_r;
19762 }
19763 
19764 /* "cylp/cy/CyClpSimplex.pyx":1233
19765  *     #############################################
19766  *
19767  *     def initialSolve(self, presolve='on'):             # <<<<<<<<<<<<<<
19768  *         '''
19769  *         Run CLP's initialSolve. It does a presolve and uses primal or dual
19770  */
19771 
19772 /* Python wrapper */
19773 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_81initialSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19774 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_80initialSolve[] = "CyClpSimplex.initialSolve(self, presolve='on')\n\n        Run CLP's initialSolve. It does a presolve and uses primal or dual\n        Simplex to solve a problem.\n\n        **Usage example**\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n        >>> s = CyClpSimplex()\n        >>> f = getMpsExample()\n        >>> s.readMps(f)\n        0\n        >>> s.initialSolve()\n        'optimal'\n        >>> round(s.objectiveValue, 4)\n        2520.5717\n\n        ";
19775 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_81initialSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19776   PyObject *__pyx_v_presolve = 0;
19777   int __pyx_lineno = 0;
19778   const char *__pyx_filename = NULL;
19779   int __pyx_clineno = 0;
19780   PyObject *__pyx_r = 0;
19781   __Pyx_RefNannyDeclarations
19782   __Pyx_RefNannySetupContext("initialSolve (wrapper)", 0);
19783   {
19784     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_presolve,0};
19785     PyObject* values[1] = {0};
19786     values[0] = ((PyObject *)__pyx_n_s_on);
19787     if (unlikely(__pyx_kwds)) {
19788       Py_ssize_t kw_args;
19789       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
19790       switch (pos_args) {
19791         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19792         CYTHON_FALLTHROUGH;
19793         case  0: break;
19794         default: goto __pyx_L5_argtuple_error;
19795       }
19796       kw_args = PyDict_Size(__pyx_kwds);
19797       switch (pos_args) {
19798         case  0:
19799         if (kw_args > 0) {
19800           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_presolve);
19801           if (value) { values[0] = value; kw_args--; }
19802         }
19803       }
19804       if (unlikely(kw_args > 0)) {
19805         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "initialSolve") < 0)) __PYX_ERR(0, 1233, __pyx_L3_error)
19806       }
19807     } else {
19808       switch (PyTuple_GET_SIZE(__pyx_args)) {
19809         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19810         CYTHON_FALLTHROUGH;
19811         case  0: break;
19812         default: goto __pyx_L5_argtuple_error;
19813       }
19814     }
19815     __pyx_v_presolve = values[0];
19816   }
19817   goto __pyx_L4_argument_unpacking_done;
19818   __pyx_L5_argtuple_error:;
19819   __Pyx_RaiseArgtupleInvalid("initialSolve", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1233, __pyx_L3_error)
19820   __pyx_L3_error:;
19821   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.initialSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
19822   __Pyx_RefNannyFinishContext();
19823   return NULL;
19824   __pyx_L4_argument_unpacking_done:;
19825   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_80initialSolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_presolve);
19826 
19827   /* function exit code */
19828   __Pyx_RefNannyFinishContext();
19829   return __pyx_r;
19830 }
19831 
19832 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_80initialSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_presolve) {
19833   PyObject *__pyx_r = NULL;
19834   __Pyx_TraceDeclarations
19835   __Pyx_RefNannyDeclarations
19836   PyObject *__pyx_t_1 = NULL;
19837   int __pyx_t_2;
19838   int __pyx_t_3;
19839   PyObject *__pyx_t_4 = NULL;
19840   int __pyx_t_5;
19841   int __pyx_t_6;
19842   int __pyx_t_7;
19843   int __pyx_lineno = 0;
19844   const char *__pyx_filename = NULL;
19845   int __pyx_clineno = 0;
19846   __Pyx_RefNannySetupContext("initialSolve", 0);
19847   __Pyx_TraceCall("initialSolve", __pyx_f[0], 1233, 0, __PYX_ERR(0, 1233, __pyx_L1_error));
19848   __Pyx_INCREF(__pyx_v_presolve);
19849 
19850   /* "cylp/cy/CyClpSimplex.pyx":1251
19851  *
19852  *         '''
19853  *         presolve = 0 if presolve == 'on' and self.Hessian is None else 1             # <<<<<<<<<<<<<<
19854  *         return problemStatus[self.CppSelf.initialSolve(presolve)]
19855  *
19856  */
19857   __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_presolve, __pyx_n_s_on, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1251, __pyx_L1_error)
19858   if (__pyx_t_3) {
19859   } else {
19860     __pyx_t_2 = __pyx_t_3;
19861     goto __pyx_L3_bool_binop_done;
19862   }
19863   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Hessian); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1251, __pyx_L1_error)
19864   __Pyx_GOTREF(__pyx_t_4);
19865   __pyx_t_3 = (__pyx_t_4 == Py_None);
19866   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
19867   __pyx_t_5 = (__pyx_t_3 != 0);
19868   __pyx_t_2 = __pyx_t_5;
19869   __pyx_L3_bool_binop_done:;
19870   if (__pyx_t_2) {
19871     __Pyx_INCREF(__pyx_int_0);
19872     __pyx_t_1 = __pyx_int_0;
19873   } else {
19874     __Pyx_INCREF(__pyx_int_1);
19875     __pyx_t_1 = __pyx_int_1;
19876   }
19877   __Pyx_DECREF_SET(__pyx_v_presolve, __pyx_t_1);
19878   __pyx_t_1 = 0;
19879 
19880   /* "cylp/cy/CyClpSimplex.pyx":1252
19881  *         '''
19882  *         presolve = 0 if presolve == 'on' and self.Hessian is None else 1
19883  *         return problemStatus[self.CppSelf.initialSolve(presolve)]             # <<<<<<<<<<<<<<
19884  *
19885  *     def initialPrimalSolve(self):
19886  */
19887   __Pyx_XDECREF(__pyx_r);
19888   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1252, __pyx_L1_error)
19889   __Pyx_GOTREF(__pyx_t_1);
19890   __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_presolve); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1252, __pyx_L1_error)
19891   __pyx_t_7 = __pyx_v_self->CppSelf->initialSolve(__pyx_t_6);
19892   __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_7, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1252, __pyx_L1_error)
19893   __Pyx_GOTREF(__pyx_t_4);
19894   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19895   __pyx_r = __pyx_t_4;
19896   __pyx_t_4 = 0;
19897   goto __pyx_L0;
19898 
19899   /* "cylp/cy/CyClpSimplex.pyx":1233
19900  *     #############################################
19901  *
19902  *     def initialSolve(self, presolve='on'):             # <<<<<<<<<<<<<<
19903  *         '''
19904  *         Run CLP's initialSolve. It does a presolve and uses primal or dual
19905  */
19906 
19907   /* function exit code */
19908   __pyx_L1_error:;
19909   __Pyx_XDECREF(__pyx_t_1);
19910   __Pyx_XDECREF(__pyx_t_4);
19911   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.initialSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
19912   __pyx_r = NULL;
19913   __pyx_L0:;
19914   __Pyx_XDECREF(__pyx_v_presolve);
19915   __Pyx_XGIVEREF(__pyx_r);
19916   __Pyx_TraceReturn(__pyx_r, 0);
19917   __Pyx_RefNannyFinishContext();
19918   return __pyx_r;
19919 }
19920 
19921 /* "cylp/cy/CyClpSimplex.pyx":1254
19922  *         return problemStatus[self.CppSelf.initialSolve(presolve)]
19923  *
19924  *     def initialPrimalSolve(self):             # <<<<<<<<<<<<<<
19925  *         '''
19926  *         Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force
19927  */
19928 
19929 /* Python wrapper */
19930 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_83initialPrimalSolve(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
19931 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_82initialPrimalSolve[] = "CyClpSimplex.initialPrimalSolve(self)\n\n        Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force\n        the use of primal Simplex.\n\n        **Usage example**\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n        >>> s = CyClpSimplex()\n        >>> f = getMpsExample()\n        >>> s.readMps(f)\n        0\n        >>> s.initialPrimalSolve()\n        'optimal'\n        >>> round(s.objectiveValue, 4)\n        2520.5717\n\n        ";
19932 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_83initialPrimalSolve(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
19933   PyObject *__pyx_r = 0;
19934   __Pyx_RefNannyDeclarations
19935   __Pyx_RefNannySetupContext("initialPrimalSolve (wrapper)", 0);
19936   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_82initialPrimalSolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
19937 
19938   /* function exit code */
19939   __Pyx_RefNannyFinishContext();
19940   return __pyx_r;
19941 }
19942 
19943 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_82initialPrimalSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
19944   PyObject *__pyx_r = NULL;
19945   __Pyx_TraceDeclarations
19946   __Pyx_RefNannyDeclarations
19947   PyObject *__pyx_t_1 = NULL;
19948   int __pyx_t_2;
19949   PyObject *__pyx_t_3 = NULL;
19950   int __pyx_lineno = 0;
19951   const char *__pyx_filename = NULL;
19952   int __pyx_clineno = 0;
19953   __Pyx_RefNannySetupContext("initialPrimalSolve", 0);
19954   __Pyx_TraceCall("initialPrimalSolve", __pyx_f[0], 1254, 0, __PYX_ERR(0, 1254, __pyx_L1_error));
19955 
19956   /* "cylp/cy/CyClpSimplex.pyx":1272
19957  *
19958  *         '''
19959  *         return problemStatus[self.CppSelf.initialPrimalSolve()]             # <<<<<<<<<<<<<<
19960  *
19961  *     def initialDualSolve(self):
19962  */
19963   __Pyx_XDECREF(__pyx_r);
19964   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1272, __pyx_L1_error)
19965   __Pyx_GOTREF(__pyx_t_1);
19966   __pyx_t_2 = __pyx_v_self->CppSelf->initialPrimalSolve();
19967   __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_2, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1272, __pyx_L1_error)
19968   __Pyx_GOTREF(__pyx_t_3);
19969   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19970   __pyx_r = __pyx_t_3;
19971   __pyx_t_3 = 0;
19972   goto __pyx_L0;
19973 
19974   /* "cylp/cy/CyClpSimplex.pyx":1254
19975  *         return problemStatus[self.CppSelf.initialSolve(presolve)]
19976  *
19977  *     def initialPrimalSolve(self):             # <<<<<<<<<<<<<<
19978  *         '''
19979  *         Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force
19980  */
19981 
19982   /* function exit code */
19983   __pyx_L1_error:;
19984   __Pyx_XDECREF(__pyx_t_1);
19985   __Pyx_XDECREF(__pyx_t_3);
19986   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.initialPrimalSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
19987   __pyx_r = NULL;
19988   __pyx_L0:;
19989   __Pyx_XGIVEREF(__pyx_r);
19990   __Pyx_TraceReturn(__pyx_r, 0);
19991   __Pyx_RefNannyFinishContext();
19992   return __pyx_r;
19993 }
19994 
19995 /* "cylp/cy/CyClpSimplex.pyx":1274
19996  *         return problemStatus[self.CppSelf.initialPrimalSolve()]
19997  *
19998  *     def initialDualSolve(self):             # <<<<<<<<<<<<<<
19999  *         '''
20000  *         Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force
20001  */
20002 
20003 /* Python wrapper */
20004 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_85initialDualSolve(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
20005 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_84initialDualSolve[] = "CyClpSimplex.initialDualSolve(self)\n\n        Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force\n        the use of dual Simplex.\n\n        **Usage example**\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n        >>> s = CyClpSimplex()\n        >>> f = getMpsExample()\n        >>> s.readMps(f)\n        0\n        >>> s.initialDualSolve()\n        'optimal'\n        >>> round(s.objectiveValue, 4)\n        2520.5717\n\n        ";
20006 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_85initialDualSolve(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
20007   PyObject *__pyx_r = 0;
20008   __Pyx_RefNannyDeclarations
20009   __Pyx_RefNannySetupContext("initialDualSolve (wrapper)", 0);
20010   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_84initialDualSolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
20011 
20012   /* function exit code */
20013   __Pyx_RefNannyFinishContext();
20014   return __pyx_r;
20015 }
20016 
20017 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_84initialDualSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
20018   PyObject *__pyx_r = NULL;
20019   __Pyx_TraceDeclarations
20020   __Pyx_RefNannyDeclarations
20021   PyObject *__pyx_t_1 = NULL;
20022   int __pyx_t_2;
20023   PyObject *__pyx_t_3 = NULL;
20024   int __pyx_lineno = 0;
20025   const char *__pyx_filename = NULL;
20026   int __pyx_clineno = 0;
20027   __Pyx_RefNannySetupContext("initialDualSolve", 0);
20028   __Pyx_TraceCall("initialDualSolve", __pyx_f[0], 1274, 0, __PYX_ERR(0, 1274, __pyx_L1_error));
20029 
20030   /* "cylp/cy/CyClpSimplex.pyx":1292
20031  *
20032  *         '''
20033  *         return problemStatus[self.CppSelf.initialDualSolve()]             # <<<<<<<<<<<<<<
20034  *
20035  *     def __iadd__(self, cons):
20036  */
20037   __Pyx_XDECREF(__pyx_r);
20038   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1292, __pyx_L1_error)
20039   __Pyx_GOTREF(__pyx_t_1);
20040   __pyx_t_2 = __pyx_v_self->CppSelf->initialDualSolve();
20041   __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_2, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1292, __pyx_L1_error)
20042   __Pyx_GOTREF(__pyx_t_3);
20043   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20044   __pyx_r = __pyx_t_3;
20045   __pyx_t_3 = 0;
20046   goto __pyx_L0;
20047 
20048   /* "cylp/cy/CyClpSimplex.pyx":1274
20049  *         return problemStatus[self.CppSelf.initialPrimalSolve()]
20050  *
20051  *     def initialDualSolve(self):             # <<<<<<<<<<<<<<
20052  *         '''
20053  *         Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force
20054  */
20055 
20056   /* function exit code */
20057   __pyx_L1_error:;
20058   __Pyx_XDECREF(__pyx_t_1);
20059   __Pyx_XDECREF(__pyx_t_3);
20060   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.initialDualSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
20061   __pyx_r = NULL;
20062   __pyx_L0:;
20063   __Pyx_XGIVEREF(__pyx_r);
20064   __Pyx_TraceReturn(__pyx_r, 0);
20065   __Pyx_RefNannyFinishContext();
20066   return __pyx_r;
20067 }
20068 
20069 /* "cylp/cy/CyClpSimplex.pyx":1294
20070  *         return problemStatus[self.CppSelf.initialDualSolve()]
20071  *
20072  *     def __iadd__(self, cons):             # <<<<<<<<<<<<<<
20073  *         self.addConstraint(cons)
20074  *         return self
20075  */
20076 
20077 /* Python wrapper */
20078 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_87__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_cons); /*proto*/
20079 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_87__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_cons) {
20080   PyObject *__pyx_r = 0;
20081   __Pyx_RefNannyDeclarations
20082   __Pyx_RefNannySetupContext("__iadd__ (wrapper)", 0);
20083   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_86__iadd__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_cons));
20084 
20085   /* function exit code */
20086   __Pyx_RefNannyFinishContext();
20087   return __pyx_r;
20088 }
20089 
20090 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_86__iadd__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cons) {
20091   PyObject *__pyx_r = NULL;
20092   __Pyx_TraceDeclarations
20093   __Pyx_RefNannyDeclarations
20094   PyObject *__pyx_t_1 = NULL;
20095   PyObject *__pyx_t_2 = NULL;
20096   PyObject *__pyx_t_3 = NULL;
20097   int __pyx_lineno = 0;
20098   const char *__pyx_filename = NULL;
20099   int __pyx_clineno = 0;
20100   __Pyx_RefNannySetupContext("__iadd__", 0);
20101   __Pyx_TraceCall("__iadd__", __pyx_f[0], 1294, 0, __PYX_ERR(0, 1294, __pyx_L1_error));
20102 
20103   /* "cylp/cy/CyClpSimplex.pyx":1295
20104  *
20105  *     def __iadd__(self, cons):
20106  *         self.addConstraint(cons)             # <<<<<<<<<<<<<<
20107  *         return self
20108  *
20109  */
20110   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_addConstraint); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1295, __pyx_L1_error)
20111   __Pyx_GOTREF(__pyx_t_2);
20112   __pyx_t_3 = NULL;
20113   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
20114     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
20115     if (likely(__pyx_t_3)) {
20116       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
20117       __Pyx_INCREF(__pyx_t_3);
20118       __Pyx_INCREF(function);
20119       __Pyx_DECREF_SET(__pyx_t_2, function);
20120     }
20121   }
20122   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_cons) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_cons);
20123   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
20124   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1295, __pyx_L1_error)
20125   __Pyx_GOTREF(__pyx_t_1);
20126   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20127   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20128 
20129   /* "cylp/cy/CyClpSimplex.pyx":1296
20130  *     def __iadd__(self, cons):
20131  *         self.addConstraint(cons)
20132  *         return self             # <<<<<<<<<<<<<<
20133  *
20134  *     def addConstraint(self, cons, name='', addMpsNames=True):
20135  */
20136   __Pyx_XDECREF(__pyx_r);
20137   __Pyx_INCREF(((PyObject *)__pyx_v_self));
20138   __pyx_r = ((PyObject *)__pyx_v_self);
20139   goto __pyx_L0;
20140 
20141   /* "cylp/cy/CyClpSimplex.pyx":1294
20142  *         return problemStatus[self.CppSelf.initialDualSolve()]
20143  *
20144  *     def __iadd__(self, cons):             # <<<<<<<<<<<<<<
20145  *         self.addConstraint(cons)
20146  *         return self
20147  */
20148 
20149   /* function exit code */
20150   __pyx_L1_error:;
20151   __Pyx_XDECREF(__pyx_t_1);
20152   __Pyx_XDECREF(__pyx_t_2);
20153   __Pyx_XDECREF(__pyx_t_3);
20154   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__iadd__", __pyx_clineno, __pyx_lineno, __pyx_filename);
20155   __pyx_r = NULL;
20156   __pyx_L0:;
20157   __Pyx_XGIVEREF(__pyx_r);
20158   __Pyx_TraceReturn(__pyx_r, 0);
20159   __Pyx_RefNannyFinishContext();
20160   return __pyx_r;
20161 }
20162 
20163 /* "cylp/cy/CyClpSimplex.pyx":1298
20164  *         return self
20165  *
20166  *     def addConstraint(self, cons, name='', addMpsNames=True):             # <<<<<<<<<<<<<<
20167  *         '''
20168  *         Adds constraints ``cons``  to the problem. Example for the value
20169  */
20170 
20171 /* Python wrapper */
20172 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_89addConstraint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
20173 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_88addConstraint[] = "CyClpSimplex.addConstraint(self, cons, name='', addMpsNames=True)\n\n        Adds constraints ``cons``  to the problem. Example for the value\n        of ``cons`` is ``0 <= A * x <= b`` where ``A`` is a Numpy matrix and\n        b is a :py:class:`CyLPArray`.\n        ";
20174 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_89addConstraint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
20175   PyObject *__pyx_v_cons = 0;
20176   PyObject *__pyx_v_name = 0;
20177   PyObject *__pyx_v_addMpsNames = 0;
20178   int __pyx_lineno = 0;
20179   const char *__pyx_filename = NULL;
20180   int __pyx_clineno = 0;
20181   PyObject *__pyx_r = 0;
20182   __Pyx_RefNannyDeclarations
20183   __Pyx_RefNannySetupContext("addConstraint (wrapper)", 0);
20184   {
20185     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cons,&__pyx_n_s_name,&__pyx_n_s_addMpsNames,0};
20186     PyObject* values[3] = {0,0,0};
20187     values[1] = ((PyObject *)__pyx_kp_s__8);
20188     values[2] = ((PyObject *)Py_True);
20189     if (unlikely(__pyx_kwds)) {
20190       Py_ssize_t kw_args;
20191       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
20192       switch (pos_args) {
20193         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20194         CYTHON_FALLTHROUGH;
20195         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20196         CYTHON_FALLTHROUGH;
20197         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20198         CYTHON_FALLTHROUGH;
20199         case  0: break;
20200         default: goto __pyx_L5_argtuple_error;
20201       }
20202       kw_args = PyDict_Size(__pyx_kwds);
20203       switch (pos_args) {
20204         case  0:
20205         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cons)) != 0)) kw_args--;
20206         else goto __pyx_L5_argtuple_error;
20207         CYTHON_FALLTHROUGH;
20208         case  1:
20209         if (kw_args > 0) {
20210           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name);
20211           if (value) { values[1] = value; kw_args--; }
20212         }
20213         CYTHON_FALLTHROUGH;
20214         case  2:
20215         if (kw_args > 0) {
20216           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addMpsNames);
20217           if (value) { values[2] = value; kw_args--; }
20218         }
20219       }
20220       if (unlikely(kw_args > 0)) {
20221         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addConstraint") < 0)) __PYX_ERR(0, 1298, __pyx_L3_error)
20222       }
20223     } else {
20224       switch (PyTuple_GET_SIZE(__pyx_args)) {
20225         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20226         CYTHON_FALLTHROUGH;
20227         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20228         CYTHON_FALLTHROUGH;
20229         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20230         break;
20231         default: goto __pyx_L5_argtuple_error;
20232       }
20233     }
20234     __pyx_v_cons = values[0];
20235     __pyx_v_name = values[1];
20236     __pyx_v_addMpsNames = values[2];
20237   }
20238   goto __pyx_L4_argument_unpacking_done;
20239   __pyx_L5_argtuple_error:;
20240   __Pyx_RaiseArgtupleInvalid("addConstraint", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1298, __pyx_L3_error)
20241   __pyx_L3_error:;
20242   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
20243   __Pyx_RefNannyFinishContext();
20244   return NULL;
20245   __pyx_L4_argument_unpacking_done:;
20246   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_88addConstraint(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_cons, __pyx_v_name, __pyx_v_addMpsNames);
20247 
20248   /* function exit code */
20249   __Pyx_RefNannyFinishContext();
20250   return __pyx_r;
20251 }
20252 
20253 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_88addConstraint(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cons, PyObject *__pyx_v_name, PyObject *__pyx_v_addMpsNames) {
20254   PyObject *__pyx_v_m = NULL;
20255   PyObject *__pyx_v_nVarsBefore = NULL;
20256   PyObject *__pyx_v_nConsBefore = NULL;
20257   PyObject *__pyx_v_c = NULL;
20258   PyObject *__pyx_v_var = NULL;
20259   PyObject *__pyx_v_dim = NULL;
20260   PyObject *__pyx_v_varinds = NULL;
20261   PyObject *__pyx_v_lb = NULL;
20262   PyObject *__pyx_v_ub = NULL;
20263   PyObject *__pyx_v_mainCoef = NULL;
20264   PyObject *__pyx_v_varName = NULL;
20265   PyObject *__pyx_v_coef = NULL;
20266   PyObject *__pyx_v_keys = NULL;
20267   PyObject *__pyx_v_k = NULL;
20268   PyObject *__pyx_r = NULL;
20269   __Pyx_TraceDeclarations
20270   __Pyx_RefNannyDeclarations
20271   int __pyx_t_1;
20272   PyObject *__pyx_t_2 = NULL;
20273   PyObject *__pyx_t_3 = NULL;
20274   PyObject *__pyx_t_4 = NULL;
20275   int __pyx_t_5;
20276   PyObject *__pyx_t_6 = NULL;
20277   int __pyx_t_7;
20278   PyObject *__pyx_t_8 = NULL;
20279   Py_ssize_t __pyx_t_9;
20280   PyObject *(*__pyx_t_10)(PyObject *);
20281   Py_ssize_t __pyx_t_11;
20282   PyObject *(*__pyx_t_12)(PyObject *);
20283   PyObject *__pyx_t_13 = NULL;
20284   PyObject *__pyx_t_14 = NULL;
20285   PyObject *__pyx_t_15 = NULL;
20286   PyObject *__pyx_t_16 = NULL;
20287   PyObject *__pyx_t_17 = NULL;
20288   int __pyx_lineno = 0;
20289   const char *__pyx_filename = NULL;
20290   int __pyx_clineno = 0;
20291   __Pyx_RefNannySetupContext("addConstraint", 0);
20292   __Pyx_TraceCall("addConstraint", __pyx_f[0], 1298, 0, __PYX_ERR(0, 1298, __pyx_L1_error));
20293 
20294   /* "cylp/cy/CyClpSimplex.pyx":1304
20295  *         b is a :py:class:`CyLPArray`.
20296  *         '''
20297  *         if self.cyLPModel:             # <<<<<<<<<<<<<<
20298  *             m = self.cyLPModel
20299  *             nVarsBefore = m.nVars
20300  */
20301   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1304, __pyx_L1_error)
20302   if (likely(__pyx_t_1)) {
20303 
20304     /* "cylp/cy/CyClpSimplex.pyx":1305
20305  *         '''
20306  *         if self.cyLPModel:
20307  *             m = self.cyLPModel             # <<<<<<<<<<<<<<
20308  *             nVarsBefore = m.nVars
20309  *             nConsBefore = m.nCons
20310  */
20311     __pyx_t_2 = __pyx_v_self->cyLPModel;
20312     __Pyx_INCREF(__pyx_t_2);
20313     __pyx_v_m = __pyx_t_2;
20314     __pyx_t_2 = 0;
20315 
20316     /* "cylp/cy/CyClpSimplex.pyx":1306
20317  *         if self.cyLPModel:
20318  *             m = self.cyLPModel
20319  *             nVarsBefore = m.nVars             # <<<<<<<<<<<<<<
20320  *             nConsBefore = m.nCons
20321  *             c = m.addConstraint(cons, name, addMpsNames)
20322  */
20323     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_nVars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1306, __pyx_L1_error)
20324     __Pyx_GOTREF(__pyx_t_2);
20325     __pyx_v_nVarsBefore = __pyx_t_2;
20326     __pyx_t_2 = 0;
20327 
20328     /* "cylp/cy/CyClpSimplex.pyx":1307
20329  *             m = self.cyLPModel
20330  *             nVarsBefore = m.nVars
20331  *             nConsBefore = m.nCons             # <<<<<<<<<<<<<<
20332  *             c = m.addConstraint(cons, name, addMpsNames)
20333  *
20334  */
20335     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_nCons); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1307, __pyx_L1_error)
20336     __Pyx_GOTREF(__pyx_t_2);
20337     __pyx_v_nConsBefore = __pyx_t_2;
20338     __pyx_t_2 = 0;
20339 
20340     /* "cylp/cy/CyClpSimplex.pyx":1308
20341  *             nVarsBefore = m.nVars
20342  *             nConsBefore = m.nCons
20343  *             c = m.addConstraint(cons, name, addMpsNames)             # <<<<<<<<<<<<<<
20344  *
20345  *             # If the dimension is changing, load from scratch
20346  */
20347     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_addConstraint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1308, __pyx_L1_error)
20348     __Pyx_GOTREF(__pyx_t_3);
20349     __pyx_t_4 = NULL;
20350     __pyx_t_5 = 0;
20351     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
20352       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
20353       if (likely(__pyx_t_4)) {
20354         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
20355         __Pyx_INCREF(__pyx_t_4);
20356         __Pyx_INCREF(function);
20357         __Pyx_DECREF_SET(__pyx_t_3, function);
20358         __pyx_t_5 = 1;
20359       }
20360     }
20361     #if CYTHON_FAST_PYCALL
20362     if (PyFunction_Check(__pyx_t_3)) {
20363       PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_cons, __pyx_v_name, __pyx_v_addMpsNames};
20364       __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1308, __pyx_L1_error)
20365       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20366       __Pyx_GOTREF(__pyx_t_2);
20367     } else
20368     #endif
20369     #if CYTHON_FAST_PYCCALL
20370     if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
20371       PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_cons, __pyx_v_name, __pyx_v_addMpsNames};
20372       __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1308, __pyx_L1_error)
20373       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20374       __Pyx_GOTREF(__pyx_t_2);
20375     } else
20376     #endif
20377     {
20378       __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1308, __pyx_L1_error)
20379       __Pyx_GOTREF(__pyx_t_6);
20380       if (__pyx_t_4) {
20381         __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
20382       }
20383       __Pyx_INCREF(__pyx_v_cons);
20384       __Pyx_GIVEREF(__pyx_v_cons);
20385       PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_cons);
20386       __Pyx_INCREF(__pyx_v_name);
20387       __Pyx_GIVEREF(__pyx_v_name);
20388       PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_name);
20389       __Pyx_INCREF(__pyx_v_addMpsNames);
20390       __Pyx_GIVEREF(__pyx_v_addMpsNames);
20391       PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_addMpsNames);
20392       __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1308, __pyx_L1_error)
20393       __Pyx_GOTREF(__pyx_t_2);
20394       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20395     }
20396     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20397     __pyx_v_c = __pyx_t_2;
20398     __pyx_t_2 = 0;
20399 
20400     /* "cylp/cy/CyClpSimplex.pyx":1311
20401  *
20402  *             # If the dimension is changing, load from scratch
20403  *             if nConsBefore == 0 or m.nVars - nVarsBefore != 0:             # <<<<<<<<<<<<<<
20404  *                 self.loadFromCyLPModel(self.cyLPModel)
20405  *
20406  */
20407     __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_v_nConsBefore, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1311, __pyx_L1_error)
20408     __Pyx_GOTREF(__pyx_t_2);
20409     __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1311, __pyx_L1_error)
20410     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20411     if (!__pyx_t_7) {
20412     } else {
20413       __pyx_t_1 = __pyx_t_7;
20414       goto __pyx_L5_bool_binop_done;
20415     }
20416     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_nVars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1311, __pyx_L1_error)
20417     __Pyx_GOTREF(__pyx_t_2);
20418     __pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_v_nVarsBefore); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1311, __pyx_L1_error)
20419     __Pyx_GOTREF(__pyx_t_3);
20420     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20421     __pyx_t_2 = __Pyx_PyInt_NeObjC(__pyx_t_3, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1311, __pyx_L1_error)
20422     __Pyx_GOTREF(__pyx_t_2);
20423     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20424     __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1311, __pyx_L1_error)
20425     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20426     __pyx_t_1 = __pyx_t_7;
20427     __pyx_L5_bool_binop_done:;
20428     if (__pyx_t_1) {
20429 
20430       /* "cylp/cy/CyClpSimplex.pyx":1312
20431  *             # If the dimension is changing, load from scratch
20432  *             if nConsBefore == 0 or m.nVars - nVarsBefore != 0:
20433  *                 self.loadFromCyLPModel(self.cyLPModel)             # <<<<<<<<<<<<<<
20434  *
20435  *             # If the constraint to be added is just a variable range
20436  */
20437       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_loadFromCyLPModel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1312, __pyx_L1_error)
20438       __Pyx_GOTREF(__pyx_t_3);
20439       __pyx_t_6 = NULL;
20440       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
20441         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
20442         if (likely(__pyx_t_6)) {
20443           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
20444           __Pyx_INCREF(__pyx_t_6);
20445           __Pyx_INCREF(function);
20446           __Pyx_DECREF_SET(__pyx_t_3, function);
20447         }
20448       }
20449       __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_v_self->cyLPModel) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_self->cyLPModel);
20450       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
20451       if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1312, __pyx_L1_error)
20452       __Pyx_GOTREF(__pyx_t_2);
20453       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20454       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20455 
20456       /* "cylp/cy/CyClpSimplex.pyx":1311
20457  *
20458  *             # If the dimension is changing, load from scratch
20459  *             if nConsBefore == 0 or m.nVars - nVarsBefore != 0:             # <<<<<<<<<<<<<<
20460  *                 self.loadFromCyLPModel(self.cyLPModel)
20461  *
20462  */
20463       goto __pyx_L4;
20464     }
20465 
20466     /* "cylp/cy/CyClpSimplex.pyx":1315
20467  *
20468  *             # If the constraint to be added is just a variable range
20469  *             elif c.isRange:             # <<<<<<<<<<<<<<
20470  *                 var = c.variables[0]
20471  *                 dim = var.parentDim
20472  */
20473     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_isRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1315, __pyx_L1_error)
20474     __Pyx_GOTREF(__pyx_t_2);
20475     __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1315, __pyx_L1_error)
20476     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20477     if (__pyx_t_1) {
20478 
20479       /* "cylp/cy/CyClpSimplex.pyx":1316
20480  *             # If the constraint to be added is just a variable range
20481  *             elif c.isRange:
20482  *                 var = c.variables[0]             # <<<<<<<<<<<<<<
20483  *                 dim = var.parentDim
20484  *                 varinds = m.inds.varIndex[var.name]
20485  */
20486       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_variables); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1316, __pyx_L1_error)
20487       __Pyx_GOTREF(__pyx_t_2);
20488       __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1316, __pyx_L1_error)
20489       __Pyx_GOTREF(__pyx_t_3);
20490       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20491       __pyx_v_var = __pyx_t_3;
20492       __pyx_t_3 = 0;
20493 
20494       /* "cylp/cy/CyClpSimplex.pyx":1317
20495  *             elif c.isRange:
20496  *                 var = c.variables[0]
20497  *                 dim = var.parentDim             # <<<<<<<<<<<<<<
20498  *                 varinds = m.inds.varIndex[var.name]
20499  *
20500  */
20501       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_parentDim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1317, __pyx_L1_error)
20502       __Pyx_GOTREF(__pyx_t_3);
20503       __pyx_v_dim = __pyx_t_3;
20504       __pyx_t_3 = 0;
20505 
20506       /* "cylp/cy/CyClpSimplex.pyx":1318
20507  *                 var = c.variables[0]
20508  *                 dim = var.parentDim
20509  *                 varinds = m.inds.varIndex[var.name]             # <<<<<<<<<<<<<<
20510  *
20511  *                 lb = var.parent.lower if var.parent else var.lower
20512  */
20513       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1318, __pyx_L1_error)
20514       __Pyx_GOTREF(__pyx_t_3);
20515       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1318, __pyx_L1_error)
20516       __Pyx_GOTREF(__pyx_t_2);
20517       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20518       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1318, __pyx_L1_error)
20519       __Pyx_GOTREF(__pyx_t_3);
20520       __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1318, __pyx_L1_error)
20521       __Pyx_GOTREF(__pyx_t_6);
20522       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20523       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20524       __pyx_v_varinds = __pyx_t_6;
20525       __pyx_t_6 = 0;
20526 
20527       /* "cylp/cy/CyClpSimplex.pyx":1320
20528  *                 varinds = m.inds.varIndex[var.name]
20529  *
20530  *                 lb = var.parent.lower if var.parent else var.lower             # <<<<<<<<<<<<<<
20531  *                 ub = var.parent.upper if var.parent else var.upper
20532  *
20533  */
20534       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_parent); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1320, __pyx_L1_error)
20535       __Pyx_GOTREF(__pyx_t_3);
20536       __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1320, __pyx_L1_error)
20537       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20538       if (__pyx_t_1) {
20539         __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_parent); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1320, __pyx_L1_error)
20540         __Pyx_GOTREF(__pyx_t_3);
20541         __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1320, __pyx_L1_error)
20542         __Pyx_GOTREF(__pyx_t_2);
20543         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20544         __pyx_t_6 = __pyx_t_2;
20545         __pyx_t_2 = 0;
20546       } else {
20547         __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1320, __pyx_L1_error)
20548         __Pyx_GOTREF(__pyx_t_2);
20549         __pyx_t_6 = __pyx_t_2;
20550         __pyx_t_2 = 0;
20551       }
20552       __pyx_v_lb = __pyx_t_6;
20553       __pyx_t_6 = 0;
20554 
20555       /* "cylp/cy/CyClpSimplex.pyx":1321
20556  *
20557  *                 lb = var.parent.lower if var.parent else var.lower
20558  *                 ub = var.parent.upper if var.parent else var.upper             # <<<<<<<<<<<<<<
20559  *
20560  *                 #if len(var.indices != 0 :
20561  */
20562       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_parent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1321, __pyx_L1_error)
20563       __Pyx_GOTREF(__pyx_t_2);
20564       __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1321, __pyx_L1_error)
20565       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20566       if (__pyx_t_1) {
20567         __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_parent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1321, __pyx_L1_error)
20568         __Pyx_GOTREF(__pyx_t_2);
20569         __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_upper); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1321, __pyx_L1_error)
20570         __Pyx_GOTREF(__pyx_t_3);
20571         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20572         __pyx_t_6 = __pyx_t_3;
20573         __pyx_t_3 = 0;
20574       } else {
20575         __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_upper); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1321, __pyx_L1_error)
20576         __Pyx_GOTREF(__pyx_t_3);
20577         __pyx_t_6 = __pyx_t_3;
20578         __pyx_t_3 = 0;
20579       }
20580       __pyx_v_ub = __pyx_t_6;
20581       __pyx_t_6 = 0;
20582 
20583       /* "cylp/cy/CyClpSimplex.pyx":1324
20584  *
20585  *                 #if len(var.indices != 0 :
20586  *                 self.setColumnLowerSubset(var.indices,             # <<<<<<<<<<<<<<
20587  *                                               varinds,
20588  *                                               lb)
20589  */
20590       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setColumnLowerSubset); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1324, __pyx_L1_error)
20591       __Pyx_GOTREF(__pyx_t_3);
20592       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1324, __pyx_L1_error)
20593       __Pyx_GOTREF(__pyx_t_2);
20594 
20595       /* "cylp/cy/CyClpSimplex.pyx":1326
20596  *                 self.setColumnLowerSubset(var.indices,
20597  *                                               varinds,
20598  *                                               lb)             # <<<<<<<<<<<<<<
20599  *                 self.setColumnUpperSubset(var.indices,
20600  *                                               varinds,
20601  */
20602       __pyx_t_4 = NULL;
20603       __pyx_t_5 = 0;
20604       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
20605         __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
20606         if (likely(__pyx_t_4)) {
20607           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
20608           __Pyx_INCREF(__pyx_t_4);
20609           __Pyx_INCREF(function);
20610           __Pyx_DECREF_SET(__pyx_t_3, function);
20611           __pyx_t_5 = 1;
20612         }
20613       }
20614       #if CYTHON_FAST_PYCALL
20615       if (PyFunction_Check(__pyx_t_3)) {
20616         PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_v_varinds, __pyx_v_lb};
20617         __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1324, __pyx_L1_error)
20618         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20619         __Pyx_GOTREF(__pyx_t_6);
20620         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20621       } else
20622       #endif
20623       #if CYTHON_FAST_PYCCALL
20624       if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
20625         PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_v_varinds, __pyx_v_lb};
20626         __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1324, __pyx_L1_error)
20627         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20628         __Pyx_GOTREF(__pyx_t_6);
20629         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20630       } else
20631       #endif
20632       {
20633         __pyx_t_8 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1324, __pyx_L1_error)
20634         __Pyx_GOTREF(__pyx_t_8);
20635         if (__pyx_t_4) {
20636           __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __pyx_t_4 = NULL;
20637         }
20638         __Pyx_GIVEREF(__pyx_t_2);
20639         PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_5, __pyx_t_2);
20640         __Pyx_INCREF(__pyx_v_varinds);
20641         __Pyx_GIVEREF(__pyx_v_varinds);
20642         PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_5, __pyx_v_varinds);
20643         __Pyx_INCREF(__pyx_v_lb);
20644         __Pyx_GIVEREF(__pyx_v_lb);
20645         PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_5, __pyx_v_lb);
20646         __pyx_t_2 = 0;
20647         __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1324, __pyx_L1_error)
20648         __Pyx_GOTREF(__pyx_t_6);
20649         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
20650       }
20651       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20652       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20653 
20654       /* "cylp/cy/CyClpSimplex.pyx":1327
20655  *                                               varinds,
20656  *                                               lb)
20657  *                 self.setColumnUpperSubset(var.indices,             # <<<<<<<<<<<<<<
20658  *                                               varinds,
20659  *                                               ub)
20660  */
20661       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setColumnUpperSubset); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1327, __pyx_L1_error)
20662       __Pyx_GOTREF(__pyx_t_3);
20663       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_indices); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1327, __pyx_L1_error)
20664       __Pyx_GOTREF(__pyx_t_8);
20665 
20666       /* "cylp/cy/CyClpSimplex.pyx":1329
20667  *                 self.setColumnUpperSubset(var.indices,
20668  *                                               varinds,
20669  *                                               ub)             # <<<<<<<<<<<<<<
20670  *                 #for i in var.indices:
20671  *                 #    self.setColumnLower(varinds[i], lb[i])
20672  */
20673       __pyx_t_2 = NULL;
20674       __pyx_t_5 = 0;
20675       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
20676         __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
20677         if (likely(__pyx_t_2)) {
20678           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
20679           __Pyx_INCREF(__pyx_t_2);
20680           __Pyx_INCREF(function);
20681           __Pyx_DECREF_SET(__pyx_t_3, function);
20682           __pyx_t_5 = 1;
20683         }
20684       }
20685       #if CYTHON_FAST_PYCALL
20686       if (PyFunction_Check(__pyx_t_3)) {
20687         PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_8, __pyx_v_varinds, __pyx_v_ub};
20688         __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1327, __pyx_L1_error)
20689         __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
20690         __Pyx_GOTREF(__pyx_t_6);
20691         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
20692       } else
20693       #endif
20694       #if CYTHON_FAST_PYCCALL
20695       if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
20696         PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_8, __pyx_v_varinds, __pyx_v_ub};
20697         __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1327, __pyx_L1_error)
20698         __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
20699         __Pyx_GOTREF(__pyx_t_6);
20700         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
20701       } else
20702       #endif
20703       {
20704         __pyx_t_4 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1327, __pyx_L1_error)
20705         __Pyx_GOTREF(__pyx_t_4);
20706         if (__pyx_t_2) {
20707           __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
20708         }
20709         __Pyx_GIVEREF(__pyx_t_8);
20710         PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_t_8);
20711         __Pyx_INCREF(__pyx_v_varinds);
20712         __Pyx_GIVEREF(__pyx_v_varinds);
20713         PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_varinds);
20714         __Pyx_INCREF(__pyx_v_ub);
20715         __Pyx_GIVEREF(__pyx_v_ub);
20716         PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_ub);
20717         __pyx_t_8 = 0;
20718         __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1327, __pyx_L1_error)
20719         __Pyx_GOTREF(__pyx_t_6);
20720         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20721       }
20722       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20723       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20724 
20725       /* "cylp/cy/CyClpSimplex.pyx":1315
20726  *
20727  *             # If the constraint to be added is just a variable range
20728  *             elif c.isRange:             # <<<<<<<<<<<<<<
20729  *                 var = c.variables[0]
20730  *                 dim = var.parentDim
20731  */
20732       goto __pyx_L4;
20733     }
20734 
20735     /* "cylp/cy/CyClpSimplex.pyx":1337
20736  *             # dimension changes required
20737  *             else:
20738  *                 mainCoef = None             # <<<<<<<<<<<<<<
20739  *                 for varName in m.varNames:
20740  *                     dim = m.pvdims[varName]
20741  */
20742     /*else*/ {
20743       __Pyx_INCREF(Py_None);
20744       __pyx_v_mainCoef = Py_None;
20745 
20746       /* "cylp/cy/CyClpSimplex.pyx":1338
20747  *             else:
20748  *                 mainCoef = None
20749  *                 for varName in m.varNames:             # <<<<<<<<<<<<<<
20750  *                     dim = m.pvdims[varName]
20751  *                     coef = sparse.coo_matrix((c.nRows, dim))
20752  */
20753       __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_varNames); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1338, __pyx_L1_error)
20754       __Pyx_GOTREF(__pyx_t_6);
20755       if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
20756         __pyx_t_3 = __pyx_t_6; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
20757         __pyx_t_10 = NULL;
20758       } else {
20759         __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1338, __pyx_L1_error)
20760         __Pyx_GOTREF(__pyx_t_3);
20761         __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1338, __pyx_L1_error)
20762       }
20763       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20764       for (;;) {
20765         if (likely(!__pyx_t_10)) {
20766           if (likely(PyList_CheckExact(__pyx_t_3))) {
20767             if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
20768             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20769             __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1338, __pyx_L1_error)
20770             #else
20771             __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1338, __pyx_L1_error)
20772             __Pyx_GOTREF(__pyx_t_6);
20773             #endif
20774           } else {
20775             if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
20776             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20777             __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1338, __pyx_L1_error)
20778             #else
20779             __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1338, __pyx_L1_error)
20780             __Pyx_GOTREF(__pyx_t_6);
20781             #endif
20782           }
20783         } else {
20784           __pyx_t_6 = __pyx_t_10(__pyx_t_3);
20785           if (unlikely(!__pyx_t_6)) {
20786             PyObject* exc_type = PyErr_Occurred();
20787             if (exc_type) {
20788               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
20789               else __PYX_ERR(0, 1338, __pyx_L1_error)
20790             }
20791             break;
20792           }
20793           __Pyx_GOTREF(__pyx_t_6);
20794         }
20795         __Pyx_XDECREF_SET(__pyx_v_varName, __pyx_t_6);
20796         __pyx_t_6 = 0;
20797 
20798         /* "cylp/cy/CyClpSimplex.pyx":1339
20799  *                 mainCoef = None
20800  *                 for varName in m.varNames:
20801  *                     dim = m.pvdims[varName]             # <<<<<<<<<<<<<<
20802  *                     coef = sparse.coo_matrix((c.nRows, dim))
20803  *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
20804  */
20805         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_pvdims); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1339, __pyx_L1_error)
20806         __Pyx_GOTREF(__pyx_t_6);
20807         __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_varName); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1339, __pyx_L1_error)
20808         __Pyx_GOTREF(__pyx_t_4);
20809         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20810         __Pyx_XDECREF_SET(__pyx_v_dim, __pyx_t_4);
20811         __pyx_t_4 = 0;
20812 
20813         /* "cylp/cy/CyClpSimplex.pyx":1340
20814  *                 for varName in m.varNames:
20815  *                     dim = m.pvdims[varName]
20816  *                     coef = sparse.coo_matrix((c.nRows, dim))             # <<<<<<<<<<<<<<
20817  *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
20818  *                     for var in keys:
20819  */
20820         __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_sparse); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1340, __pyx_L1_error)
20821         __Pyx_GOTREF(__pyx_t_6);
20822         __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_coo_matrix); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1340, __pyx_L1_error)
20823         __Pyx_GOTREF(__pyx_t_8);
20824         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20825         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_nRows); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1340, __pyx_L1_error)
20826         __Pyx_GOTREF(__pyx_t_6);
20827         __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1340, __pyx_L1_error)
20828         __Pyx_GOTREF(__pyx_t_2);
20829         __Pyx_GIVEREF(__pyx_t_6);
20830         PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6);
20831         __Pyx_INCREF(__pyx_v_dim);
20832         __Pyx_GIVEREF(__pyx_v_dim);
20833         PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_dim);
20834         __pyx_t_6 = 0;
20835         __pyx_t_6 = NULL;
20836         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
20837           __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
20838           if (likely(__pyx_t_6)) {
20839             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
20840             __Pyx_INCREF(__pyx_t_6);
20841             __Pyx_INCREF(function);
20842             __Pyx_DECREF_SET(__pyx_t_8, function);
20843           }
20844         }
20845         __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_2);
20846         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
20847         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20848         if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1340, __pyx_L1_error)
20849         __Pyx_GOTREF(__pyx_t_4);
20850         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
20851         __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_4);
20852         __pyx_t_4 = 0;
20853 
20854         /* "cylp/cy/CyClpSimplex.pyx":1341
20855  *                     dim = m.pvdims[varName]
20856  *                     coef = sparse.coo_matrix((c.nRows, dim))
20857  *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]             # <<<<<<<<<<<<<<
20858  *                     for var in keys:
20859  *                         coef = coef + c.varCoefs[var]
20860  */
20861         __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1341, __pyx_L1_error)
20862         __Pyx_GOTREF(__pyx_t_4);
20863         __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_varCoefs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1341, __pyx_L1_error)
20864         __Pyx_GOTREF(__pyx_t_2);
20865         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1341, __pyx_L1_error)
20866         __Pyx_GOTREF(__pyx_t_6);
20867         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20868         __pyx_t_2 = NULL;
20869         if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
20870           __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
20871           if (likely(__pyx_t_2)) {
20872             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
20873             __Pyx_INCREF(__pyx_t_2);
20874             __Pyx_INCREF(function);
20875             __Pyx_DECREF_SET(__pyx_t_6, function);
20876           }
20877         }
20878         __pyx_t_8 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
20879         __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
20880         if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1341, __pyx_L1_error)
20881         __Pyx_GOTREF(__pyx_t_8);
20882         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20883         if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
20884           __pyx_t_6 = __pyx_t_8; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
20885           __pyx_t_12 = NULL;
20886         } else {
20887           __pyx_t_11 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1341, __pyx_L1_error)
20888           __Pyx_GOTREF(__pyx_t_6);
20889           __pyx_t_12 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1341, __pyx_L1_error)
20890         }
20891         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
20892         for (;;) {
20893           if (likely(!__pyx_t_12)) {
20894             if (likely(PyList_CheckExact(__pyx_t_6))) {
20895               if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
20896               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20897               __pyx_t_8 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1341, __pyx_L1_error)
20898               #else
20899               __pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1341, __pyx_L1_error)
20900               __Pyx_GOTREF(__pyx_t_8);
20901               #endif
20902             } else {
20903               if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
20904               #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20905               __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1341, __pyx_L1_error)
20906               #else
20907               __pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1341, __pyx_L1_error)
20908               __Pyx_GOTREF(__pyx_t_8);
20909               #endif
20910             }
20911           } else {
20912             __pyx_t_8 = __pyx_t_12(__pyx_t_6);
20913             if (unlikely(!__pyx_t_8)) {
20914               PyObject* exc_type = PyErr_Occurred();
20915               if (exc_type) {
20916                 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
20917                 else __PYX_ERR(0, 1341, __pyx_L1_error)
20918               }
20919               break;
20920             }
20921             __Pyx_GOTREF(__pyx_t_8);
20922           }
20923           __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_8);
20924           __pyx_t_8 = 0;
20925           __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1341, __pyx_L1_error)
20926           __Pyx_GOTREF(__pyx_t_8);
20927           __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_v_varName, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1341, __pyx_L1_error)
20928           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
20929           __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1341, __pyx_L1_error)
20930           __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20931           if (__pyx_t_1) {
20932             if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_v_k))) __PYX_ERR(0, 1341, __pyx_L1_error)
20933           }
20934         }
20935         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20936         __Pyx_XDECREF_SET(__pyx_v_keys, ((PyObject*)__pyx_t_4));
20937         __pyx_t_4 = 0;
20938 
20939         /* "cylp/cy/CyClpSimplex.pyx":1342
20940  *                     coef = sparse.coo_matrix((c.nRows, dim))
20941  *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
20942  *                     for var in keys:             # <<<<<<<<<<<<<<
20943  *                         coef = coef + c.varCoefs[var]
20944  *                     mainCoef = sparseConcat(mainCoef, coef, 'h')
20945  */
20946         __pyx_t_4 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_4); __pyx_t_11 = 0;
20947         for (;;) {
20948           if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_4)) break;
20949           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20950           __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1342, __pyx_L1_error)
20951           #else
20952           __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1342, __pyx_L1_error)
20953           __Pyx_GOTREF(__pyx_t_6);
20954           #endif
20955           __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_6);
20956           __pyx_t_6 = 0;
20957 
20958           /* "cylp/cy/CyClpSimplex.pyx":1343
20959  *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
20960  *                     for var in keys:
20961  *                         coef = coef + c.varCoefs[var]             # <<<<<<<<<<<<<<
20962  *                     mainCoef = sparseConcat(mainCoef, coef, 'h')
20963  *
20964  */
20965           __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_varCoefs); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1343, __pyx_L1_error)
20966           __Pyx_GOTREF(__pyx_t_6);
20967           __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_var); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1343, __pyx_L1_error)
20968           __Pyx_GOTREF(__pyx_t_2);
20969           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
20970           __pyx_t_6 = PyNumber_Add(__pyx_v_coef, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1343, __pyx_L1_error)
20971           __Pyx_GOTREF(__pyx_t_6);
20972           __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20973           __Pyx_DECREF_SET(__pyx_v_coef, __pyx_t_6);
20974           __pyx_t_6 = 0;
20975 
20976           /* "cylp/cy/CyClpSimplex.pyx":1342
20977  *                     coef = sparse.coo_matrix((c.nRows, dim))
20978  *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
20979  *                     for var in keys:             # <<<<<<<<<<<<<<
20980  *                         coef = coef + c.varCoefs[var]
20981  *                     mainCoef = sparseConcat(mainCoef, coef, 'h')
20982  */
20983         }
20984         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20985 
20986         /* "cylp/cy/CyClpSimplex.pyx":1344
20987  *                     for var in keys:
20988  *                         coef = coef + c.varCoefs[var]
20989  *                     mainCoef = sparseConcat(mainCoef, coef, 'h')             # <<<<<<<<<<<<<<
20990  *
20991  *                 self.addConstraints(c.nRows,
20992  */
20993         __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_sparseConcat); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1344, __pyx_L1_error)
20994         __Pyx_GOTREF(__pyx_t_6);
20995         __pyx_t_2 = NULL;
20996         __pyx_t_5 = 0;
20997         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
20998           __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
20999           if (likely(__pyx_t_2)) {
21000             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
21001             __Pyx_INCREF(__pyx_t_2);
21002             __Pyx_INCREF(function);
21003             __Pyx_DECREF_SET(__pyx_t_6, function);
21004             __pyx_t_5 = 1;
21005           }
21006         }
21007         #if CYTHON_FAST_PYCALL
21008         if (PyFunction_Check(__pyx_t_6)) {
21009           PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_mainCoef, __pyx_v_coef, __pyx_n_s_h};
21010           __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1344, __pyx_L1_error)
21011           __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
21012           __Pyx_GOTREF(__pyx_t_4);
21013         } else
21014         #endif
21015         #if CYTHON_FAST_PYCCALL
21016         if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
21017           PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_mainCoef, __pyx_v_coef, __pyx_n_s_h};
21018           __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1344, __pyx_L1_error)
21019           __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
21020           __Pyx_GOTREF(__pyx_t_4);
21021         } else
21022         #endif
21023         {
21024           __pyx_t_8 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1344, __pyx_L1_error)
21025           __Pyx_GOTREF(__pyx_t_8);
21026           if (__pyx_t_2) {
21027             __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = NULL;
21028           }
21029           __Pyx_INCREF(__pyx_v_mainCoef);
21030           __Pyx_GIVEREF(__pyx_v_mainCoef);
21031           PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_5, __pyx_v_mainCoef);
21032           __Pyx_INCREF(__pyx_v_coef);
21033           __Pyx_GIVEREF(__pyx_v_coef);
21034           PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_5, __pyx_v_coef);
21035           __Pyx_INCREF(__pyx_n_s_h);
21036           __Pyx_GIVEREF(__pyx_n_s_h);
21037           PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_5, __pyx_n_s_h);
21038           __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1344, __pyx_L1_error)
21039           __Pyx_GOTREF(__pyx_t_4);
21040           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
21041         }
21042         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
21043         __Pyx_DECREF_SET(__pyx_v_mainCoef, __pyx_t_4);
21044         __pyx_t_4 = 0;
21045 
21046         /* "cylp/cy/CyClpSimplex.pyx":1338
21047  *             else:
21048  *                 mainCoef = None
21049  *                 for varName in m.varNames:             # <<<<<<<<<<<<<<
21050  *                     dim = m.pvdims[varName]
21051  *                     coef = sparse.coo_matrix((c.nRows, dim))
21052  */
21053       }
21054       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21055 
21056       /* "cylp/cy/CyClpSimplex.pyx":1346
21057  *                     mainCoef = sparseConcat(mainCoef, coef, 'h')
21058  *
21059  *                 self.addConstraints(c.nRows,             # <<<<<<<<<<<<<<
21060  *                         c.lower, c.upper, mainCoef.indptr,
21061  *                         mainCoef.indices, mainCoef.data)
21062  */
21063       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_addConstraints); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1346, __pyx_L1_error)
21064       __Pyx_GOTREF(__pyx_t_4);
21065       __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_nRows); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1346, __pyx_L1_error)
21066       __Pyx_GOTREF(__pyx_t_6);
21067 
21068       /* "cylp/cy/CyClpSimplex.pyx":1347
21069  *
21070  *                 self.addConstraints(c.nRows,
21071  *                         c.lower, c.upper, mainCoef.indptr,             # <<<<<<<<<<<<<<
21072  *                         mainCoef.indices, mainCoef.data)
21073  *         else:
21074  */
21075       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_lower); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1347, __pyx_L1_error)
21076       __Pyx_GOTREF(__pyx_t_8);
21077       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_upper); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1347, __pyx_L1_error)
21078       __Pyx_GOTREF(__pyx_t_2);
21079       __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_mainCoef, __pyx_n_s_indptr); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1347, __pyx_L1_error)
21080       __Pyx_GOTREF(__pyx_t_13);
21081 
21082       /* "cylp/cy/CyClpSimplex.pyx":1348
21083  *                 self.addConstraints(c.nRows,
21084  *                         c.lower, c.upper, mainCoef.indptr,
21085  *                         mainCoef.indices, mainCoef.data)             # <<<<<<<<<<<<<<
21086  *         else:
21087  *             raise Exception('To add a constraint you must set ' \
21088  */
21089       __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_mainCoef, __pyx_n_s_indices); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1348, __pyx_L1_error)
21090       __Pyx_GOTREF(__pyx_t_14);
21091       __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_mainCoef, __pyx_n_s_data); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1348, __pyx_L1_error)
21092       __Pyx_GOTREF(__pyx_t_15);
21093       __pyx_t_16 = NULL;
21094       __pyx_t_5 = 0;
21095       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
21096         __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_4);
21097         if (likely(__pyx_t_16)) {
21098           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
21099           __Pyx_INCREF(__pyx_t_16);
21100           __Pyx_INCREF(function);
21101           __Pyx_DECREF_SET(__pyx_t_4, function);
21102           __pyx_t_5 = 1;
21103         }
21104       }
21105       #if CYTHON_FAST_PYCALL
21106       if (PyFunction_Check(__pyx_t_4)) {
21107         PyObject *__pyx_temp[7] = {__pyx_t_16, __pyx_t_6, __pyx_t_8, __pyx_t_2, __pyx_t_13, __pyx_t_14, __pyx_t_15};
21108         __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1346, __pyx_L1_error)
21109         __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
21110         __Pyx_GOTREF(__pyx_t_3);
21111         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
21112         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
21113         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21114         __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
21115         __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
21116         __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
21117       } else
21118       #endif
21119       #if CYTHON_FAST_PYCCALL
21120       if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
21121         PyObject *__pyx_temp[7] = {__pyx_t_16, __pyx_t_6, __pyx_t_8, __pyx_t_2, __pyx_t_13, __pyx_t_14, __pyx_t_15};
21122         __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1346, __pyx_L1_error)
21123         __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
21124         __Pyx_GOTREF(__pyx_t_3);
21125         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
21126         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
21127         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21128         __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
21129         __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
21130         __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
21131       } else
21132       #endif
21133       {
21134         __pyx_t_17 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1346, __pyx_L1_error)
21135         __Pyx_GOTREF(__pyx_t_17);
21136         if (__pyx_t_16) {
21137           __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_16); __pyx_t_16 = NULL;
21138         }
21139         __Pyx_GIVEREF(__pyx_t_6);
21140         PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_5, __pyx_t_6);
21141         __Pyx_GIVEREF(__pyx_t_8);
21142         PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_5, __pyx_t_8);
21143         __Pyx_GIVEREF(__pyx_t_2);
21144         PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_5, __pyx_t_2);
21145         __Pyx_GIVEREF(__pyx_t_13);
21146         PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_5, __pyx_t_13);
21147         __Pyx_GIVEREF(__pyx_t_14);
21148         PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_5, __pyx_t_14);
21149         __Pyx_GIVEREF(__pyx_t_15);
21150         PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_5, __pyx_t_15);
21151         __pyx_t_6 = 0;
21152         __pyx_t_8 = 0;
21153         __pyx_t_2 = 0;
21154         __pyx_t_13 = 0;
21155         __pyx_t_14 = 0;
21156         __pyx_t_15 = 0;
21157         __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_17, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1346, __pyx_L1_error)
21158         __Pyx_GOTREF(__pyx_t_3);
21159         __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
21160       }
21161       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
21162       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21163     }
21164     __pyx_L4:;
21165 
21166     /* "cylp/cy/CyClpSimplex.pyx":1304
21167  *         b is a :py:class:`CyLPArray`.
21168  *         '''
21169  *         if self.cyLPModel:             # <<<<<<<<<<<<<<
21170  *             m = self.cyLPModel
21171  *             nVarsBefore = m.nVars
21172  */
21173     goto __pyx_L3;
21174   }
21175 
21176   /* "cylp/cy/CyClpSimplex.pyx":1350
21177  *                         mainCoef.indices, mainCoef.data)
21178  *         else:
21179  *             raise Exception('To add a constraint you must set ' \             # <<<<<<<<<<<<<<
21180  *                             'cylpSimplex.cyLPModel first.')
21181  *
21182  */
21183   /*else*/ {
21184     __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1350, __pyx_L1_error)
21185     __Pyx_GOTREF(__pyx_t_3);
21186     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
21187     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21188     __PYX_ERR(0, 1350, __pyx_L1_error)
21189   }
21190   __pyx_L3:;
21191 
21192   /* "cylp/cy/CyClpSimplex.pyx":1298
21193  *         return self
21194  *
21195  *     def addConstraint(self, cons, name='', addMpsNames=True):             # <<<<<<<<<<<<<<
21196  *         '''
21197  *         Adds constraints ``cons``  to the problem. Example for the value
21198  */
21199 
21200   /* function exit code */
21201   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
21202   goto __pyx_L0;
21203   __pyx_L1_error:;
21204   __Pyx_XDECREF(__pyx_t_2);
21205   __Pyx_XDECREF(__pyx_t_3);
21206   __Pyx_XDECREF(__pyx_t_4);
21207   __Pyx_XDECREF(__pyx_t_6);
21208   __Pyx_XDECREF(__pyx_t_8);
21209   __Pyx_XDECREF(__pyx_t_13);
21210   __Pyx_XDECREF(__pyx_t_14);
21211   __Pyx_XDECREF(__pyx_t_15);
21212   __Pyx_XDECREF(__pyx_t_16);
21213   __Pyx_XDECREF(__pyx_t_17);
21214   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
21215   __pyx_r = NULL;
21216   __pyx_L0:;
21217   __Pyx_XDECREF(__pyx_v_m);
21218   __Pyx_XDECREF(__pyx_v_nVarsBefore);
21219   __Pyx_XDECREF(__pyx_v_nConsBefore);
21220   __Pyx_XDECREF(__pyx_v_c);
21221   __Pyx_XDECREF(__pyx_v_var);
21222   __Pyx_XDECREF(__pyx_v_dim);
21223   __Pyx_XDECREF(__pyx_v_varinds);
21224   __Pyx_XDECREF(__pyx_v_lb);
21225   __Pyx_XDECREF(__pyx_v_ub);
21226   __Pyx_XDECREF(__pyx_v_mainCoef);
21227   __Pyx_XDECREF(__pyx_v_varName);
21228   __Pyx_XDECREF(__pyx_v_coef);
21229   __Pyx_XDECREF(__pyx_v_keys);
21230   __Pyx_XDECREF(__pyx_v_k);
21231   __Pyx_XGIVEREF(__pyx_r);
21232   __Pyx_TraceReturn(__pyx_r, 0);
21233   __Pyx_RefNannyFinishContext();
21234   return __pyx_r;
21235 }
21236 
21237 /* "cylp/cy/CyClpSimplex.pyx":1353
21238  *                             'cylpSimplex.cyLPModel first.')
21239  *
21240  *     def removeConstraint(self, name):             # <<<<<<<<<<<<<<
21241  *         '''
21242  *         Removes constraint named ``name`` from the problem.
21243  */
21244 
21245 /* Python wrapper */
21246 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_91removeConstraint(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
21247 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint[] = "CyClpSimplex.removeConstraint(self, name)\n\n        Removes constraint named ``name`` from the problem.\n        ";
21248 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_91removeConstraint(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
21249   PyObject *__pyx_r = 0;
21250   __Pyx_RefNannyDeclarations
21251   __Pyx_RefNannySetupContext("removeConstraint (wrapper)", 0);
21252   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_name));
21253 
21254   /* function exit code */
21255   __Pyx_RefNannyFinishContext();
21256   return __pyx_r;
21257 }
21258 
21259 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name) {
21260   PyObject *__pyx_v_indsOfRemovedConstriants = NULL;
21261   PyObject *__pyx_r = NULL;
21262   __Pyx_TraceDeclarations
21263   __Pyx_RefNannyDeclarations
21264   int __pyx_t_1;
21265   PyObject *__pyx_t_2 = NULL;
21266   PyObject *__pyx_t_3 = NULL;
21267   PyObject *__pyx_t_4 = NULL;
21268   int __pyx_lineno = 0;
21269   const char *__pyx_filename = NULL;
21270   int __pyx_clineno = 0;
21271   __Pyx_RefNannySetupContext("removeConstraint", 0);
21272   __Pyx_TraceCall("removeConstraint", __pyx_f[0], 1353, 0, __PYX_ERR(0, 1353, __pyx_L1_error));
21273 
21274   /* "cylp/cy/CyClpSimplex.pyx":1357
21275  *         Removes constraint named ``name`` from the problem.
21276  *         '''
21277  *         if self.cyLPModel:             # <<<<<<<<<<<<<<
21278  *             indsOfRemovedConstriants = self.cyLPModel.removeConstraint(name)
21279  *             self.CLP_deleteConstraints(indsOfRemovedConstriants)
21280  */
21281   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1357, __pyx_L1_error)
21282   if (likely(__pyx_t_1)) {
21283 
21284     /* "cylp/cy/CyClpSimplex.pyx":1358
21285  *         '''
21286  *         if self.cyLPModel:
21287  *             indsOfRemovedConstriants = self.cyLPModel.removeConstraint(name)             # <<<<<<<<<<<<<<
21288  *             self.CLP_deleteConstraints(indsOfRemovedConstriants)
21289  *             #self.loadFromCyLPModel(self.cyLPModel)
21290  */
21291     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_removeConstraint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1358, __pyx_L1_error)
21292     __Pyx_GOTREF(__pyx_t_3);
21293     __pyx_t_4 = NULL;
21294     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
21295       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
21296       if (likely(__pyx_t_4)) {
21297         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
21298         __Pyx_INCREF(__pyx_t_4);
21299         __Pyx_INCREF(function);
21300         __Pyx_DECREF_SET(__pyx_t_3, function);
21301       }
21302     }
21303     __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_name);
21304     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
21305     if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1358, __pyx_L1_error)
21306     __Pyx_GOTREF(__pyx_t_2);
21307     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21308     __pyx_v_indsOfRemovedConstriants = __pyx_t_2;
21309     __pyx_t_2 = 0;
21310 
21311     /* "cylp/cy/CyClpSimplex.pyx":1359
21312  *         if self.cyLPModel:
21313  *             indsOfRemovedConstriants = self.cyLPModel.removeConstraint(name)
21314  *             self.CLP_deleteConstraints(indsOfRemovedConstriants)             # <<<<<<<<<<<<<<
21315  *             #self.loadFromCyLPModel(self.cyLPModel)
21316  *         else:
21317  */
21318     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_CLP_deleteConstraints); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1359, __pyx_L1_error)
21319     __Pyx_GOTREF(__pyx_t_3);
21320     __pyx_t_4 = NULL;
21321     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
21322       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
21323       if (likely(__pyx_t_4)) {
21324         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
21325         __Pyx_INCREF(__pyx_t_4);
21326         __Pyx_INCREF(function);
21327         __Pyx_DECREF_SET(__pyx_t_3, function);
21328       }
21329     }
21330     __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_indsOfRemovedConstriants) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_indsOfRemovedConstriants);
21331     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
21332     if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1359, __pyx_L1_error)
21333     __Pyx_GOTREF(__pyx_t_2);
21334     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21335     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21336 
21337     /* "cylp/cy/CyClpSimplex.pyx":1357
21338  *         Removes constraint named ``name`` from the problem.
21339  *         '''
21340  *         if self.cyLPModel:             # <<<<<<<<<<<<<<
21341  *             indsOfRemovedConstriants = self.cyLPModel.removeConstraint(name)
21342  *             self.CLP_deleteConstraints(indsOfRemovedConstriants)
21343  */
21344     goto __pyx_L3;
21345   }
21346 
21347   /* "cylp/cy/CyClpSimplex.pyx":1362
21348  *             #self.loadFromCyLPModel(self.cyLPModel)
21349  *         else:
21350  *             raise Exception('To remove a constraint you must set ' \             # <<<<<<<<<<<<<<
21351  *                             'cylpSimplex.cyLPModel first.')
21352  *
21353  */
21354   /*else*/ {
21355     __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1362, __pyx_L1_error)
21356     __Pyx_GOTREF(__pyx_t_2);
21357     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
21358     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21359     __PYX_ERR(0, 1362, __pyx_L1_error)
21360   }
21361   __pyx_L3:;
21362 
21363   /* "cylp/cy/CyClpSimplex.pyx":1353
21364  *                             'cylpSimplex.cyLPModel first.')
21365  *
21366  *     def removeConstraint(self, name):             # <<<<<<<<<<<<<<
21367  *         '''
21368  *         Removes constraint named ``name`` from the problem.
21369  */
21370 
21371   /* function exit code */
21372   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
21373   goto __pyx_L0;
21374   __pyx_L1_error:;
21375   __Pyx_XDECREF(__pyx_t_2);
21376   __Pyx_XDECREF(__pyx_t_3);
21377   __Pyx_XDECREF(__pyx_t_4);
21378   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.removeConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
21379   __pyx_r = NULL;
21380   __pyx_L0:;
21381   __Pyx_XDECREF(__pyx_v_indsOfRemovedConstriants);
21382   __Pyx_XGIVEREF(__pyx_r);
21383   __Pyx_TraceReturn(__pyx_r, 0);
21384   __Pyx_RefNannyFinishContext();
21385   return __pyx_r;
21386 }
21387 
21388 /* "cylp/cy/CyClpSimplex.pyx":1365
21389  *                             'cylpSimplex.cyLPModel first.')
21390  *
21391  *     def addVariable(self, varname, dim, isInt=False):             # <<<<<<<<<<<<<<
21392  *         '''
21393  *         Add variable ``var`` to the problem.
21394  */
21395 
21396 /* Python wrapper */
21397 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_93addVariable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21398 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_92addVariable[] = "CyClpSimplex.addVariable(self, varname, dim, isInt=False)\n\n        Add variable ``var`` to the problem.\n        ";
21399 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_93addVariable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21400   PyObject *__pyx_v_varname = 0;
21401   PyObject *__pyx_v_dim = 0;
21402   PyObject *__pyx_v_isInt = 0;
21403   int __pyx_lineno = 0;
21404   const char *__pyx_filename = NULL;
21405   int __pyx_clineno = 0;
21406   PyObject *__pyx_r = 0;
21407   __Pyx_RefNannyDeclarations
21408   __Pyx_RefNannySetupContext("addVariable (wrapper)", 0);
21409   {
21410     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_varname,&__pyx_n_s_dim,&__pyx_n_s_isInt,0};
21411     PyObject* values[3] = {0,0,0};
21412     values[2] = ((PyObject *)Py_False);
21413     if (unlikely(__pyx_kwds)) {
21414       Py_ssize_t kw_args;
21415       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
21416       switch (pos_args) {
21417         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21418         CYTHON_FALLTHROUGH;
21419         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21420         CYTHON_FALLTHROUGH;
21421         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21422         CYTHON_FALLTHROUGH;
21423         case  0: break;
21424         default: goto __pyx_L5_argtuple_error;
21425       }
21426       kw_args = PyDict_Size(__pyx_kwds);
21427       switch (pos_args) {
21428         case  0:
21429         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_varname)) != 0)) kw_args--;
21430         else goto __pyx_L5_argtuple_error;
21431         CYTHON_FALLTHROUGH;
21432         case  1:
21433         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--;
21434         else {
21435           __Pyx_RaiseArgtupleInvalid("addVariable", 0, 2, 3, 1); __PYX_ERR(0, 1365, __pyx_L3_error)
21436         }
21437         CYTHON_FALLTHROUGH;
21438         case  2:
21439         if (kw_args > 0) {
21440           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isInt);
21441           if (value) { values[2] = value; kw_args--; }
21442         }
21443       }
21444       if (unlikely(kw_args > 0)) {
21445         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addVariable") < 0)) __PYX_ERR(0, 1365, __pyx_L3_error)
21446       }
21447     } else {
21448       switch (PyTuple_GET_SIZE(__pyx_args)) {
21449         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21450         CYTHON_FALLTHROUGH;
21451         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21452         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21453         break;
21454         default: goto __pyx_L5_argtuple_error;
21455       }
21456     }
21457     __pyx_v_varname = values[0];
21458     __pyx_v_dim = values[1];
21459     __pyx_v_isInt = values[2];
21460   }
21461   goto __pyx_L4_argument_unpacking_done;
21462   __pyx_L5_argtuple_error:;
21463   __Pyx_RaiseArgtupleInvalid("addVariable", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1365, __pyx_L3_error)
21464   __pyx_L3_error:;
21465   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
21466   __Pyx_RefNannyFinishContext();
21467   return NULL;
21468   __pyx_L4_argument_unpacking_done:;
21469   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_92addVariable(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_varname, __pyx_v_dim, __pyx_v_isInt);
21470 
21471   /* function exit code */
21472   __Pyx_RefNannyFinishContext();
21473   return __pyx_r;
21474 }
21475 
21476 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_92addVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varname, PyObject *__pyx_v_dim, PyObject *__pyx_v_isInt) {
21477   PyObject *__pyx_v_var = NULL;
21478   PyObject *__pyx_r = NULL;
21479   __Pyx_TraceDeclarations
21480   __Pyx_RefNannyDeclarations
21481   int __pyx_t_1;
21482   int __pyx_t_2;
21483   PyObject *__pyx_t_3 = NULL;
21484   PyObject *__pyx_t_4 = NULL;
21485   PyObject *__pyx_t_5 = NULL;
21486   int __pyx_t_6;
21487   PyObject *__pyx_t_7 = NULL;
21488   int __pyx_lineno = 0;
21489   const char *__pyx_filename = NULL;
21490   int __pyx_clineno = 0;
21491   __Pyx_RefNannySetupContext("addVariable", 0);
21492   __Pyx_TraceCall("addVariable", __pyx_f[0], 1365, 0, __PYX_ERR(0, 1365, __pyx_L1_error));
21493 
21494   /* "cylp/cy/CyClpSimplex.pyx":1369
21495  *         Add variable ``var`` to the problem.
21496  *         '''
21497  *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
21498  *             self.cyLPModel = CyLPModel()
21499  *         var = self.cyLPModel.addVariable(varname, dim, isInt)
21500  */
21501   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1369, __pyx_L1_error)
21502   __pyx_t_2 = ((!__pyx_t_1) != 0);
21503   if (__pyx_t_2) {
21504 
21505     /* "cylp/cy/CyClpSimplex.pyx":1370
21506  *         '''
21507  *         if not self.cyLPModel:
21508  *             self.cyLPModel = CyLPModel()             # <<<<<<<<<<<<<<
21509  *         var = self.cyLPModel.addVariable(varname, dim, isInt)
21510  *         self.loadFromCyLPModel(self.cyLPModel)
21511  */
21512     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1370, __pyx_L1_error)
21513     __Pyx_GOTREF(__pyx_t_4);
21514     __pyx_t_5 = NULL;
21515     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
21516       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
21517       if (likely(__pyx_t_5)) {
21518         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
21519         __Pyx_INCREF(__pyx_t_5);
21520         __Pyx_INCREF(function);
21521         __Pyx_DECREF_SET(__pyx_t_4, function);
21522       }
21523     }
21524     __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
21525     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
21526     if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1370, __pyx_L1_error)
21527     __Pyx_GOTREF(__pyx_t_3);
21528     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
21529     __Pyx_GIVEREF(__pyx_t_3);
21530     __Pyx_GOTREF(__pyx_v_self->cyLPModel);
21531     __Pyx_DECREF(__pyx_v_self->cyLPModel);
21532     __pyx_v_self->cyLPModel = __pyx_t_3;
21533     __pyx_t_3 = 0;
21534 
21535     /* "cylp/cy/CyClpSimplex.pyx":1369
21536  *         Add variable ``var`` to the problem.
21537  *         '''
21538  *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
21539  *             self.cyLPModel = CyLPModel()
21540  *         var = self.cyLPModel.addVariable(varname, dim, isInt)
21541  */
21542   }
21543 
21544   /* "cylp/cy/CyClpSimplex.pyx":1371
21545  *         if not self.cyLPModel:
21546  *             self.cyLPModel = CyLPModel()
21547  *         var = self.cyLPModel.addVariable(varname, dim, isInt)             # <<<<<<<<<<<<<<
21548  *         self.loadFromCyLPModel(self.cyLPModel)
21549  *         return var
21550  */
21551   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_addVariable); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1371, __pyx_L1_error)
21552   __Pyx_GOTREF(__pyx_t_4);
21553   __pyx_t_5 = NULL;
21554   __pyx_t_6 = 0;
21555   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
21556     __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
21557     if (likely(__pyx_t_5)) {
21558       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
21559       __Pyx_INCREF(__pyx_t_5);
21560       __Pyx_INCREF(function);
21561       __Pyx_DECREF_SET(__pyx_t_4, function);
21562       __pyx_t_6 = 1;
21563     }
21564   }
21565   #if CYTHON_FAST_PYCALL
21566   if (PyFunction_Check(__pyx_t_4)) {
21567     PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_varname, __pyx_v_dim, __pyx_v_isInt};
21568     __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1371, __pyx_L1_error)
21569     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
21570     __Pyx_GOTREF(__pyx_t_3);
21571   } else
21572   #endif
21573   #if CYTHON_FAST_PYCCALL
21574   if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
21575     PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_varname, __pyx_v_dim, __pyx_v_isInt};
21576     __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1371, __pyx_L1_error)
21577     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
21578     __Pyx_GOTREF(__pyx_t_3);
21579   } else
21580   #endif
21581   {
21582     __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1371, __pyx_L1_error)
21583     __Pyx_GOTREF(__pyx_t_7);
21584     if (__pyx_t_5) {
21585       __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
21586     }
21587     __Pyx_INCREF(__pyx_v_varname);
21588     __Pyx_GIVEREF(__pyx_v_varname);
21589     PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_varname);
21590     __Pyx_INCREF(__pyx_v_dim);
21591     __Pyx_GIVEREF(__pyx_v_dim);
21592     PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_dim);
21593     __Pyx_INCREF(__pyx_v_isInt);
21594     __Pyx_GIVEREF(__pyx_v_isInt);
21595     PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_isInt);
21596     __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1371, __pyx_L1_error)
21597     __Pyx_GOTREF(__pyx_t_3);
21598     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
21599   }
21600   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
21601   __pyx_v_var = __pyx_t_3;
21602   __pyx_t_3 = 0;
21603 
21604   /* "cylp/cy/CyClpSimplex.pyx":1372
21605  *             self.cyLPModel = CyLPModel()
21606  *         var = self.cyLPModel.addVariable(varname, dim, isInt)
21607  *         self.loadFromCyLPModel(self.cyLPModel)             # <<<<<<<<<<<<<<
21608  *         return var
21609  *         #else:
21610  */
21611   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_loadFromCyLPModel); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1372, __pyx_L1_error)
21612   __Pyx_GOTREF(__pyx_t_4);
21613   __pyx_t_7 = NULL;
21614   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
21615     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
21616     if (likely(__pyx_t_7)) {
21617       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
21618       __Pyx_INCREF(__pyx_t_7);
21619       __Pyx_INCREF(function);
21620       __Pyx_DECREF_SET(__pyx_t_4, function);
21621     }
21622   }
21623   __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_7, __pyx_v_self->cyLPModel) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->cyLPModel);
21624   __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
21625   if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1372, __pyx_L1_error)
21626   __Pyx_GOTREF(__pyx_t_3);
21627   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
21628   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21629 
21630   /* "cylp/cy/CyClpSimplex.pyx":1373
21631  *         var = self.cyLPModel.addVariable(varname, dim, isInt)
21632  *         self.loadFromCyLPModel(self.cyLPModel)
21633  *         return var             # <<<<<<<<<<<<<<
21634  *         #else:
21635  *         #    raise Exception('To add a variable you must set ' \
21636  */
21637   __Pyx_XDECREF(__pyx_r);
21638   __Pyx_INCREF(__pyx_v_var);
21639   __pyx_r = __pyx_v_var;
21640   goto __pyx_L0;
21641 
21642   /* "cylp/cy/CyClpSimplex.pyx":1365
21643  *                             'cylpSimplex.cyLPModel first.')
21644  *
21645  *     def addVariable(self, varname, dim, isInt=False):             # <<<<<<<<<<<<<<
21646  *         '''
21647  *         Add variable ``var`` to the problem.
21648  */
21649 
21650   /* function exit code */
21651   __pyx_L1_error:;
21652   __Pyx_XDECREF(__pyx_t_3);
21653   __Pyx_XDECREF(__pyx_t_4);
21654   __Pyx_XDECREF(__pyx_t_5);
21655   __Pyx_XDECREF(__pyx_t_7);
21656   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
21657   __pyx_r = NULL;
21658   __pyx_L0:;
21659   __Pyx_XDECREF(__pyx_v_var);
21660   __Pyx_XGIVEREF(__pyx_r);
21661   __Pyx_TraceReturn(__pyx_r, 0);
21662   __Pyx_RefNannyFinishContext();
21663   return __pyx_r;
21664 }
21665 
21666 /* "cylp/cy/CyClpSimplex.pyx":1378
21667  *         #                    'cylpSimplex.cyLPModel first.')
21668  *
21669  *     def removeVariable(self, name):             # <<<<<<<<<<<<<<
21670  *         '''
21671  *         Removes variable named ``name`` from the problem.
21672  */
21673 
21674 /* Python wrapper */
21675 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_95removeVariable(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
21676 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable[] = "CyClpSimplex.removeVariable(self, name)\n\n        Removes variable named ``name`` from the problem.\n        ";
21677 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_95removeVariable(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
21678   PyObject *__pyx_r = 0;
21679   __Pyx_RefNannyDeclarations
21680   __Pyx_RefNannySetupContext("removeVariable (wrapper)", 0);
21681   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_name));
21682 
21683   /* function exit code */
21684   __Pyx_RefNannyFinishContext();
21685   return __pyx_r;
21686 }
21687 
21688 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name) {
21689   PyObject *__pyx_r = NULL;
21690   __Pyx_TraceDeclarations
21691   __Pyx_RefNannyDeclarations
21692   int __pyx_t_1;
21693   PyObject *__pyx_t_2 = NULL;
21694   PyObject *__pyx_t_3 = NULL;
21695   PyObject *__pyx_t_4 = NULL;
21696   int __pyx_lineno = 0;
21697   const char *__pyx_filename = NULL;
21698   int __pyx_clineno = 0;
21699   __Pyx_RefNannySetupContext("removeVariable", 0);
21700   __Pyx_TraceCall("removeVariable", __pyx_f[0], 1378, 0, __PYX_ERR(0, 1378, __pyx_L1_error));
21701 
21702   /* "cylp/cy/CyClpSimplex.pyx":1382
21703  *         Removes variable named ``name`` from the problem.
21704  *         '''
21705  *         if self.cyLPModel:             # <<<<<<<<<<<<<<
21706  *             self.cyLPModel.removeVariable(name)
21707  *             self.loadFromCyLPModel(self.cyLPModel)
21708  */
21709   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1382, __pyx_L1_error)
21710   if (likely(__pyx_t_1)) {
21711 
21712     /* "cylp/cy/CyClpSimplex.pyx":1383
21713  *         '''
21714  *         if self.cyLPModel:
21715  *             self.cyLPModel.removeVariable(name)             # <<<<<<<<<<<<<<
21716  *             self.loadFromCyLPModel(self.cyLPModel)
21717  *         else:
21718  */
21719     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_removeVariable); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1383, __pyx_L1_error)
21720     __Pyx_GOTREF(__pyx_t_3);
21721     __pyx_t_4 = NULL;
21722     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
21723       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
21724       if (likely(__pyx_t_4)) {
21725         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
21726         __Pyx_INCREF(__pyx_t_4);
21727         __Pyx_INCREF(function);
21728         __Pyx_DECREF_SET(__pyx_t_3, function);
21729       }
21730     }
21731     __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_name);
21732     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
21733     if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1383, __pyx_L1_error)
21734     __Pyx_GOTREF(__pyx_t_2);
21735     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21736     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21737 
21738     /* "cylp/cy/CyClpSimplex.pyx":1384
21739  *         if self.cyLPModel:
21740  *             self.cyLPModel.removeVariable(name)
21741  *             self.loadFromCyLPModel(self.cyLPModel)             # <<<<<<<<<<<<<<
21742  *         else:
21743  *             raise Exception('To remove a variable you must set ' \
21744  */
21745     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_loadFromCyLPModel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1384, __pyx_L1_error)
21746     __Pyx_GOTREF(__pyx_t_3);
21747     __pyx_t_4 = NULL;
21748     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
21749       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
21750       if (likely(__pyx_t_4)) {
21751         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
21752         __Pyx_INCREF(__pyx_t_4);
21753         __Pyx_INCREF(function);
21754         __Pyx_DECREF_SET(__pyx_t_3, function);
21755       }
21756     }
21757     __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_self->cyLPModel) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_self->cyLPModel);
21758     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
21759     if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1384, __pyx_L1_error)
21760     __Pyx_GOTREF(__pyx_t_2);
21761     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21762     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21763 
21764     /* "cylp/cy/CyClpSimplex.pyx":1382
21765  *         Removes variable named ``name`` from the problem.
21766  *         '''
21767  *         if self.cyLPModel:             # <<<<<<<<<<<<<<
21768  *             self.cyLPModel.removeVariable(name)
21769  *             self.loadFromCyLPModel(self.cyLPModel)
21770  */
21771     goto __pyx_L3;
21772   }
21773 
21774   /* "cylp/cy/CyClpSimplex.pyx":1386
21775  *             self.loadFromCyLPModel(self.cyLPModel)
21776  *         else:
21777  *             raise Exception('To remove a variable you must set ' \             # <<<<<<<<<<<<<<
21778  *                             'cylpSimplex.cyLPModel first.')
21779  *
21780  */
21781   /*else*/ {
21782     __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1386, __pyx_L1_error)
21783     __Pyx_GOTREF(__pyx_t_2);
21784     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
21785     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21786     __PYX_ERR(0, 1386, __pyx_L1_error)
21787   }
21788   __pyx_L3:;
21789 
21790   /* "cylp/cy/CyClpSimplex.pyx":1378
21791  *         #                    'cylpSimplex.cyLPModel first.')
21792  *
21793  *     def removeVariable(self, name):             # <<<<<<<<<<<<<<
21794  *         '''
21795  *         Removes variable named ``name`` from the problem.
21796  */
21797 
21798   /* function exit code */
21799   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
21800   goto __pyx_L0;
21801   __pyx_L1_error:;
21802   __Pyx_XDECREF(__pyx_t_2);
21803   __Pyx_XDECREF(__pyx_t_3);
21804   __Pyx_XDECREF(__pyx_t_4);
21805   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.removeVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
21806   __pyx_r = NULL;
21807   __pyx_L0:;
21808   __Pyx_XGIVEREF(__pyx_r);
21809   __Pyx_TraceReturn(__pyx_r, 0);
21810   __Pyx_RefNannyFinishContext();
21811   return __pyx_r;
21812 }
21813 
21814 /* "cylp/cy/CyClpSimplex.pyx":1389
21815  *                             'cylpSimplex.cyLPModel first.')
21816  *
21817  *     def getVarByName(self, name):             # <<<<<<<<<<<<<<
21818  *         if not self.cyLPModel:
21819  *             raise Exception('No cylpSimplex.cyLPModel is set.')
21820  */
21821 
21822 /* Python wrapper */
21823 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_97getVarByName(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
21824 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName[] = "CyClpSimplex.getVarByName(self, name)";
21825 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_97getVarByName(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
21826   PyObject *__pyx_r = 0;
21827   __Pyx_RefNannyDeclarations
21828   __Pyx_RefNannySetupContext("getVarByName (wrapper)", 0);
21829   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_name));
21830 
21831   /* function exit code */
21832   __Pyx_RefNannyFinishContext();
21833   return __pyx_r;
21834 }
21835 
21836 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name) {
21837   PyObject *__pyx_r = NULL;
21838   __Pyx_TraceDeclarations
21839   __Pyx_RefNannyDeclarations
21840   int __pyx_t_1;
21841   int __pyx_t_2;
21842   PyObject *__pyx_t_3 = NULL;
21843   PyObject *__pyx_t_4 = NULL;
21844   PyObject *__pyx_t_5 = NULL;
21845   int __pyx_lineno = 0;
21846   const char *__pyx_filename = NULL;
21847   int __pyx_clineno = 0;
21848   __Pyx_RefNannySetupContext("getVarByName", 0);
21849   __Pyx_TraceCall("getVarByName", __pyx_f[0], 1389, 0, __PYX_ERR(0, 1389, __pyx_L1_error));
21850 
21851   /* "cylp/cy/CyClpSimplex.pyx":1390
21852  *
21853  *     def getVarByName(self, name):
21854  *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
21855  *             raise Exception('No cylpSimplex.cyLPModel is set.')
21856  *         return self.cyLPModel.getVarByName(name)
21857  */
21858   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1390, __pyx_L1_error)
21859   __pyx_t_2 = ((!__pyx_t_1) != 0);
21860   if (unlikely(__pyx_t_2)) {
21861 
21862     /* "cylp/cy/CyClpSimplex.pyx":1391
21863  *     def getVarByName(self, name):
21864  *         if not self.cyLPModel:
21865  *             raise Exception('No cylpSimplex.cyLPModel is set.')             # <<<<<<<<<<<<<<
21866  *         return self.cyLPModel.getVarByName(name)
21867  *
21868  */
21869     __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1391, __pyx_L1_error)
21870     __Pyx_GOTREF(__pyx_t_3);
21871     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
21872     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21873     __PYX_ERR(0, 1391, __pyx_L1_error)
21874 
21875     /* "cylp/cy/CyClpSimplex.pyx":1390
21876  *
21877  *     def getVarByName(self, name):
21878  *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
21879  *             raise Exception('No cylpSimplex.cyLPModel is set.')
21880  *         return self.cyLPModel.getVarByName(name)
21881  */
21882   }
21883 
21884   /* "cylp/cy/CyClpSimplex.pyx":1392
21885  *         if not self.cyLPModel:
21886  *             raise Exception('No cylpSimplex.cyLPModel is set.')
21887  *         return self.cyLPModel.getVarByName(name)             # <<<<<<<<<<<<<<
21888  *
21889  *     def getVarNameByIndex(self, ind):
21890  */
21891   __Pyx_XDECREF(__pyx_r);
21892   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_getVarByName); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1392, __pyx_L1_error)
21893   __Pyx_GOTREF(__pyx_t_4);
21894   __pyx_t_5 = NULL;
21895   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
21896     __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
21897     if (likely(__pyx_t_5)) {
21898       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
21899       __Pyx_INCREF(__pyx_t_5);
21900       __Pyx_INCREF(function);
21901       __Pyx_DECREF_SET(__pyx_t_4, function);
21902     }
21903   }
21904   __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_name);
21905   __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
21906   if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1392, __pyx_L1_error)
21907   __Pyx_GOTREF(__pyx_t_3);
21908   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
21909   __pyx_r = __pyx_t_3;
21910   __pyx_t_3 = 0;
21911   goto __pyx_L0;
21912 
21913   /* "cylp/cy/CyClpSimplex.pyx":1389
21914  *                             'cylpSimplex.cyLPModel first.')
21915  *
21916  *     def getVarByName(self, name):             # <<<<<<<<<<<<<<
21917  *         if not self.cyLPModel:
21918  *             raise Exception('No cylpSimplex.cyLPModel is set.')
21919  */
21920 
21921   /* function exit code */
21922   __pyx_L1_error:;
21923   __Pyx_XDECREF(__pyx_t_3);
21924   __Pyx_XDECREF(__pyx_t_4);
21925   __Pyx_XDECREF(__pyx_t_5);
21926   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getVarByName", __pyx_clineno, __pyx_lineno, __pyx_filename);
21927   __pyx_r = NULL;
21928   __pyx_L0:;
21929   __Pyx_XGIVEREF(__pyx_r);
21930   __Pyx_TraceReturn(__pyx_r, 0);
21931   __Pyx_RefNannyFinishContext();
21932   return __pyx_r;
21933 }
21934 
21935 /* "cylp/cy/CyClpSimplex.pyx":1394
21936  *         return self.cyLPModel.getVarByName(name)
21937  *
21938  *     def getVarNameByIndex(self, ind):             # <<<<<<<<<<<<<<
21939  *         if not self.cyLPModel:
21940  *             raise Exception('No cylpSimplex.cyLPModel is set.')
21941  */
21942 
21943 /* Python wrapper */
21944 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_99getVarNameByIndex(PyObject *__pyx_v_self, PyObject *__pyx_v_ind); /*proto*/
21945 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex[] = "CyClpSimplex.getVarNameByIndex(self, ind)";
21946 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_99getVarNameByIndex(PyObject *__pyx_v_self, PyObject *__pyx_v_ind) {
21947   PyObject *__pyx_r = 0;
21948   __Pyx_RefNannyDeclarations
21949   __Pyx_RefNannySetupContext("getVarNameByIndex (wrapper)", 0);
21950   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_ind));
21951 
21952   /* function exit code */
21953   __Pyx_RefNannyFinishContext();
21954   return __pyx_r;
21955 }
21956 
21957 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind) {
21958   PyObject *__pyx_r = NULL;
21959   __Pyx_TraceDeclarations
21960   __Pyx_RefNannyDeclarations
21961   int __pyx_t_1;
21962   int __pyx_t_2;
21963   PyObject *__pyx_t_3 = NULL;
21964   PyObject *__pyx_t_4 = NULL;
21965   PyObject *__pyx_t_5 = NULL;
21966   int __pyx_lineno = 0;
21967   const char *__pyx_filename = NULL;
21968   int __pyx_clineno = 0;
21969   __Pyx_RefNannySetupContext("getVarNameByIndex", 0);
21970   __Pyx_TraceCall("getVarNameByIndex", __pyx_f[0], 1394, 0, __PYX_ERR(0, 1394, __pyx_L1_error));
21971 
21972   /* "cylp/cy/CyClpSimplex.pyx":1395
21973  *
21974  *     def getVarNameByIndex(self, ind):
21975  *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
21976  *             raise Exception('No cylpSimplex.cyLPModel is set.')
21977  *         return self.cyLPModel.inds.reverseVarSearch(ind)
21978  */
21979   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1395, __pyx_L1_error)
21980   __pyx_t_2 = ((!__pyx_t_1) != 0);
21981   if (unlikely(__pyx_t_2)) {
21982 
21983     /* "cylp/cy/CyClpSimplex.pyx":1396
21984  *     def getVarNameByIndex(self, ind):
21985  *         if not self.cyLPModel:
21986  *             raise Exception('No cylpSimplex.cyLPModel is set.')             # <<<<<<<<<<<<<<
21987  *         return self.cyLPModel.inds.reverseVarSearch(ind)
21988  *
21989  */
21990     __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1396, __pyx_L1_error)
21991     __Pyx_GOTREF(__pyx_t_3);
21992     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
21993     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21994     __PYX_ERR(0, 1396, __pyx_L1_error)
21995 
21996     /* "cylp/cy/CyClpSimplex.pyx":1395
21997  *
21998  *     def getVarNameByIndex(self, ind):
21999  *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
22000  *             raise Exception('No cylpSimplex.cyLPModel is set.')
22001  *         return self.cyLPModel.inds.reverseVarSearch(ind)
22002  */
22003   }
22004 
22005   /* "cylp/cy/CyClpSimplex.pyx":1397
22006  *         if not self.cyLPModel:
22007  *             raise Exception('No cylpSimplex.cyLPModel is set.')
22008  *         return self.cyLPModel.inds.reverseVarSearch(ind)             # <<<<<<<<<<<<<<
22009  *
22010  *     def CLP_addConstraint(self, numberInRow,
22011  */
22012   __Pyx_XDECREF(__pyx_r);
22013   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_inds); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1397, __pyx_L1_error)
22014   __Pyx_GOTREF(__pyx_t_4);
22015   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_reverseVarSearch); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1397, __pyx_L1_error)
22016   __Pyx_GOTREF(__pyx_t_5);
22017   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22018   __pyx_t_4 = NULL;
22019   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
22020     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
22021     if (likely(__pyx_t_4)) {
22022       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
22023       __Pyx_INCREF(__pyx_t_4);
22024       __Pyx_INCREF(function);
22025       __Pyx_DECREF_SET(__pyx_t_5, function);
22026     }
22027   }
22028   __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_ind) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_ind);
22029   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
22030   if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1397, __pyx_L1_error)
22031   __Pyx_GOTREF(__pyx_t_3);
22032   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22033   __pyx_r = __pyx_t_3;
22034   __pyx_t_3 = 0;
22035   goto __pyx_L0;
22036 
22037   /* "cylp/cy/CyClpSimplex.pyx":1394
22038  *         return self.cyLPModel.getVarByName(name)
22039  *
22040  *     def getVarNameByIndex(self, ind):             # <<<<<<<<<<<<<<
22041  *         if not self.cyLPModel:
22042  *             raise Exception('No cylpSimplex.cyLPModel is set.')
22043  */
22044 
22045   /* function exit code */
22046   __pyx_L1_error:;
22047   __Pyx_XDECREF(__pyx_t_3);
22048   __Pyx_XDECREF(__pyx_t_4);
22049   __Pyx_XDECREF(__pyx_t_5);
22050   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getVarNameByIndex", __pyx_clineno, __pyx_lineno, __pyx_filename);
22051   __pyx_r = NULL;
22052   __pyx_L0:;
22053   __Pyx_XGIVEREF(__pyx_r);
22054   __Pyx_TraceReturn(__pyx_r, 0);
22055   __Pyx_RefNannyFinishContext();
22056   return __pyx_r;
22057 }
22058 
22059 /* "cylp/cy/CyClpSimplex.pyx":1399
22060  *         return self.cyLPModel.inds.reverseVarSearch(ind)
22061  *
22062  *     def CLP_addConstraint(self, numberInRow,             # <<<<<<<<<<<<<<
22063  *                     np.ndarray[np.int32_t, ndim=1] columns,
22064  *                     np.ndarray[np.double_t, ndim=1] elements,
22065  */
22066 
22067 /* Python wrapper */
22068 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_101CLP_addConstraint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22069 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_100CLP_addConstraint[] = "CyClpSimplex.CLP_addConstraint(self, numberInRow, ndarray columns, ndarray elements, rowLower, rowUpper)\n\n        Add a constraint to the problem, CLP style. See CLP documentation.\n        Not commonly used in cylp.\n        For cylp modeling tool see :mod:`cylp.python.modeling.CyLPModel`.\n        ";
22070 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_101CLP_addConstraint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22071   PyObject *__pyx_v_numberInRow = 0;
22072   PyArrayObject *__pyx_v_columns = 0;
22073   PyArrayObject *__pyx_v_elements = 0;
22074   PyObject *__pyx_v_rowLower = 0;
22075   PyObject *__pyx_v_rowUpper = 0;
22076   int __pyx_lineno = 0;
22077   const char *__pyx_filename = NULL;
22078   int __pyx_clineno = 0;
22079   PyObject *__pyx_r = 0;
22080   __Pyx_RefNannyDeclarations
22081   __Pyx_RefNannySetupContext("CLP_addConstraint (wrapper)", 0);
22082   {
22083     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numberInRow,&__pyx_n_s_columns,&__pyx_n_s_elements,&__pyx_n_s_rowLower,&__pyx_n_s_rowUpper,0};
22084     PyObject* values[5] = {0,0,0,0,0};
22085     if (unlikely(__pyx_kwds)) {
22086       Py_ssize_t kw_args;
22087       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
22088       switch (pos_args) {
22089         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22090         CYTHON_FALLTHROUGH;
22091         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22092         CYTHON_FALLTHROUGH;
22093         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22094         CYTHON_FALLTHROUGH;
22095         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22096         CYTHON_FALLTHROUGH;
22097         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22098         CYTHON_FALLTHROUGH;
22099         case  0: break;
22100         default: goto __pyx_L5_argtuple_error;
22101       }
22102       kw_args = PyDict_Size(__pyx_kwds);
22103       switch (pos_args) {
22104         case  0:
22105         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberInRow)) != 0)) kw_args--;
22106         else goto __pyx_L5_argtuple_error;
22107         CYTHON_FALLTHROUGH;
22108         case  1:
22109         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columns)) != 0)) kw_args--;
22110         else {
22111           __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, 1); __PYX_ERR(0, 1399, __pyx_L3_error)
22112         }
22113         CYTHON_FALLTHROUGH;
22114         case  2:
22115         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elements)) != 0)) kw_args--;
22116         else {
22117           __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, 2); __PYX_ERR(0, 1399, __pyx_L3_error)
22118         }
22119         CYTHON_FALLTHROUGH;
22120         case  3:
22121         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowLower)) != 0)) kw_args--;
22122         else {
22123           __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, 3); __PYX_ERR(0, 1399, __pyx_L3_error)
22124         }
22125         CYTHON_FALLTHROUGH;
22126         case  4:
22127         if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowUpper)) != 0)) kw_args--;
22128         else {
22129           __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, 4); __PYX_ERR(0, 1399, __pyx_L3_error)
22130         }
22131       }
22132       if (unlikely(kw_args > 0)) {
22133         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CLP_addConstraint") < 0)) __PYX_ERR(0, 1399, __pyx_L3_error)
22134       }
22135     } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
22136       goto __pyx_L5_argtuple_error;
22137     } else {
22138       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22139       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22140       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22141       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22142       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22143     }
22144     __pyx_v_numberInRow = values[0];
22145     __pyx_v_columns = ((PyArrayObject *)values[1]);
22146     __pyx_v_elements = ((PyArrayObject *)values[2]);
22147     __pyx_v_rowLower = values[3];
22148     __pyx_v_rowUpper = values[4];
22149   }
22150   goto __pyx_L4_argument_unpacking_done;
22151   __pyx_L5_argtuple_error:;
22152   __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1399, __pyx_L3_error)
22153   __pyx_L3_error:;
22154   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_addConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
22155   __Pyx_RefNannyFinishContext();
22156   return NULL;
22157   __pyx_L4_argument_unpacking_done:;
22158   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columns), __pyx_ptype_5numpy_ndarray, 1, "columns", 0))) __PYX_ERR(0, 1400, __pyx_L1_error)
22159   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elements), __pyx_ptype_5numpy_ndarray, 1, "elements", 0))) __PYX_ERR(0, 1401, __pyx_L1_error)
22160   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_100CLP_addConstraint(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_numberInRow, __pyx_v_columns, __pyx_v_elements, __pyx_v_rowLower, __pyx_v_rowUpper);
22161 
22162   /* function exit code */
22163   goto __pyx_L0;
22164   __pyx_L1_error:;
22165   __pyx_r = NULL;
22166   __pyx_L0:;
22167   __Pyx_RefNannyFinishContext();
22168   return __pyx_r;
22169 }
22170 
22171 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_100CLP_addConstraint(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_numberInRow, PyArrayObject *__pyx_v_columns, PyArrayObject *__pyx_v_elements, PyObject *__pyx_v_rowLower, PyObject *__pyx_v_rowUpper) {
22172   __Pyx_LocalBuf_ND __pyx_pybuffernd_columns;
22173   __Pyx_Buffer __pyx_pybuffer_columns;
22174   __Pyx_LocalBuf_ND __pyx_pybuffernd_elements;
22175   __Pyx_Buffer __pyx_pybuffer_elements;
22176   PyObject *__pyx_r = NULL;
22177   __Pyx_TraceDeclarations
22178   __Pyx_RefNannyDeclarations
22179   PyObject *__pyx_t_1 = NULL;
22180   PyObject *__pyx_t_2 = NULL;
22181   PyObject *__pyx_t_3 = NULL;
22182   int __pyx_t_4;
22183   int __pyx_t_5;
22184   double __pyx_t_6;
22185   double __pyx_t_7;
22186   int __pyx_lineno = 0;
22187   const char *__pyx_filename = NULL;
22188   int __pyx_clineno = 0;
22189   __Pyx_RefNannySetupContext("CLP_addConstraint", 0);
22190   __Pyx_TraceCall("CLP_addConstraint", __pyx_f[0], 1399, 0, __PYX_ERR(0, 1399, __pyx_L1_error));
22191   __pyx_pybuffer_columns.pybuffer.buf = NULL;
22192   __pyx_pybuffer_columns.refcount = 0;
22193   __pyx_pybuffernd_columns.data = NULL;
22194   __pyx_pybuffernd_columns.rcbuffer = &__pyx_pybuffer_columns;
22195   __pyx_pybuffer_elements.pybuffer.buf = NULL;
22196   __pyx_pybuffer_elements.refcount = 0;
22197   __pyx_pybuffernd_elements.data = NULL;
22198   __pyx_pybuffernd_elements.rcbuffer = &__pyx_pybuffer_elements;
22199   {
22200     __Pyx_BufFmt_StackElem __pyx_stack[1];
22201     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columns.rcbuffer->pybuffer, (PyObject*)__pyx_v_columns, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1399, __pyx_L1_error)
22202   }
22203   __pyx_pybuffernd_columns.diminfo[0].strides = __pyx_pybuffernd_columns.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columns.diminfo[0].shape = __pyx_pybuffernd_columns.rcbuffer->pybuffer.shape[0];
22204   {
22205     __Pyx_BufFmt_StackElem __pyx_stack[1];
22206     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_elements.rcbuffer->pybuffer, (PyObject*)__pyx_v_elements, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1399, __pyx_L1_error)
22207   }
22208   __pyx_pybuffernd_elements.diminfo[0].strides = __pyx_pybuffernd_elements.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_elements.diminfo[0].shape = __pyx_pybuffernd_elements.rcbuffer->pybuffer.shape[0];
22209 
22210   /* "cylp/cy/CyClpSimplex.pyx":1411
22211  *         # TODO: This makes adding a row real slower,
22212  *         # but it is better than a COIN EXCEPTION!
22213  *         if (columns >= self.nVariables).any():             # <<<<<<<<<<<<<<
22214  *             raise Exception('CyClpSimplex.pyx:addConstraint: Column ' \
22215  *                     'index out of range (number of columns: ' \
22216  */
22217   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1411, __pyx_L1_error)
22218   __Pyx_GOTREF(__pyx_t_2);
22219   __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_columns), __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1411, __pyx_L1_error)
22220   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22221   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1411, __pyx_L1_error)
22222   __Pyx_GOTREF(__pyx_t_2);
22223   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
22224   __pyx_t_3 = NULL;
22225   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
22226     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
22227     if (likely(__pyx_t_3)) {
22228       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
22229       __Pyx_INCREF(__pyx_t_3);
22230       __Pyx_INCREF(function);
22231       __Pyx_DECREF_SET(__pyx_t_2, function);
22232     }
22233   }
22234   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
22235   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
22236   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1411, __pyx_L1_error)
22237   __Pyx_GOTREF(__pyx_t_1);
22238   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22239   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1411, __pyx_L1_error)
22240   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22241   if (unlikely(__pyx_t_4)) {
22242 
22243     /* "cylp/cy/CyClpSimplex.pyx":1414
22244  *             raise Exception('CyClpSimplex.pyx:addConstraint: Column ' \
22245  *                     'index out of range (number of columns: ' \
22246  *                                 '%d)' % (self.nVariables))             # <<<<<<<<<<<<<<
22247  *         self.CppSelf.addRow(numberInRow, <int*>columns.data,
22248  *                             <double*>elements.data, rowLower, rowUpper)
22249  */
22250     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
22251     __Pyx_GOTREF(__pyx_t_1);
22252     __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_CyClpSimplex_pyx_addConstraint_C, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1414, __pyx_L1_error)
22253     __Pyx_GOTREF(__pyx_t_2);
22254     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22255 
22256     /* "cylp/cy/CyClpSimplex.pyx":1412
22257  *         # but it is better than a COIN EXCEPTION!
22258  *         if (columns >= self.nVariables).any():
22259  *             raise Exception('CyClpSimplex.pyx:addConstraint: Column ' \             # <<<<<<<<<<<<<<
22260  *                     'index out of range (number of columns: ' \
22261  *                                 '%d)' % (self.nVariables))
22262  */
22263     __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1412, __pyx_L1_error)
22264     __Pyx_GOTREF(__pyx_t_1);
22265     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22266     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
22267     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22268     __PYX_ERR(0, 1412, __pyx_L1_error)
22269 
22270     /* "cylp/cy/CyClpSimplex.pyx":1411
22271  *         # TODO: This makes adding a row real slower,
22272  *         # but it is better than a COIN EXCEPTION!
22273  *         if (columns >= self.nVariables).any():             # <<<<<<<<<<<<<<
22274  *             raise Exception('CyClpSimplex.pyx:addConstraint: Column ' \
22275  *                     'index out of range (number of columns: ' \
22276  */
22277   }
22278 
22279   /* "cylp/cy/CyClpSimplex.pyx":1415
22280  *                     'index out of range (number of columns: ' \
22281  *                                 '%d)' % (self.nVariables))
22282  *         self.CppSelf.addRow(numberInRow, <int*>columns.data,             # <<<<<<<<<<<<<<
22283  *                             <double*>elements.data, rowLower, rowUpper)
22284  *
22285  */
22286   __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_numberInRow); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1415, __pyx_L1_error)
22287 
22288   /* "cylp/cy/CyClpSimplex.pyx":1416
22289  *                                 '%d)' % (self.nVariables))
22290  *         self.CppSelf.addRow(numberInRow, <int*>columns.data,
22291  *                             <double*>elements.data, rowLower, rowUpper)             # <<<<<<<<<<<<<<
22292  *
22293  *     def CLP_deleteConstraints(self, np.ndarray[np.int32_t, ndim=1] which):
22294  */
22295   __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_rowLower); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1416, __pyx_L1_error)
22296   __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_rowUpper); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1416, __pyx_L1_error)
22297 
22298   /* "cylp/cy/CyClpSimplex.pyx":1415
22299  *                     'index out of range (number of columns: ' \
22300  *                                 '%d)' % (self.nVariables))
22301  *         self.CppSelf.addRow(numberInRow, <int*>columns.data,             # <<<<<<<<<<<<<<
22302  *                             <double*>elements.data, rowLower, rowUpper)
22303  *
22304  */
22305   __pyx_v_self->CppSelf->addRow(__pyx_t_5, ((int *)__pyx_v_columns->data), ((double *)__pyx_v_elements->data), __pyx_t_6, __pyx_t_7);
22306 
22307   /* "cylp/cy/CyClpSimplex.pyx":1399
22308  *         return self.cyLPModel.inds.reverseVarSearch(ind)
22309  *
22310  *     def CLP_addConstraint(self, numberInRow,             # <<<<<<<<<<<<<<
22311  *                     np.ndarray[np.int32_t, ndim=1] columns,
22312  *                     np.ndarray[np.double_t, ndim=1] elements,
22313  */
22314 
22315   /* function exit code */
22316   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
22317   goto __pyx_L0;
22318   __pyx_L1_error:;
22319   __Pyx_XDECREF(__pyx_t_1);
22320   __Pyx_XDECREF(__pyx_t_2);
22321   __Pyx_XDECREF(__pyx_t_3);
22322   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
22323     __Pyx_PyThreadState_declare
22324     __Pyx_PyThreadState_assign
22325     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
22326     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columns.rcbuffer->pybuffer);
22327     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
22328   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
22329   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_addConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
22330   __pyx_r = NULL;
22331   goto __pyx_L2;
22332   __pyx_L0:;
22333   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columns.rcbuffer->pybuffer);
22334   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
22335   __pyx_L2:;
22336   __Pyx_XGIVEREF(__pyx_r);
22337   __Pyx_TraceReturn(__pyx_r, 0);
22338   __Pyx_RefNannyFinishContext();
22339   return __pyx_r;
22340 }
22341 
22342 /* "cylp/cy/CyClpSimplex.pyx":1418
22343  *                             <double*>elements.data, rowLower, rowUpper)
22344  *
22345  *     def CLP_deleteConstraints(self, np.ndarray[np.int32_t, ndim=1] which):             # <<<<<<<<<<<<<<
22346  *         '''
22347  *         Delete constraints indexed by ``which`` from the LP.
22348  */
22349 
22350 /* Python wrapper */
22351 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_103CLP_deleteConstraints(PyObject *__pyx_v_self, PyObject *__pyx_v_which); /*proto*/
22352 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_102CLP_deleteConstraints[] = "CyClpSimplex.CLP_deleteConstraints(self, ndarray which)\n\n        Delete constraints indexed by ``which`` from the LP.\n        ";
22353 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_103CLP_deleteConstraints(PyObject *__pyx_v_self, PyObject *__pyx_v_which) {
22354   int __pyx_lineno = 0;
22355   const char *__pyx_filename = NULL;
22356   int __pyx_clineno = 0;
22357   PyObject *__pyx_r = 0;
22358   __Pyx_RefNannyDeclarations
22359   __Pyx_RefNannySetupContext("CLP_deleteConstraints (wrapper)", 0);
22360   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_which), __pyx_ptype_5numpy_ndarray, 1, "which", 0))) __PYX_ERR(0, 1418, __pyx_L1_error)
22361   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_102CLP_deleteConstraints(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_which));
22362 
22363   /* function exit code */
22364   goto __pyx_L0;
22365   __pyx_L1_error:;
22366   __pyx_r = NULL;
22367   __pyx_L0:;
22368   __Pyx_RefNannyFinishContext();
22369   return __pyx_r;
22370 }
22371 
22372 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_102CLP_deleteConstraints(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_which) {
22373   __Pyx_LocalBuf_ND __pyx_pybuffernd_which;
22374   __Pyx_Buffer __pyx_pybuffer_which;
22375   PyObject *__pyx_r = NULL;
22376   __Pyx_TraceDeclarations
22377   __Pyx_RefNannyDeclarations
22378   PyObject *__pyx_t_1 = NULL;
22379   PyObject *__pyx_t_2 = NULL;
22380   PyObject *__pyx_t_3 = NULL;
22381   int __pyx_t_4;
22382   Py_ssize_t __pyx_t_5;
22383   int __pyx_lineno = 0;
22384   const char *__pyx_filename = NULL;
22385   int __pyx_clineno = 0;
22386   __Pyx_RefNannySetupContext("CLP_deleteConstraints", 0);
22387   __Pyx_TraceCall("CLP_deleteConstraints", __pyx_f[0], 1418, 0, __PYX_ERR(0, 1418, __pyx_L1_error));
22388   __pyx_pybuffer_which.pybuffer.buf = NULL;
22389   __pyx_pybuffer_which.refcount = 0;
22390   __pyx_pybuffernd_which.data = NULL;
22391   __pyx_pybuffernd_which.rcbuffer = &__pyx_pybuffer_which;
22392   {
22393     __Pyx_BufFmt_StackElem __pyx_stack[1];
22394     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_which.rcbuffer->pybuffer, (PyObject*)__pyx_v_which, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1418, __pyx_L1_error)
22395   }
22396   __pyx_pybuffernd_which.diminfo[0].strides = __pyx_pybuffernd_which.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_which.diminfo[0].shape = __pyx_pybuffernd_which.rcbuffer->pybuffer.shape[0];
22397 
22398   /* "cylp/cy/CyClpSimplex.pyx":1422
22399  *         Delete constraints indexed by ``which`` from the LP.
22400  *         '''
22401  *         if (which >= self.nConstraints).any():             # <<<<<<<<<<<<<<
22402  *             raise Exception('CyClpSimplex.pyx:deleteConstraints: Constraint ' \
22403  *                     'index out of range (number of constraints: ' \
22404  */
22405   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1422, __pyx_L1_error)
22406   __Pyx_GOTREF(__pyx_t_2);
22407   __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_which), __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1422, __pyx_L1_error)
22408   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22409   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1422, __pyx_L1_error)
22410   __Pyx_GOTREF(__pyx_t_2);
22411   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
22412   __pyx_t_3 = NULL;
22413   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
22414     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
22415     if (likely(__pyx_t_3)) {
22416       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
22417       __Pyx_INCREF(__pyx_t_3);
22418       __Pyx_INCREF(function);
22419       __Pyx_DECREF_SET(__pyx_t_2, function);
22420     }
22421   }
22422   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
22423   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
22424   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1422, __pyx_L1_error)
22425   __Pyx_GOTREF(__pyx_t_1);
22426   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22427   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1422, __pyx_L1_error)
22428   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22429   if (unlikely(__pyx_t_4)) {
22430 
22431     /* "cylp/cy/CyClpSimplex.pyx":1425
22432  *             raise Exception('CyClpSimplex.pyx:deleteConstraints: Constraint ' \
22433  *                     'index out of range (number of constraints: ' \
22434  *                                 '%d)' % (self.nConstraints))             # <<<<<<<<<<<<<<
22435  *         self.CppSelf.deleteRows(len(which), <int*>which.data)
22436  *
22437  */
22438     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1425, __pyx_L1_error)
22439     __Pyx_GOTREF(__pyx_t_1);
22440     __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_CyClpSimplex_pyx_deleteConstrain, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1425, __pyx_L1_error)
22441     __Pyx_GOTREF(__pyx_t_2);
22442     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22443 
22444     /* "cylp/cy/CyClpSimplex.pyx":1423
22445  *         '''
22446  *         if (which >= self.nConstraints).any():
22447  *             raise Exception('CyClpSimplex.pyx:deleteConstraints: Constraint ' \             # <<<<<<<<<<<<<<
22448  *                     'index out of range (number of constraints: ' \
22449  *                                 '%d)' % (self.nConstraints))
22450  */
22451     __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1423, __pyx_L1_error)
22452     __Pyx_GOTREF(__pyx_t_1);
22453     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22454     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
22455     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22456     __PYX_ERR(0, 1423, __pyx_L1_error)
22457 
22458     /* "cylp/cy/CyClpSimplex.pyx":1422
22459  *         Delete constraints indexed by ``which`` from the LP.
22460  *         '''
22461  *         if (which >= self.nConstraints).any():             # <<<<<<<<<<<<<<
22462  *             raise Exception('CyClpSimplex.pyx:deleteConstraints: Constraint ' \
22463  *                     'index out of range (number of constraints: ' \
22464  */
22465   }
22466 
22467   /* "cylp/cy/CyClpSimplex.pyx":1426
22468  *                     'index out of range (number of constraints: ' \
22469  *                                 '%d)' % (self.nConstraints))
22470  *         self.CppSelf.deleteRows(len(which), <int*>which.data)             # <<<<<<<<<<<<<<
22471  *
22472  *     def CLP_deleteVariables(self, np.ndarray[np.int32_t, ndim=1] which):
22473  */
22474   __pyx_t_5 = PyObject_Length(((PyObject *)__pyx_v_which)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1426, __pyx_L1_error)
22475   __pyx_v_self->CppSelf->deleteRows(__pyx_t_5, ((int *)__pyx_v_which->data));
22476 
22477   /* "cylp/cy/CyClpSimplex.pyx":1418
22478  *                             <double*>elements.data, rowLower, rowUpper)
22479  *
22480  *     def CLP_deleteConstraints(self, np.ndarray[np.int32_t, ndim=1] which):             # <<<<<<<<<<<<<<
22481  *         '''
22482  *         Delete constraints indexed by ``which`` from the LP.
22483  */
22484 
22485   /* function exit code */
22486   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
22487   goto __pyx_L0;
22488   __pyx_L1_error:;
22489   __Pyx_XDECREF(__pyx_t_1);
22490   __Pyx_XDECREF(__pyx_t_2);
22491   __Pyx_XDECREF(__pyx_t_3);
22492   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
22493     __Pyx_PyThreadState_declare
22494     __Pyx_PyThreadState_assign
22495     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
22496     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
22497   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
22498   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_deleteConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
22499   __pyx_r = NULL;
22500   goto __pyx_L2;
22501   __pyx_L0:;
22502   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
22503   __pyx_L2:;
22504   __Pyx_XGIVEREF(__pyx_r);
22505   __Pyx_TraceReturn(__pyx_r, 0);
22506   __Pyx_RefNannyFinishContext();
22507   return __pyx_r;
22508 }
22509 
22510 /* "cylp/cy/CyClpSimplex.pyx":1428
22511  *         self.CppSelf.deleteRows(len(which), <int*>which.data)
22512  *
22513  *     def CLP_deleteVariables(self, np.ndarray[np.int32_t, ndim=1] which):             # <<<<<<<<<<<<<<
22514  *         '''
22515  *         Delete variables indexed by ``which`` from the LP.
22516  */
22517 
22518 /* Python wrapper */
22519 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_105CLP_deleteVariables(PyObject *__pyx_v_self, PyObject *__pyx_v_which); /*proto*/
22520 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_104CLP_deleteVariables[] = "CyClpSimplex.CLP_deleteVariables(self, ndarray which)\n\n        Delete variables indexed by ``which`` from the LP.\n        ";
22521 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_105CLP_deleteVariables(PyObject *__pyx_v_self, PyObject *__pyx_v_which) {
22522   int __pyx_lineno = 0;
22523   const char *__pyx_filename = NULL;
22524   int __pyx_clineno = 0;
22525   PyObject *__pyx_r = 0;
22526   __Pyx_RefNannyDeclarations
22527   __Pyx_RefNannySetupContext("CLP_deleteVariables (wrapper)", 0);
22528   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_which), __pyx_ptype_5numpy_ndarray, 1, "which", 0))) __PYX_ERR(0, 1428, __pyx_L1_error)
22529   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_104CLP_deleteVariables(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_which));
22530 
22531   /* function exit code */
22532   goto __pyx_L0;
22533   __pyx_L1_error:;
22534   __pyx_r = NULL;
22535   __pyx_L0:;
22536   __Pyx_RefNannyFinishContext();
22537   return __pyx_r;
22538 }
22539 
22540 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_104CLP_deleteVariables(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_which) {
22541   __Pyx_LocalBuf_ND __pyx_pybuffernd_which;
22542   __Pyx_Buffer __pyx_pybuffer_which;
22543   PyObject *__pyx_r = NULL;
22544   __Pyx_TraceDeclarations
22545   __Pyx_RefNannyDeclarations
22546   PyObject *__pyx_t_1 = NULL;
22547   PyObject *__pyx_t_2 = NULL;
22548   PyObject *__pyx_t_3 = NULL;
22549   int __pyx_t_4;
22550   Py_ssize_t __pyx_t_5;
22551   int __pyx_lineno = 0;
22552   const char *__pyx_filename = NULL;
22553   int __pyx_clineno = 0;
22554   __Pyx_RefNannySetupContext("CLP_deleteVariables", 0);
22555   __Pyx_TraceCall("CLP_deleteVariables", __pyx_f[0], 1428, 0, __PYX_ERR(0, 1428, __pyx_L1_error));
22556   __pyx_pybuffer_which.pybuffer.buf = NULL;
22557   __pyx_pybuffer_which.refcount = 0;
22558   __pyx_pybuffernd_which.data = NULL;
22559   __pyx_pybuffernd_which.rcbuffer = &__pyx_pybuffer_which;
22560   {
22561     __Pyx_BufFmt_StackElem __pyx_stack[1];
22562     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_which.rcbuffer->pybuffer, (PyObject*)__pyx_v_which, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1428, __pyx_L1_error)
22563   }
22564   __pyx_pybuffernd_which.diminfo[0].strides = __pyx_pybuffernd_which.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_which.diminfo[0].shape = __pyx_pybuffernd_which.rcbuffer->pybuffer.shape[0];
22565 
22566   /* "cylp/cy/CyClpSimplex.pyx":1432
22567  *         Delete variables indexed by ``which`` from the LP.
22568  *         '''
22569  *         if (which >= self.nVariables).any():             # <<<<<<<<<<<<<<
22570  *             raise Exception('CyClpSimplex.pyx:deleteVariables: variable ' \
22571  *                     'index out of range (number of variables: ' \
22572  */
22573   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1432, __pyx_L1_error)
22574   __Pyx_GOTREF(__pyx_t_2);
22575   __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_which), __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1432, __pyx_L1_error)
22576   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22577   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1432, __pyx_L1_error)
22578   __Pyx_GOTREF(__pyx_t_2);
22579   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
22580   __pyx_t_3 = NULL;
22581   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
22582     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
22583     if (likely(__pyx_t_3)) {
22584       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
22585       __Pyx_INCREF(__pyx_t_3);
22586       __Pyx_INCREF(function);
22587       __Pyx_DECREF_SET(__pyx_t_2, function);
22588     }
22589   }
22590   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
22591   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
22592   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1432, __pyx_L1_error)
22593   __Pyx_GOTREF(__pyx_t_1);
22594   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22595   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1432, __pyx_L1_error)
22596   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22597   if (unlikely(__pyx_t_4)) {
22598 
22599     /* "cylp/cy/CyClpSimplex.pyx":1435
22600  *             raise Exception('CyClpSimplex.pyx:deleteVariables: variable ' \
22601  *                     'index out of range (number of variables: ' \
22602  *                                 '%d)' % (self.nVariables))             # <<<<<<<<<<<<<<
22603  *         self.CppSelf.deleteColumns(len(which), <int*>which.data)
22604  *
22605  */
22606     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1435, __pyx_L1_error)
22607     __Pyx_GOTREF(__pyx_t_1);
22608     __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_CyClpSimplex_pyx_deleteVariables, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1435, __pyx_L1_error)
22609     __Pyx_GOTREF(__pyx_t_2);
22610     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22611 
22612     /* "cylp/cy/CyClpSimplex.pyx":1433
22613  *         '''
22614  *         if (which >= self.nVariables).any():
22615  *             raise Exception('CyClpSimplex.pyx:deleteVariables: variable ' \             # <<<<<<<<<<<<<<
22616  *                     'index out of range (number of variables: ' \
22617  *                                 '%d)' % (self.nVariables))
22618  */
22619     __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error)
22620     __Pyx_GOTREF(__pyx_t_1);
22621     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22622     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
22623     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22624     __PYX_ERR(0, 1433, __pyx_L1_error)
22625 
22626     /* "cylp/cy/CyClpSimplex.pyx":1432
22627  *         Delete variables indexed by ``which`` from the LP.
22628  *         '''
22629  *         if (which >= self.nVariables).any():             # <<<<<<<<<<<<<<
22630  *             raise Exception('CyClpSimplex.pyx:deleteVariables: variable ' \
22631  *                     'index out of range (number of variables: ' \
22632  */
22633   }
22634 
22635   /* "cylp/cy/CyClpSimplex.pyx":1436
22636  *                     'index out of range (number of variables: ' \
22637  *                                 '%d)' % (self.nVariables))
22638  *         self.CppSelf.deleteColumns(len(which), <int*>which.data)             # <<<<<<<<<<<<<<
22639  *
22640  *     def CLP_addVariable(self, numberInColumn,
22641  */
22642   __pyx_t_5 = PyObject_Length(((PyObject *)__pyx_v_which)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1436, __pyx_L1_error)
22643   __pyx_v_self->CppSelf->deleteColumns(__pyx_t_5, ((int *)__pyx_v_which->data));
22644 
22645   /* "cylp/cy/CyClpSimplex.pyx":1428
22646  *         self.CppSelf.deleteRows(len(which), <int*>which.data)
22647  *
22648  *     def CLP_deleteVariables(self, np.ndarray[np.int32_t, ndim=1] which):             # <<<<<<<<<<<<<<
22649  *         '''
22650  *         Delete variables indexed by ``which`` from the LP.
22651  */
22652 
22653   /* function exit code */
22654   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
22655   goto __pyx_L0;
22656   __pyx_L1_error:;
22657   __Pyx_XDECREF(__pyx_t_1);
22658   __Pyx_XDECREF(__pyx_t_2);
22659   __Pyx_XDECREF(__pyx_t_3);
22660   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
22661     __Pyx_PyThreadState_declare
22662     __Pyx_PyThreadState_assign
22663     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
22664     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
22665   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
22666   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_deleteVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
22667   __pyx_r = NULL;
22668   goto __pyx_L2;
22669   __pyx_L0:;
22670   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
22671   __pyx_L2:;
22672   __Pyx_XGIVEREF(__pyx_r);
22673   __Pyx_TraceReturn(__pyx_r, 0);
22674   __Pyx_RefNannyFinishContext();
22675   return __pyx_r;
22676 }
22677 
22678 /* "cylp/cy/CyClpSimplex.pyx":1438
22679  *         self.CppSelf.deleteColumns(len(which), <int*>which.data)
22680  *
22681  *     def CLP_addVariable(self, numberInColumn,             # <<<<<<<<<<<<<<
22682  *                         np.ndarray[np.int32_t, ndim=1] rows,
22683  *                         np.ndarray[np.double_t, ndim=1] elements,
22684  */
22685 
22686 /* Python wrapper */
22687 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_107CLP_addVariable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22688 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_106CLP_addVariable[] = "CyClpSimplex.CLP_addVariable(self, numberInColumn, ndarray rows, ndarray elements, columnLower, columnUpper, objective)\n\n        Add a variable to the problem, CLP style. See CLP documentation.\n        For cylp modeling tool see :mod:`cylp.python.modeling.CyLPModel`.\n        ";
22689 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_107CLP_addVariable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22690   PyObject *__pyx_v_numberInColumn = 0;
22691   PyArrayObject *__pyx_v_rows = 0;
22692   PyArrayObject *__pyx_v_elements = 0;
22693   PyObject *__pyx_v_columnLower = 0;
22694   PyObject *__pyx_v_columnUpper = 0;
22695   PyObject *__pyx_v_objective = 0;
22696   int __pyx_lineno = 0;
22697   const char *__pyx_filename = NULL;
22698   int __pyx_clineno = 0;
22699   PyObject *__pyx_r = 0;
22700   __Pyx_RefNannyDeclarations
22701   __Pyx_RefNannySetupContext("CLP_addVariable (wrapper)", 0);
22702   {
22703     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numberInColumn,&__pyx_n_s_rows,&__pyx_n_s_elements,&__pyx_n_s_columnLower,&__pyx_n_s_columnUpper,&__pyx_n_s_objective,0};
22704     PyObject* values[6] = {0,0,0,0,0,0};
22705     if (unlikely(__pyx_kwds)) {
22706       Py_ssize_t kw_args;
22707       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
22708       switch (pos_args) {
22709         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
22710         CYTHON_FALLTHROUGH;
22711         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22712         CYTHON_FALLTHROUGH;
22713         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22714         CYTHON_FALLTHROUGH;
22715         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22716         CYTHON_FALLTHROUGH;
22717         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22718         CYTHON_FALLTHROUGH;
22719         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22720         CYTHON_FALLTHROUGH;
22721         case  0: break;
22722         default: goto __pyx_L5_argtuple_error;
22723       }
22724       kw_args = PyDict_Size(__pyx_kwds);
22725       switch (pos_args) {
22726         case  0:
22727         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberInColumn)) != 0)) kw_args--;
22728         else goto __pyx_L5_argtuple_error;
22729         CYTHON_FALLTHROUGH;
22730         case  1:
22731         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--;
22732         else {
22733           __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 1); __PYX_ERR(0, 1438, __pyx_L3_error)
22734         }
22735         CYTHON_FALLTHROUGH;
22736         case  2:
22737         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elements)) != 0)) kw_args--;
22738         else {
22739           __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 2); __PYX_ERR(0, 1438, __pyx_L3_error)
22740         }
22741         CYTHON_FALLTHROUGH;
22742         case  3:
22743         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnLower)) != 0)) kw_args--;
22744         else {
22745           __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 3); __PYX_ERR(0, 1438, __pyx_L3_error)
22746         }
22747         CYTHON_FALLTHROUGH;
22748         case  4:
22749         if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnUpper)) != 0)) kw_args--;
22750         else {
22751           __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 4); __PYX_ERR(0, 1438, __pyx_L3_error)
22752         }
22753         CYTHON_FALLTHROUGH;
22754         case  5:
22755         if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objective)) != 0)) kw_args--;
22756         else {
22757           __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 5); __PYX_ERR(0, 1438, __pyx_L3_error)
22758         }
22759       }
22760       if (unlikely(kw_args > 0)) {
22761         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CLP_addVariable") < 0)) __PYX_ERR(0, 1438, __pyx_L3_error)
22762       }
22763     } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
22764       goto __pyx_L5_argtuple_error;
22765     } else {
22766       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22767       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22768       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22769       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22770       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22771       values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
22772     }
22773     __pyx_v_numberInColumn = values[0];
22774     __pyx_v_rows = ((PyArrayObject *)values[1]);
22775     __pyx_v_elements = ((PyArrayObject *)values[2]);
22776     __pyx_v_columnLower = values[3];
22777     __pyx_v_columnUpper = values[4];
22778     __pyx_v_objective = values[5];
22779   }
22780   goto __pyx_L4_argument_unpacking_done;
22781   __pyx_L5_argtuple_error:;
22782   __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1438, __pyx_L3_error)
22783   __pyx_L3_error:;
22784   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_addVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
22785   __Pyx_RefNannyFinishContext();
22786   return NULL;
22787   __pyx_L4_argument_unpacking_done:;
22788   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rows), __pyx_ptype_5numpy_ndarray, 1, "rows", 0))) __PYX_ERR(0, 1439, __pyx_L1_error)
22789   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elements), __pyx_ptype_5numpy_ndarray, 1, "elements", 0))) __PYX_ERR(0, 1440, __pyx_L1_error)
22790   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_106CLP_addVariable(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_numberInColumn, __pyx_v_rows, __pyx_v_elements, __pyx_v_columnLower, __pyx_v_columnUpper, __pyx_v_objective);
22791 
22792   /* function exit code */
22793   goto __pyx_L0;
22794   __pyx_L1_error:;
22795   __pyx_r = NULL;
22796   __pyx_L0:;
22797   __Pyx_RefNannyFinishContext();
22798   return __pyx_r;
22799 }
22800 
22801 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_106CLP_addVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_numberInColumn, PyArrayObject *__pyx_v_rows, PyArrayObject *__pyx_v_elements, PyObject *__pyx_v_columnLower, PyObject *__pyx_v_columnUpper, PyObject *__pyx_v_objective) {
22802   __Pyx_LocalBuf_ND __pyx_pybuffernd_elements;
22803   __Pyx_Buffer __pyx_pybuffer_elements;
22804   __Pyx_LocalBuf_ND __pyx_pybuffernd_rows;
22805   __Pyx_Buffer __pyx_pybuffer_rows;
22806   PyObject *__pyx_r = NULL;
22807   __Pyx_TraceDeclarations
22808   __Pyx_RefNannyDeclarations
22809   PyObject *__pyx_t_1 = NULL;
22810   PyObject *__pyx_t_2 = NULL;
22811   PyObject *__pyx_t_3 = NULL;
22812   int __pyx_t_4;
22813   int __pyx_t_5;
22814   double __pyx_t_6;
22815   double __pyx_t_7;
22816   double __pyx_t_8;
22817   int __pyx_lineno = 0;
22818   const char *__pyx_filename = NULL;
22819   int __pyx_clineno = 0;
22820   __Pyx_RefNannySetupContext("CLP_addVariable", 0);
22821   __Pyx_TraceCall("CLP_addVariable", __pyx_f[0], 1438, 0, __PYX_ERR(0, 1438, __pyx_L1_error));
22822   __pyx_pybuffer_rows.pybuffer.buf = NULL;
22823   __pyx_pybuffer_rows.refcount = 0;
22824   __pyx_pybuffernd_rows.data = NULL;
22825   __pyx_pybuffernd_rows.rcbuffer = &__pyx_pybuffer_rows;
22826   __pyx_pybuffer_elements.pybuffer.buf = NULL;
22827   __pyx_pybuffer_elements.refcount = 0;
22828   __pyx_pybuffernd_elements.data = NULL;
22829   __pyx_pybuffernd_elements.rcbuffer = &__pyx_pybuffer_elements;
22830   {
22831     __Pyx_BufFmt_StackElem __pyx_stack[1];
22832     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rows.rcbuffer->pybuffer, (PyObject*)__pyx_v_rows, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1438, __pyx_L1_error)
22833   }
22834   __pyx_pybuffernd_rows.diminfo[0].strides = __pyx_pybuffernd_rows.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rows.diminfo[0].shape = __pyx_pybuffernd_rows.rcbuffer->pybuffer.shape[0];
22835   {
22836     __Pyx_BufFmt_StackElem __pyx_stack[1];
22837     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_elements.rcbuffer->pybuffer, (PyObject*)__pyx_v_elements, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1438, __pyx_L1_error)
22838   }
22839   __pyx_pybuffernd_elements.diminfo[0].strides = __pyx_pybuffernd_elements.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_elements.diminfo[0].shape = __pyx_pybuffernd_elements.rcbuffer->pybuffer.shape[0];
22840 
22841   /* "cylp/cy/CyClpSimplex.pyx":1450
22842  *         # TODO: This makes adding a column real slower,
22843  *         # but it is better than a COIN EXCEPTION!
22844  *         if (rows >= self.nConstraints).any():             # <<<<<<<<<<<<<<
22845  *             raise Exception('CyClpSimplex.pyx:addColumn: Row '\
22846  *                     'index out of range (number of rows:  ' \
22847  */
22848   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1450, __pyx_L1_error)
22849   __Pyx_GOTREF(__pyx_t_2);
22850   __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_rows), __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1450, __pyx_L1_error)
22851   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22852   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1450, __pyx_L1_error)
22853   __Pyx_GOTREF(__pyx_t_2);
22854   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
22855   __pyx_t_3 = NULL;
22856   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
22857     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
22858     if (likely(__pyx_t_3)) {
22859       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
22860       __Pyx_INCREF(__pyx_t_3);
22861       __Pyx_INCREF(function);
22862       __Pyx_DECREF_SET(__pyx_t_2, function);
22863     }
22864   }
22865   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
22866   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
22867   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1450, __pyx_L1_error)
22868   __Pyx_GOTREF(__pyx_t_1);
22869   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22870   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1450, __pyx_L1_error)
22871   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22872   if (unlikely(__pyx_t_4)) {
22873 
22874     /* "cylp/cy/CyClpSimplex.pyx":1453
22875  *             raise Exception('CyClpSimplex.pyx:addColumn: Row '\
22876  *                     'index out of range (number of rows:  ' \
22877  *                         '%d)' % (self.nConstraints))             # <<<<<<<<<<<<<<
22878  *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,
22879  *                 <double*> elements.data, columnLower,
22880  */
22881     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1453, __pyx_L1_error)
22882     __Pyx_GOTREF(__pyx_t_1);
22883     __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_CyClpSimplex_pyx_addColumn_Row_i, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1453, __pyx_L1_error)
22884     __Pyx_GOTREF(__pyx_t_2);
22885     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22886 
22887     /* "cylp/cy/CyClpSimplex.pyx":1451
22888  *         # but it is better than a COIN EXCEPTION!
22889  *         if (rows >= self.nConstraints).any():
22890  *             raise Exception('CyClpSimplex.pyx:addColumn: Row '\             # <<<<<<<<<<<<<<
22891  *                     'index out of range (number of rows:  ' \
22892  *                         '%d)' % (self.nConstraints))
22893  */
22894     __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1451, __pyx_L1_error)
22895     __Pyx_GOTREF(__pyx_t_1);
22896     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22897     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
22898     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22899     __PYX_ERR(0, 1451, __pyx_L1_error)
22900 
22901     /* "cylp/cy/CyClpSimplex.pyx":1450
22902  *         # TODO: This makes adding a column real slower,
22903  *         # but it is better than a COIN EXCEPTION!
22904  *         if (rows >= self.nConstraints).any():             # <<<<<<<<<<<<<<
22905  *             raise Exception('CyClpSimplex.pyx:addColumn: Row '\
22906  *                     'index out of range (number of rows:  ' \
22907  */
22908   }
22909 
22910   /* "cylp/cy/CyClpSimplex.pyx":1454
22911  *                     'index out of range (number of rows:  ' \
22912  *                         '%d)' % (self.nConstraints))
22913  *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,             # <<<<<<<<<<<<<<
22914  *                 <double*> elements.data, columnLower,
22915  *                                columnUpper, objective)
22916  */
22917   __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_numberInColumn); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1454, __pyx_L1_error)
22918 
22919   /* "cylp/cy/CyClpSimplex.pyx":1455
22920  *                         '%d)' % (self.nConstraints))
22921  *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,
22922  *                 <double*> elements.data, columnLower,             # <<<<<<<<<<<<<<
22923  *                                columnUpper, objective)
22924  *
22925  */
22926   __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_columnLower); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1455, __pyx_L1_error)
22927 
22928   /* "cylp/cy/CyClpSimplex.pyx":1456
22929  *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,
22930  *                 <double*> elements.data, columnLower,
22931  *                                columnUpper, objective)             # <<<<<<<<<<<<<<
22932  *
22933  *     def addVariables(self, number,
22934  */
22935   __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_columnUpper); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1456, __pyx_L1_error)
22936   __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_v_objective); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1456, __pyx_L1_error)
22937 
22938   /* "cylp/cy/CyClpSimplex.pyx":1454
22939  *                     'index out of range (number of rows:  ' \
22940  *                         '%d)' % (self.nConstraints))
22941  *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,             # <<<<<<<<<<<<<<
22942  *                 <double*> elements.data, columnLower,
22943  *                                columnUpper, objective)
22944  */
22945   __pyx_v_self->CppSelf->addColumn(__pyx_t_5, ((int *)__pyx_v_rows->data), ((double *)__pyx_v_elements->data), __pyx_t_6, __pyx_t_7, __pyx_t_8);
22946 
22947   /* "cylp/cy/CyClpSimplex.pyx":1438
22948  *         self.CppSelf.deleteColumns(len(which), <int*>which.data)
22949  *
22950  *     def CLP_addVariable(self, numberInColumn,             # <<<<<<<<<<<<<<
22951  *                         np.ndarray[np.int32_t, ndim=1] rows,
22952  *                         np.ndarray[np.double_t, ndim=1] elements,
22953  */
22954 
22955   /* function exit code */
22956   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
22957   goto __pyx_L0;
22958   __pyx_L1_error:;
22959   __Pyx_XDECREF(__pyx_t_1);
22960   __Pyx_XDECREF(__pyx_t_2);
22961   __Pyx_XDECREF(__pyx_t_3);
22962   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
22963     __Pyx_PyThreadState_declare
22964     __Pyx_PyThreadState_assign
22965     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
22966     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
22967     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows.rcbuffer->pybuffer);
22968   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
22969   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_addVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
22970   __pyx_r = NULL;
22971   goto __pyx_L2;
22972   __pyx_L0:;
22973   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
22974   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows.rcbuffer->pybuffer);
22975   __pyx_L2:;
22976   __Pyx_XGIVEREF(__pyx_r);
22977   __Pyx_TraceReturn(__pyx_r, 0);
22978   __Pyx_RefNannyFinishContext();
22979   return __pyx_r;
22980 }
22981 
22982 /* "cylp/cy/CyClpSimplex.pyx":1458
22983  *                                columnUpper, objective)
22984  *
22985  *     def addVariables(self, number,             # <<<<<<<<<<<<<<
22986  *                         np.ndarray[np.double_t, ndim=1] columnLower,
22987  *                         np.ndarray[np.double_t, ndim=1] columnUpper,
22988  */
22989 
22990 /* Python wrapper */
22991 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_109addVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22992 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_108addVariables[] = "CyClpSimplex.addVariables(self, number, ndarray columnLower, ndarray columnUpper, ndarray objective, ndarray columnStarts, ndarray rows, ndarray elements)\n\n        Add ``number`` variables at once, CLP style.\n        For cylp modeling tool see :mod:`cylp.python.modeling.CyLPModel`.\n        ";
22993 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_109addVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22994   PyObject *__pyx_v_number = 0;
22995   PyArrayObject *__pyx_v_columnLower = 0;
22996   PyArrayObject *__pyx_v_columnUpper = 0;
22997   PyArrayObject *__pyx_v_objective = 0;
22998   PyArrayObject *__pyx_v_columnStarts = 0;
22999   PyArrayObject *__pyx_v_rows = 0;
23000   PyArrayObject *__pyx_v_elements = 0;
23001   int __pyx_lineno = 0;
23002   const char *__pyx_filename = NULL;
23003   int __pyx_clineno = 0;
23004   PyObject *__pyx_r = 0;
23005   __Pyx_RefNannyDeclarations
23006   __Pyx_RefNannySetupContext("addVariables (wrapper)", 0);
23007   {
23008     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_number,&__pyx_n_s_columnLower,&__pyx_n_s_columnUpper,&__pyx_n_s_objective,&__pyx_n_s_columnStarts,&__pyx_n_s_rows,&__pyx_n_s_elements,0};
23009     PyObject* values[7] = {0,0,0,0,0,0,0};
23010     if (unlikely(__pyx_kwds)) {
23011       Py_ssize_t kw_args;
23012       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
23013       switch (pos_args) {
23014         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
23015         CYTHON_FALLTHROUGH;
23016         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23017         CYTHON_FALLTHROUGH;
23018         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23019         CYTHON_FALLTHROUGH;
23020         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23021         CYTHON_FALLTHROUGH;
23022         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23023         CYTHON_FALLTHROUGH;
23024         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23025         CYTHON_FALLTHROUGH;
23026         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23027         CYTHON_FALLTHROUGH;
23028         case  0: break;
23029         default: goto __pyx_L5_argtuple_error;
23030       }
23031       kw_args = PyDict_Size(__pyx_kwds);
23032       switch (pos_args) {
23033         case  0:
23034         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_number)) != 0)) kw_args--;
23035         else goto __pyx_L5_argtuple_error;
23036         CYTHON_FALLTHROUGH;
23037         case  1:
23038         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnLower)) != 0)) kw_args--;
23039         else {
23040           __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 1); __PYX_ERR(0, 1458, __pyx_L3_error)
23041         }
23042         CYTHON_FALLTHROUGH;
23043         case  2:
23044         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnUpper)) != 0)) kw_args--;
23045         else {
23046           __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 2); __PYX_ERR(0, 1458, __pyx_L3_error)
23047         }
23048         CYTHON_FALLTHROUGH;
23049         case  3:
23050         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objective)) != 0)) kw_args--;
23051         else {
23052           __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 3); __PYX_ERR(0, 1458, __pyx_L3_error)
23053         }
23054         CYTHON_FALLTHROUGH;
23055         case  4:
23056         if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnStarts)) != 0)) kw_args--;
23057         else {
23058           __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 4); __PYX_ERR(0, 1458, __pyx_L3_error)
23059         }
23060         CYTHON_FALLTHROUGH;
23061         case  5:
23062         if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--;
23063         else {
23064           __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 5); __PYX_ERR(0, 1458, __pyx_L3_error)
23065         }
23066         CYTHON_FALLTHROUGH;
23067         case  6:
23068         if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elements)) != 0)) kw_args--;
23069         else {
23070           __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 6); __PYX_ERR(0, 1458, __pyx_L3_error)
23071         }
23072       }
23073       if (unlikely(kw_args > 0)) {
23074         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addVariables") < 0)) __PYX_ERR(0, 1458, __pyx_L3_error)
23075       }
23076     } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
23077       goto __pyx_L5_argtuple_error;
23078     } else {
23079       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23080       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23081       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23082       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23083       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23084       values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23085       values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
23086     }
23087     __pyx_v_number = values[0];
23088     __pyx_v_columnLower = ((PyArrayObject *)values[1]);
23089     __pyx_v_columnUpper = ((PyArrayObject *)values[2]);
23090     __pyx_v_objective = ((PyArrayObject *)values[3]);
23091     __pyx_v_columnStarts = ((PyArrayObject *)values[4]);
23092     __pyx_v_rows = ((PyArrayObject *)values[5]);
23093     __pyx_v_elements = ((PyArrayObject *)values[6]);
23094   }
23095   goto __pyx_L4_argument_unpacking_done;
23096   __pyx_L5_argtuple_error:;
23097   __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1458, __pyx_L3_error)
23098   __pyx_L3_error:;
23099   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
23100   __Pyx_RefNannyFinishContext();
23101   return NULL;
23102   __pyx_L4_argument_unpacking_done:;
23103   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnLower), __pyx_ptype_5numpy_ndarray, 1, "columnLower", 0))) __PYX_ERR(0, 1459, __pyx_L1_error)
23104   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnUpper), __pyx_ptype_5numpy_ndarray, 1, "columnUpper", 0))) __PYX_ERR(0, 1460, __pyx_L1_error)
23105   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_objective), __pyx_ptype_5numpy_ndarray, 1, "objective", 0))) __PYX_ERR(0, 1461, __pyx_L1_error)
23106   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnStarts), __pyx_ptype_5numpy_ndarray, 1, "columnStarts", 0))) __PYX_ERR(0, 1462, __pyx_L1_error)
23107   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rows), __pyx_ptype_5numpy_ndarray, 1, "rows", 0))) __PYX_ERR(0, 1463, __pyx_L1_error)
23108   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elements), __pyx_ptype_5numpy_ndarray, 1, "elements", 0))) __PYX_ERR(0, 1464, __pyx_L1_error)
23109   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_108addVariables(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_number, __pyx_v_columnLower, __pyx_v_columnUpper, __pyx_v_objective, __pyx_v_columnStarts, __pyx_v_rows, __pyx_v_elements);
23110 
23111   /* function exit code */
23112   goto __pyx_L0;
23113   __pyx_L1_error:;
23114   __pyx_r = NULL;
23115   __pyx_L0:;
23116   __Pyx_RefNannyFinishContext();
23117   return __pyx_r;
23118 }
23119 
23120 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_108addVariables(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_number, PyArrayObject *__pyx_v_columnLower, PyArrayObject *__pyx_v_columnUpper, PyArrayObject *__pyx_v_objective, PyArrayObject *__pyx_v_columnStarts, PyArrayObject *__pyx_v_rows, PyArrayObject *__pyx_v_elements) {
23121   __Pyx_LocalBuf_ND __pyx_pybuffernd_columnLower;
23122   __Pyx_Buffer __pyx_pybuffer_columnLower;
23123   __Pyx_LocalBuf_ND __pyx_pybuffernd_columnStarts;
23124   __Pyx_Buffer __pyx_pybuffer_columnStarts;
23125   __Pyx_LocalBuf_ND __pyx_pybuffernd_columnUpper;
23126   __Pyx_Buffer __pyx_pybuffer_columnUpper;
23127   __Pyx_LocalBuf_ND __pyx_pybuffernd_elements;
23128   __Pyx_Buffer __pyx_pybuffer_elements;
23129   __Pyx_LocalBuf_ND __pyx_pybuffernd_objective;
23130   __Pyx_Buffer __pyx_pybuffer_objective;
23131   __Pyx_LocalBuf_ND __pyx_pybuffernd_rows;
23132   __Pyx_Buffer __pyx_pybuffer_rows;
23133   PyObject *__pyx_r = NULL;
23134   __Pyx_TraceDeclarations
23135   __Pyx_RefNannyDeclarations
23136   int __pyx_t_1;
23137   int __pyx_lineno = 0;
23138   const char *__pyx_filename = NULL;
23139   int __pyx_clineno = 0;
23140   __Pyx_RefNannySetupContext("addVariables", 0);
23141   __Pyx_TraceCall("addVariables", __pyx_f[0], 1458, 0, __PYX_ERR(0, 1458, __pyx_L1_error));
23142   __pyx_pybuffer_columnLower.pybuffer.buf = NULL;
23143   __pyx_pybuffer_columnLower.refcount = 0;
23144   __pyx_pybuffernd_columnLower.data = NULL;
23145   __pyx_pybuffernd_columnLower.rcbuffer = &__pyx_pybuffer_columnLower;
23146   __pyx_pybuffer_columnUpper.pybuffer.buf = NULL;
23147   __pyx_pybuffer_columnUpper.refcount = 0;
23148   __pyx_pybuffernd_columnUpper.data = NULL;
23149   __pyx_pybuffernd_columnUpper.rcbuffer = &__pyx_pybuffer_columnUpper;
23150   __pyx_pybuffer_objective.pybuffer.buf = NULL;
23151   __pyx_pybuffer_objective.refcount = 0;
23152   __pyx_pybuffernd_objective.data = NULL;
23153   __pyx_pybuffernd_objective.rcbuffer = &__pyx_pybuffer_objective;
23154   __pyx_pybuffer_columnStarts.pybuffer.buf = NULL;
23155   __pyx_pybuffer_columnStarts.refcount = 0;
23156   __pyx_pybuffernd_columnStarts.data = NULL;
23157   __pyx_pybuffernd_columnStarts.rcbuffer = &__pyx_pybuffer_columnStarts;
23158   __pyx_pybuffer_rows.pybuffer.buf = NULL;
23159   __pyx_pybuffer_rows.refcount = 0;
23160   __pyx_pybuffernd_rows.data = NULL;
23161   __pyx_pybuffernd_rows.rcbuffer = &__pyx_pybuffer_rows;
23162   __pyx_pybuffer_elements.pybuffer.buf = NULL;
23163   __pyx_pybuffer_elements.refcount = 0;
23164   __pyx_pybuffernd_elements.data = NULL;
23165   __pyx_pybuffernd_elements.rcbuffer = &__pyx_pybuffer_elements;
23166   {
23167     __Pyx_BufFmt_StackElem __pyx_stack[1];
23168     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer, (PyObject*)__pyx_v_columnLower, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1458, __pyx_L1_error)
23169   }
23170   __pyx_pybuffernd_columnLower.diminfo[0].strides = __pyx_pybuffernd_columnLower.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columnLower.diminfo[0].shape = __pyx_pybuffernd_columnLower.rcbuffer->pybuffer.shape[0];
23171   {
23172     __Pyx_BufFmt_StackElem __pyx_stack[1];
23173     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer, (PyObject*)__pyx_v_columnUpper, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1458, __pyx_L1_error)
23174   }
23175   __pyx_pybuffernd_columnUpper.diminfo[0].strides = __pyx_pybuffernd_columnUpper.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columnUpper.diminfo[0].shape = __pyx_pybuffernd_columnUpper.rcbuffer->pybuffer.shape[0];
23176   {
23177     __Pyx_BufFmt_StackElem __pyx_stack[1];
23178     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_objective.rcbuffer->pybuffer, (PyObject*)__pyx_v_objective, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1458, __pyx_L1_error)
23179   }
23180   __pyx_pybuffernd_objective.diminfo[0].strides = __pyx_pybuffernd_objective.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_objective.diminfo[0].shape = __pyx_pybuffernd_objective.rcbuffer->pybuffer.shape[0];
23181   {
23182     __Pyx_BufFmt_StackElem __pyx_stack[1];
23183     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columnStarts.rcbuffer->pybuffer, (PyObject*)__pyx_v_columnStarts, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1458, __pyx_L1_error)
23184   }
23185   __pyx_pybuffernd_columnStarts.diminfo[0].strides = __pyx_pybuffernd_columnStarts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columnStarts.diminfo[0].shape = __pyx_pybuffernd_columnStarts.rcbuffer->pybuffer.shape[0];
23186   {
23187     __Pyx_BufFmt_StackElem __pyx_stack[1];
23188     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rows.rcbuffer->pybuffer, (PyObject*)__pyx_v_rows, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1458, __pyx_L1_error)
23189   }
23190   __pyx_pybuffernd_rows.diminfo[0].strides = __pyx_pybuffernd_rows.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rows.diminfo[0].shape = __pyx_pybuffernd_rows.rcbuffer->pybuffer.shape[0];
23191   {
23192     __Pyx_BufFmt_StackElem __pyx_stack[1];
23193     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_elements.rcbuffer->pybuffer, (PyObject*)__pyx_v_elements, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1458, __pyx_L1_error)
23194   }
23195   __pyx_pybuffernd_elements.diminfo[0].strides = __pyx_pybuffernd_elements.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_elements.diminfo[0].shape = __pyx_pybuffernd_elements.rcbuffer->pybuffer.shape[0];
23196 
23197   /* "cylp/cy/CyClpSimplex.pyx":1469
23198  *         For cylp modeling tool see :mod:`cylp.python.modeling.CyLPModel`.
23199  *         '''
23200  *         self.CppSelf.addColumns(number, <double*>columnLower.data,             # <<<<<<<<<<<<<<
23201  *                                         <double*>columnUpper.data,
23202  *                                         <double*>objective.data,
23203  */
23204   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_number); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1469, __pyx_L1_error)
23205 
23206   /* "cylp/cy/CyClpSimplex.pyx":1474
23207  *                                         <int*>columnStarts.data,
23208  *                                         <int*>rows.data,
23209  *                                         <double*>elements.data)             # <<<<<<<<<<<<<<
23210  *
23211  *     def addConstraints(self, number,
23212  */
23213   __pyx_v_self->CppSelf->addColumns(__pyx_t_1, ((double *)__pyx_v_columnLower->data), ((double *)__pyx_v_columnUpper->data), ((double *)__pyx_v_objective->data), ((int *)__pyx_v_columnStarts->data), ((int *)__pyx_v_rows->data), ((double *)__pyx_v_elements->data));
23214 
23215   /* "cylp/cy/CyClpSimplex.pyx":1458
23216  *                                columnUpper, objective)
23217  *
23218  *     def addVariables(self, number,             # <<<<<<<<<<<<<<
23219  *                         np.ndarray[np.double_t, ndim=1] columnLower,
23220  *                         np.ndarray[np.double_t, ndim=1] columnUpper,
23221  */
23222 
23223   /* function exit code */
23224   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23225   goto __pyx_L0;
23226   __pyx_L1_error:;
23227   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
23228     __Pyx_PyThreadState_declare
23229     __Pyx_PyThreadState_assign
23230     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
23231     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
23232     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnStarts.rcbuffer->pybuffer);
23233     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
23234     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
23235     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_objective.rcbuffer->pybuffer);
23236     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows.rcbuffer->pybuffer);
23237   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
23238   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
23239   __pyx_r = NULL;
23240   goto __pyx_L2;
23241   __pyx_L0:;
23242   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
23243   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnStarts.rcbuffer->pybuffer);
23244   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
23245   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
23246   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_objective.rcbuffer->pybuffer);
23247   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows.rcbuffer->pybuffer);
23248   __pyx_L2:;
23249   __Pyx_XGIVEREF(__pyx_r);
23250   __Pyx_TraceReturn(__pyx_r, 0);
23251   __Pyx_RefNannyFinishContext();
23252   return __pyx_r;
23253 }
23254 
23255 /* "cylp/cy/CyClpSimplex.pyx":1476
23256  *                                         <double*>elements.data)
23257  *
23258  *     def addConstraints(self, number,             # <<<<<<<<<<<<<<
23259  *                         np.ndarray[np.double_t, ndim=1] rowLower,
23260  *                         np.ndarray[np.double_t, ndim=1] rowUpper,
23261  */
23262 
23263 /* Python wrapper */
23264 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_111addConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23265 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_110addConstraints[] = "CyClpSimplex.addConstraints(self, number, ndarray rowLower, ndarray rowUpper, ndarray rowStarts, ndarray columns, ndarray elements)\n\n        Add ``number`` constraints at once, CLP style.\n        For cylp modeling tool see :mod:`cylp.python.modeling.CyLPModel`.\n        ";
23266 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_111addConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23267   PyObject *__pyx_v_number = 0;
23268   PyArrayObject *__pyx_v_rowLower = 0;
23269   PyArrayObject *__pyx_v_rowUpper = 0;
23270   PyArrayObject *__pyx_v_rowStarts = 0;
23271   PyArrayObject *__pyx_v_columns = 0;
23272   PyArrayObject *__pyx_v_elements = 0;
23273   int __pyx_lineno = 0;
23274   const char *__pyx_filename = NULL;
23275   int __pyx_clineno = 0;
23276   PyObject *__pyx_r = 0;
23277   __Pyx_RefNannyDeclarations
23278   __Pyx_RefNannySetupContext("addConstraints (wrapper)", 0);
23279   {
23280     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_number,&__pyx_n_s_rowLower,&__pyx_n_s_rowUpper,&__pyx_n_s_rowStarts,&__pyx_n_s_columns,&__pyx_n_s_elements,0};
23281     PyObject* values[6] = {0,0,0,0,0,0};
23282     if (unlikely(__pyx_kwds)) {
23283       Py_ssize_t kw_args;
23284       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
23285       switch (pos_args) {
23286         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23287         CYTHON_FALLTHROUGH;
23288         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23289         CYTHON_FALLTHROUGH;
23290         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23291         CYTHON_FALLTHROUGH;
23292         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23293         CYTHON_FALLTHROUGH;
23294         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23295         CYTHON_FALLTHROUGH;
23296         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23297         CYTHON_FALLTHROUGH;
23298         case  0: break;
23299         default: goto __pyx_L5_argtuple_error;
23300       }
23301       kw_args = PyDict_Size(__pyx_kwds);
23302       switch (pos_args) {
23303         case  0:
23304         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_number)) != 0)) kw_args--;
23305         else goto __pyx_L5_argtuple_error;
23306         CYTHON_FALLTHROUGH;
23307         case  1:
23308         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowLower)) != 0)) kw_args--;
23309         else {
23310           __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 1); __PYX_ERR(0, 1476, __pyx_L3_error)
23311         }
23312         CYTHON_FALLTHROUGH;
23313         case  2:
23314         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowUpper)) != 0)) kw_args--;
23315         else {
23316           __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 2); __PYX_ERR(0, 1476, __pyx_L3_error)
23317         }
23318         CYTHON_FALLTHROUGH;
23319         case  3:
23320         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowStarts)) != 0)) kw_args--;
23321         else {
23322           __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 3); __PYX_ERR(0, 1476, __pyx_L3_error)
23323         }
23324         CYTHON_FALLTHROUGH;
23325         case  4:
23326         if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columns)) != 0)) kw_args--;
23327         else {
23328           __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 4); __PYX_ERR(0, 1476, __pyx_L3_error)
23329         }
23330         CYTHON_FALLTHROUGH;
23331         case  5:
23332         if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elements)) != 0)) kw_args--;
23333         else {
23334           __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 5); __PYX_ERR(0, 1476, __pyx_L3_error)
23335         }
23336       }
23337       if (unlikely(kw_args > 0)) {
23338         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addConstraints") < 0)) __PYX_ERR(0, 1476, __pyx_L3_error)
23339       }
23340     } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
23341       goto __pyx_L5_argtuple_error;
23342     } else {
23343       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23344       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23345       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23346       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23347       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23348       values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23349     }
23350     __pyx_v_number = values[0];
23351     __pyx_v_rowLower = ((PyArrayObject *)values[1]);
23352     __pyx_v_rowUpper = ((PyArrayObject *)values[2]);
23353     __pyx_v_rowStarts = ((PyArrayObject *)values[3]);
23354     __pyx_v_columns = ((PyArrayObject *)values[4]);
23355     __pyx_v_elements = ((PyArrayObject *)values[5]);
23356   }
23357   goto __pyx_L4_argument_unpacking_done;
23358   __pyx_L5_argtuple_error:;
23359   __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1476, __pyx_L3_error)
23360   __pyx_L3_error:;
23361   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
23362   __Pyx_RefNannyFinishContext();
23363   return NULL;
23364   __pyx_L4_argument_unpacking_done:;
23365   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowLower), __pyx_ptype_5numpy_ndarray, 1, "rowLower", 0))) __PYX_ERR(0, 1477, __pyx_L1_error)
23366   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowUpper), __pyx_ptype_5numpy_ndarray, 1, "rowUpper", 0))) __PYX_ERR(0, 1478, __pyx_L1_error)
23367   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowStarts), __pyx_ptype_5numpy_ndarray, 1, "rowStarts", 0))) __PYX_ERR(0, 1479, __pyx_L1_error)
23368   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columns), __pyx_ptype_5numpy_ndarray, 1, "columns", 0))) __PYX_ERR(0, 1480, __pyx_L1_error)
23369   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elements), __pyx_ptype_5numpy_ndarray, 1, "elements", 0))) __PYX_ERR(0, 1481, __pyx_L1_error)
23370   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_110addConstraints(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_number, __pyx_v_rowLower, __pyx_v_rowUpper, __pyx_v_rowStarts, __pyx_v_columns, __pyx_v_elements);
23371 
23372   /* function exit code */
23373   goto __pyx_L0;
23374   __pyx_L1_error:;
23375   __pyx_r = NULL;
23376   __pyx_L0:;
23377   __Pyx_RefNannyFinishContext();
23378   return __pyx_r;
23379 }
23380 
23381 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_110addConstraints(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_number, PyArrayObject *__pyx_v_rowLower, PyArrayObject *__pyx_v_rowUpper, PyArrayObject *__pyx_v_rowStarts, PyArrayObject *__pyx_v_columns, PyArrayObject *__pyx_v_elements) {
23382   __Pyx_LocalBuf_ND __pyx_pybuffernd_columns;
23383   __Pyx_Buffer __pyx_pybuffer_columns;
23384   __Pyx_LocalBuf_ND __pyx_pybuffernd_elements;
23385   __Pyx_Buffer __pyx_pybuffer_elements;
23386   __Pyx_LocalBuf_ND __pyx_pybuffernd_rowLower;
23387   __Pyx_Buffer __pyx_pybuffer_rowLower;
23388   __Pyx_LocalBuf_ND __pyx_pybuffernd_rowStarts;
23389   __Pyx_Buffer __pyx_pybuffer_rowStarts;
23390   __Pyx_LocalBuf_ND __pyx_pybuffernd_rowUpper;
23391   __Pyx_Buffer __pyx_pybuffer_rowUpper;
23392   PyObject *__pyx_r = NULL;
23393   __Pyx_TraceDeclarations
23394   __Pyx_RefNannyDeclarations
23395   int __pyx_t_1;
23396   int __pyx_lineno = 0;
23397   const char *__pyx_filename = NULL;
23398   int __pyx_clineno = 0;
23399   __Pyx_RefNannySetupContext("addConstraints", 0);
23400   __Pyx_TraceCall("addConstraints", __pyx_f[0], 1476, 0, __PYX_ERR(0, 1476, __pyx_L1_error));
23401   __pyx_pybuffer_rowLower.pybuffer.buf = NULL;
23402   __pyx_pybuffer_rowLower.refcount = 0;
23403   __pyx_pybuffernd_rowLower.data = NULL;
23404   __pyx_pybuffernd_rowLower.rcbuffer = &__pyx_pybuffer_rowLower;
23405   __pyx_pybuffer_rowUpper.pybuffer.buf = NULL;
23406   __pyx_pybuffer_rowUpper.refcount = 0;
23407   __pyx_pybuffernd_rowUpper.data = NULL;
23408   __pyx_pybuffernd_rowUpper.rcbuffer = &__pyx_pybuffer_rowUpper;
23409   __pyx_pybuffer_rowStarts.pybuffer.buf = NULL;
23410   __pyx_pybuffer_rowStarts.refcount = 0;
23411   __pyx_pybuffernd_rowStarts.data = NULL;
23412   __pyx_pybuffernd_rowStarts.rcbuffer = &__pyx_pybuffer_rowStarts;
23413   __pyx_pybuffer_columns.pybuffer.buf = NULL;
23414   __pyx_pybuffer_columns.refcount = 0;
23415   __pyx_pybuffernd_columns.data = NULL;
23416   __pyx_pybuffernd_columns.rcbuffer = &__pyx_pybuffer_columns;
23417   __pyx_pybuffer_elements.pybuffer.buf = NULL;
23418   __pyx_pybuffer_elements.refcount = 0;
23419   __pyx_pybuffernd_elements.data = NULL;
23420   __pyx_pybuffernd_elements.rcbuffer = &__pyx_pybuffer_elements;
23421   {
23422     __Pyx_BufFmt_StackElem __pyx_stack[1];
23423     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer, (PyObject*)__pyx_v_rowLower, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1476, __pyx_L1_error)
23424   }
23425   __pyx_pybuffernd_rowLower.diminfo[0].strides = __pyx_pybuffernd_rowLower.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rowLower.diminfo[0].shape = __pyx_pybuffernd_rowLower.rcbuffer->pybuffer.shape[0];
23426   {
23427     __Pyx_BufFmt_StackElem __pyx_stack[1];
23428     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer, (PyObject*)__pyx_v_rowUpper, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1476, __pyx_L1_error)
23429   }
23430   __pyx_pybuffernd_rowUpper.diminfo[0].strides = __pyx_pybuffernd_rowUpper.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rowUpper.diminfo[0].shape = __pyx_pybuffernd_rowUpper.rcbuffer->pybuffer.shape[0];
23431   {
23432     __Pyx_BufFmt_StackElem __pyx_stack[1];
23433     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rowStarts.rcbuffer->pybuffer, (PyObject*)__pyx_v_rowStarts, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1476, __pyx_L1_error)
23434   }
23435   __pyx_pybuffernd_rowStarts.diminfo[0].strides = __pyx_pybuffernd_rowStarts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rowStarts.diminfo[0].shape = __pyx_pybuffernd_rowStarts.rcbuffer->pybuffer.shape[0];
23436   {
23437     __Pyx_BufFmt_StackElem __pyx_stack[1];
23438     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_columns.rcbuffer->pybuffer, (PyObject*)__pyx_v_columns, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1476, __pyx_L1_error)
23439   }
23440   __pyx_pybuffernd_columns.diminfo[0].strides = __pyx_pybuffernd_columns.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_columns.diminfo[0].shape = __pyx_pybuffernd_columns.rcbuffer->pybuffer.shape[0];
23441   {
23442     __Pyx_BufFmt_StackElem __pyx_stack[1];
23443     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_elements.rcbuffer->pybuffer, (PyObject*)__pyx_v_elements, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1476, __pyx_L1_error)
23444   }
23445   __pyx_pybuffernd_elements.diminfo[0].strides = __pyx_pybuffernd_elements.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_elements.diminfo[0].shape = __pyx_pybuffernd_elements.rcbuffer->pybuffer.shape[0];
23446 
23447   /* "cylp/cy/CyClpSimplex.pyx":1486
23448  *         For cylp modeling tool see :mod:`cylp.python.modeling.CyLPModel`.
23449  *         '''
23450  *         self.CppSelf.addRows(number, <double*>rowLower.data,             # <<<<<<<<<<<<<<
23451  *                                     <double*>rowUpper.data,
23452  *                                     <int*>rowStarts.data,
23453  */
23454   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_number); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1486, __pyx_L1_error)
23455 
23456   /* "cylp/cy/CyClpSimplex.pyx":1490
23457  *                                     <int*>rowStarts.data,
23458  *                                     <int*>columns.data,
23459  *                                     <double*>elements.data)             # <<<<<<<<<<<<<<
23460  *
23461  *     cpdef int readMps(self, filename, int keepNames=False,
23462  */
23463   __pyx_v_self->CppSelf->addRows(__pyx_t_1, ((double *)__pyx_v_rowLower->data), ((double *)__pyx_v_rowUpper->data), ((int *)__pyx_v_rowStarts->data), ((int *)__pyx_v_columns->data), ((double *)__pyx_v_elements->data));
23464 
23465   /* "cylp/cy/CyClpSimplex.pyx":1476
23466  *                                         <double*>elements.data)
23467  *
23468  *     def addConstraints(self, number,             # <<<<<<<<<<<<<<
23469  *                         np.ndarray[np.double_t, ndim=1] rowLower,
23470  *                         np.ndarray[np.double_t, ndim=1] rowUpper,
23471  */
23472 
23473   /* function exit code */
23474   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23475   goto __pyx_L0;
23476   __pyx_L1_error:;
23477   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
23478     __Pyx_PyThreadState_declare
23479     __Pyx_PyThreadState_assign
23480     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
23481     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columns.rcbuffer->pybuffer);
23482     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
23483     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer);
23484     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowStarts.rcbuffer->pybuffer);
23485     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer);
23486   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
23487   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
23488   __pyx_r = NULL;
23489   goto __pyx_L2;
23490   __pyx_L0:;
23491   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columns.rcbuffer->pybuffer);
23492   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
23493   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer);
23494   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowStarts.rcbuffer->pybuffer);
23495   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer);
23496   __pyx_L2:;
23497   __Pyx_XGIVEREF(__pyx_r);
23498   __Pyx_TraceReturn(__pyx_r, 0);
23499   __Pyx_RefNannyFinishContext();
23500   return __pyx_r;
23501 }
23502 
23503 /* "cylp/cy/CyClpSimplex.pyx":1492
23504  *                                     <double*>elements.data)
23505  *
23506  *     cpdef int readMps(self, filename, int keepNames=False,             # <<<<<<<<<<<<<<
23507  *             int ignoreErrors=False) except *:
23508  *         '''
23509  */
23510 
23511 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23512 static int __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_filename, int __pyx_skip_dispatch, struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps *__pyx_optional_args) {
23513   int __pyx_v_keepNames = ((int)0);
23514 
23515   /* "cylp/cy/CyClpSimplex.pyx":1493
23516  *
23517  *     cpdef int readMps(self, filename, int keepNames=False,
23518  *             int ignoreErrors=False) except *:             # <<<<<<<<<<<<<<
23519  *         '''
23520  *         Read an mps file. See this :ref:`modeling example <modeling-usage>`.
23521  */
23522   int __pyx_v_ignoreErrors = ((int)0);
23523   CYTHON_UNUSED PyObject *__pyx_v_name = NULL;
23524   PyObject *__pyx_v_ext = NULL;
23525   PyObject *__pyx_v_m = NULL;
23526   CYTHON_UNUSED PyObject *__pyx_v_ret = NULL;
23527   int __pyx_r;
23528   __Pyx_TraceDeclarations
23529   __Pyx_RefNannyDeclarations
23530   PyObject *__pyx_t_1 = NULL;
23531   PyObject *__pyx_t_2 = NULL;
23532   PyObject *__pyx_t_3 = NULL;
23533   PyObject *__pyx_t_4 = NULL;
23534   PyObject *__pyx_t_5 = NULL;
23535   PyObject *__pyx_t_6 = NULL;
23536   int __pyx_t_7;
23537   PyObject *__pyx_t_8 = NULL;
23538   PyObject *(*__pyx_t_9)(PyObject *);
23539   int __pyx_t_10;
23540   int __pyx_t_11;
23541   char *__pyx_t_12;
23542   int __pyx_lineno = 0;
23543   const char *__pyx_filename = NULL;
23544   int __pyx_clineno = 0;
23545   __Pyx_RefNannySetupContext("readMps", 0);
23546   __Pyx_TraceCall("readMps", __pyx_f[0], 1492, 0, __PYX_ERR(0, 1492, __pyx_L1_error));
23547   if (__pyx_optional_args) {
23548     if (__pyx_optional_args->__pyx_n > 0) {
23549       __pyx_v_keepNames = __pyx_optional_args->keepNames;
23550       if (__pyx_optional_args->__pyx_n > 1) {
23551         __pyx_v_ignoreErrors = __pyx_optional_args->ignoreErrors;
23552       }
23553     }
23554   }
23555   __Pyx_INCREF(__pyx_v_filename);
23556 
23557   /* "cylp/cy/CyClpSimplex.pyx":1492
23558  *                                     <double*>elements.data)
23559  *
23560  *     cpdef int readMps(self, filename, int keepNames=False,             # <<<<<<<<<<<<<<
23561  *             int ignoreErrors=False) except *:
23562  *         '''
23563  */
23564   /* Check if called by wrapper */
23565   if (unlikely(__pyx_skip_dispatch)) ;
23566   /* Check if overridden in Python */
23567   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
23568     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
23569     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
23570     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
23571       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
23572       #endif
23573       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_readMps); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1492, __pyx_L1_error)
23574       __Pyx_GOTREF(__pyx_t_1);
23575       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps)) {
23576         __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_keepNames); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1492, __pyx_L1_error)
23577         __Pyx_GOTREF(__pyx_t_3);
23578         __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_ignoreErrors); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1492, __pyx_L1_error)
23579         __Pyx_GOTREF(__pyx_t_4);
23580         __Pyx_INCREF(__pyx_t_1);
23581         __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
23582         __pyx_t_7 = 0;
23583         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
23584           __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
23585           if (likely(__pyx_t_6)) {
23586             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
23587             __Pyx_INCREF(__pyx_t_6);
23588             __Pyx_INCREF(function);
23589             __Pyx_DECREF_SET(__pyx_t_5, function);
23590             __pyx_t_7 = 1;
23591           }
23592         }
23593         #if CYTHON_FAST_PYCALL
23594         if (PyFunction_Check(__pyx_t_5)) {
23595           PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_filename, __pyx_t_3, __pyx_t_4};
23596           __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1492, __pyx_L1_error)
23597           __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23598           __Pyx_GOTREF(__pyx_t_2);
23599           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23600           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
23601         } else
23602         #endif
23603         #if CYTHON_FAST_PYCCALL
23604         if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
23605           PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_filename, __pyx_t_3, __pyx_t_4};
23606           __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1492, __pyx_L1_error)
23607           __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
23608           __Pyx_GOTREF(__pyx_t_2);
23609           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23610           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
23611         } else
23612         #endif
23613         {
23614           __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1492, __pyx_L1_error)
23615           __Pyx_GOTREF(__pyx_t_8);
23616           if (__pyx_t_6) {
23617             __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
23618           }
23619           __Pyx_INCREF(__pyx_v_filename);
23620           __Pyx_GIVEREF(__pyx_v_filename);
23621           PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_filename);
23622           __Pyx_GIVEREF(__pyx_t_3);
23623           PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_3);
23624           __Pyx_GIVEREF(__pyx_t_4);
23625           PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_4);
23626           __pyx_t_3 = 0;
23627           __pyx_t_4 = 0;
23628           __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1492, __pyx_L1_error)
23629           __Pyx_GOTREF(__pyx_t_2);
23630           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23631         }
23632         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23633         __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1492, __pyx_L1_error)
23634         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23635         __pyx_r = __pyx_t_7;
23636         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23637         goto __pyx_L0;
23638       }
23639       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
23640       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
23641       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
23642       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
23643         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
23644       }
23645       #endif
23646       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23647       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
23648     }
23649     #endif
23650   }
23651 
23652   /* "cylp/cy/CyClpSimplex.pyx":1497
23653  *         Read an mps file. See this :ref:`modeling example <modeling-usage>`.
23654  *         '''
23655  *         filename = filename.encode('ascii')             # <<<<<<<<<<<<<<
23656  *         name, ext = os.path.splitext(filename)
23657  *         if ext not in [b'.mps', b'.qps']:
23658  */
23659   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_filename, __pyx_n_s_encode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1497, __pyx_L1_error)
23660   __Pyx_GOTREF(__pyx_t_2);
23661   __pyx_t_5 = NULL;
23662   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
23663     __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
23664     if (likely(__pyx_t_5)) {
23665       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23666       __Pyx_INCREF(__pyx_t_5);
23667       __Pyx_INCREF(function);
23668       __Pyx_DECREF_SET(__pyx_t_2, function);
23669     }
23670   }
23671   __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_n_s_ascii) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_s_ascii);
23672   __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
23673   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1497, __pyx_L1_error)
23674   __Pyx_GOTREF(__pyx_t_1);
23675   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23676   __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_1);
23677   __pyx_t_1 = 0;
23678 
23679   /* "cylp/cy/CyClpSimplex.pyx":1498
23680  *         '''
23681  *         filename = filename.encode('ascii')
23682  *         name, ext = os.path.splitext(filename)             # <<<<<<<<<<<<<<
23683  *         if ext not in [b'.mps', b'.qps']:
23684  *             print('unrecognised extension %s' % ext)
23685  */
23686   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1498, __pyx_L1_error)
23687   __Pyx_GOTREF(__pyx_t_2);
23688   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1498, __pyx_L1_error)
23689   __Pyx_GOTREF(__pyx_t_5);
23690   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23691   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_splitext); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1498, __pyx_L1_error)
23692   __Pyx_GOTREF(__pyx_t_2);
23693   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23694   __pyx_t_5 = NULL;
23695   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
23696     __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
23697     if (likely(__pyx_t_5)) {
23698       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23699       __Pyx_INCREF(__pyx_t_5);
23700       __Pyx_INCREF(function);
23701       __Pyx_DECREF_SET(__pyx_t_2, function);
23702     }
23703   }
23704   __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_filename);
23705   __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
23706   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1498, __pyx_L1_error)
23707   __Pyx_GOTREF(__pyx_t_1);
23708   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23709   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
23710     PyObject* sequence = __pyx_t_1;
23711     Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
23712     if (unlikely(size != 2)) {
23713       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
23714       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
23715       __PYX_ERR(0, 1498, __pyx_L1_error)
23716     }
23717     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
23718     if (likely(PyTuple_CheckExact(sequence))) {
23719       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
23720       __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
23721     } else {
23722       __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
23723       __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
23724     }
23725     __Pyx_INCREF(__pyx_t_2);
23726     __Pyx_INCREF(__pyx_t_5);
23727     #else
23728     __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1498, __pyx_L1_error)
23729     __Pyx_GOTREF(__pyx_t_2);
23730     __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1498, __pyx_L1_error)
23731     __Pyx_GOTREF(__pyx_t_5);
23732     #endif
23733     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23734   } else {
23735     Py_ssize_t index = -1;
23736     __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1498, __pyx_L1_error)
23737     __Pyx_GOTREF(__pyx_t_8);
23738     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23739     __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
23740     index = 0; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
23741     __Pyx_GOTREF(__pyx_t_2);
23742     index = 1; __pyx_t_5 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L3_unpacking_failed;
23743     __Pyx_GOTREF(__pyx_t_5);
23744     if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 1498, __pyx_L1_error)
23745     __pyx_t_9 = NULL;
23746     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23747     goto __pyx_L4_unpacking_done;
23748     __pyx_L3_unpacking_failed:;
23749     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
23750     __pyx_t_9 = NULL;
23751     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
23752     __PYX_ERR(0, 1498, __pyx_L1_error)
23753     __pyx_L4_unpacking_done:;
23754   }
23755   __pyx_v_name = __pyx_t_2;
23756   __pyx_t_2 = 0;
23757   __pyx_v_ext = __pyx_t_5;
23758   __pyx_t_5 = 0;
23759 
23760   /* "cylp/cy/CyClpSimplex.pyx":1499
23761  *         filename = filename.encode('ascii')
23762  *         name, ext = os.path.splitext(filename)
23763  *         if ext not in [b'.mps', b'.qps']:             # <<<<<<<<<<<<<<
23764  *             print('unrecognised extension %s' % ext)
23765  *             return -1
23766  */
23767   __Pyx_INCREF(__pyx_v_ext);
23768   __pyx_t_1 = __pyx_v_ext;
23769   __pyx_t_11 = (__Pyx_PyBytes_Equals(__pyx_t_1, __pyx_kp_b_mps, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1499, __pyx_L1_error)
23770   if (__pyx_t_11) {
23771   } else {
23772     __pyx_t_10 = __pyx_t_11;
23773     goto __pyx_L6_bool_binop_done;
23774   }
23775   __pyx_t_11 = (__Pyx_PyBytes_Equals(__pyx_t_1, __pyx_kp_b_qps, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1499, __pyx_L1_error)
23776   __pyx_t_10 = __pyx_t_11;
23777   __pyx_L6_bool_binop_done:;
23778   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23779   __pyx_t_11 = (__pyx_t_10 != 0);
23780   if (__pyx_t_11) {
23781 
23782     /* "cylp/cy/CyClpSimplex.pyx":1500
23783  *         name, ext = os.path.splitext(filename)
23784  *         if ext not in [b'.mps', b'.qps']:
23785  *             print('unrecognised extension %s' % ext)             # <<<<<<<<<<<<<<
23786  *             return -1
23787  *
23788  */
23789     __pyx_t_1 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unrecognised_extension_s, __pyx_v_ext); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1500, __pyx_L1_error)
23790     __Pyx_GOTREF(__pyx_t_1);
23791     __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1500, __pyx_L1_error)
23792     __Pyx_GOTREF(__pyx_t_5);
23793     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23794     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23795 
23796     /* "cylp/cy/CyClpSimplex.pyx":1501
23797  *         if ext not in [b'.mps', b'.qps']:
23798  *             print('unrecognised extension %s' % ext)
23799  *             return -1             # <<<<<<<<<<<<<<
23800  *
23801  *         if ext == b'.mps':
23802  */
23803     __pyx_r = -1;
23804     goto __pyx_L0;
23805 
23806     /* "cylp/cy/CyClpSimplex.pyx":1499
23807  *         filename = filename.encode('ascii')
23808  *         name, ext = os.path.splitext(filename)
23809  *         if ext not in [b'.mps', b'.qps']:             # <<<<<<<<<<<<<<
23810  *             print('unrecognised extension %s' % ext)
23811  *             return -1
23812  */
23813   }
23814 
23815   /* "cylp/cy/CyClpSimplex.pyx":1503
23816  *             return -1
23817  *
23818  *         if ext == b'.mps':             # <<<<<<<<<<<<<<
23819  *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)
23820  *         else:
23821  */
23822   __pyx_t_11 = (__Pyx_PyBytes_Equals(__pyx_v_ext, __pyx_kp_b_mps, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1503, __pyx_L1_error)
23823   if (__pyx_t_11) {
23824 
23825     /* "cylp/cy/CyClpSimplex.pyx":1504
23826  *
23827  *         if ext == b'.mps':
23828  *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)             # <<<<<<<<<<<<<<
23829  *         else:
23830  *             m = CyCoinMpsIO.CyCoinMpsIO()
23831  */
23832     __pyx_t_12 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_12) && PyErr_Occurred())) __PYX_ERR(0, 1504, __pyx_L1_error)
23833     __pyx_r = __pyx_v_self->CppSelf->readMps(__pyx_t_12, __pyx_v_keepNames, __pyx_v_ignoreErrors);
23834     goto __pyx_L0;
23835 
23836     /* "cylp/cy/CyClpSimplex.pyx":1503
23837  *             return -1
23838  *
23839  *         if ext == b'.mps':             # <<<<<<<<<<<<<<
23840  *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)
23841  *         else:
23842  */
23843   }
23844 
23845   /* "cylp/cy/CyClpSimplex.pyx":1506
23846  *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)
23847  *         else:
23848  *             m = CyCoinMpsIO.CyCoinMpsIO()             # <<<<<<<<<<<<<<
23849  *             ret = m.readMps(filename)
23850  *             self._Hessian = m.Hessian
23851  */
23852   /*else*/ {
23853     __pyx_t_5 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1506, __pyx_L1_error)
23854     __Pyx_GOTREF(__pyx_t_5);
23855     __pyx_v_m = __pyx_t_5;
23856     __pyx_t_5 = 0;
23857 
23858     /* "cylp/cy/CyClpSimplex.pyx":1507
23859  *         else:
23860  *             m = CyCoinMpsIO.CyCoinMpsIO()
23861  *             ret = m.readMps(filename)             # <<<<<<<<<<<<<<
23862  *             self._Hessian = m.Hessian
23863  *
23864  */
23865     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_readMps); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error)
23866     __Pyx_GOTREF(__pyx_t_1);
23867     __pyx_t_2 = NULL;
23868     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
23869       __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
23870       if (likely(__pyx_t_2)) {
23871         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
23872         __Pyx_INCREF(__pyx_t_2);
23873         __Pyx_INCREF(function);
23874         __Pyx_DECREF_SET(__pyx_t_1, function);
23875       }
23876     }
23877     __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename);
23878     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
23879     if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1507, __pyx_L1_error)
23880     __Pyx_GOTREF(__pyx_t_5);
23881     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23882     __pyx_v_ret = __pyx_t_5;
23883     __pyx_t_5 = 0;
23884 
23885     /* "cylp/cy/CyClpSimplex.pyx":1508
23886  *             m = CyCoinMpsIO.CyCoinMpsIO()
23887  *             ret = m.readMps(filename)
23888  *             self._Hessian = m.Hessian             # <<<<<<<<<<<<<<
23889  *
23890  *             # Since CyCoinMpsIO.readMps seems to be different from ClpModle.readMps
23891  */
23892     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_Hessian); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1508, __pyx_L1_error)
23893     __Pyx_GOTREF(__pyx_t_5);
23894     __Pyx_GIVEREF(__pyx_t_5);
23895     __Pyx_GOTREF(__pyx_v_self->_Hessian);
23896     __Pyx_DECREF(__pyx_v_self->_Hessian);
23897     __pyx_v_self->_Hessian = __pyx_t_5;
23898     __pyx_t_5 = 0;
23899 
23900     /* "cylp/cy/CyClpSimplex.pyx":1518
23901  *             #return ret
23902  *
23903  *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)             # <<<<<<<<<<<<<<
23904  *
23905  *
23906  */
23907     __pyx_t_12 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_12) && PyErr_Occurred())) __PYX_ERR(0, 1518, __pyx_L1_error)
23908     __pyx_r = __pyx_v_self->CppSelf->readMps(__pyx_t_12, __pyx_v_keepNames, __pyx_v_ignoreErrors);
23909     goto __pyx_L0;
23910   }
23911 
23912   /* "cylp/cy/CyClpSimplex.pyx":1492
23913  *                                     <double*>elements.data)
23914  *
23915  *     cpdef int readMps(self, filename, int keepNames=False,             # <<<<<<<<<<<<<<
23916  *             int ignoreErrors=False) except *:
23917  *         '''
23918  */
23919 
23920   /* function exit code */
23921   __pyx_L1_error:;
23922   __Pyx_XDECREF(__pyx_t_1);
23923   __Pyx_XDECREF(__pyx_t_2);
23924   __Pyx_XDECREF(__pyx_t_3);
23925   __Pyx_XDECREF(__pyx_t_4);
23926   __Pyx_XDECREF(__pyx_t_5);
23927   __Pyx_XDECREF(__pyx_t_6);
23928   __Pyx_XDECREF(__pyx_t_8);
23929   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
23930   __pyx_r = 0;
23931   __pyx_L0:;
23932   __Pyx_XDECREF(__pyx_v_name);
23933   __Pyx_XDECREF(__pyx_v_ext);
23934   __Pyx_XDECREF(__pyx_v_m);
23935   __Pyx_XDECREF(__pyx_v_ret);
23936   __Pyx_XDECREF(__pyx_v_filename);
23937   __Pyx_TraceReturn(Py_None, 0);
23938   __Pyx_RefNannyFinishContext();
23939   return __pyx_r;
23940 }
23941 
23942 /* Python wrapper */
23943 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23944 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_112readMps[] = "CyClpSimplex.readMps(self, filename, int keepNames=False, int ignoreErrors=False) -> int\n\n        Read an mps file. See this :ref:`modeling example <modeling-usage>`.\n        ";
23945 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23946   PyObject *__pyx_v_filename = 0;
23947   int __pyx_v_keepNames;
23948   int __pyx_v_ignoreErrors;
23949   int __pyx_lineno = 0;
23950   const char *__pyx_filename = NULL;
23951   int __pyx_clineno = 0;
23952   PyObject *__pyx_r = 0;
23953   __Pyx_RefNannyDeclarations
23954   __Pyx_RefNannySetupContext("readMps (wrapper)", 0);
23955   {
23956     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_keepNames,&__pyx_n_s_ignoreErrors,0};
23957     PyObject* values[3] = {0,0,0};
23958     if (unlikely(__pyx_kwds)) {
23959       Py_ssize_t kw_args;
23960       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
23961       switch (pos_args) {
23962         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23963         CYTHON_FALLTHROUGH;
23964         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23965         CYTHON_FALLTHROUGH;
23966         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23967         CYTHON_FALLTHROUGH;
23968         case  0: break;
23969         default: goto __pyx_L5_argtuple_error;
23970       }
23971       kw_args = PyDict_Size(__pyx_kwds);
23972       switch (pos_args) {
23973         case  0:
23974         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--;
23975         else goto __pyx_L5_argtuple_error;
23976         CYTHON_FALLTHROUGH;
23977         case  1:
23978         if (kw_args > 0) {
23979           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepNames);
23980           if (value) { values[1] = value; kw_args--; }
23981         }
23982         CYTHON_FALLTHROUGH;
23983         case  2:
23984         if (kw_args > 0) {
23985           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ignoreErrors);
23986           if (value) { values[2] = value; kw_args--; }
23987         }
23988       }
23989       if (unlikely(kw_args > 0)) {
23990         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "readMps") < 0)) __PYX_ERR(0, 1492, __pyx_L3_error)
23991       }
23992     } else {
23993       switch (PyTuple_GET_SIZE(__pyx_args)) {
23994         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23995         CYTHON_FALLTHROUGH;
23996         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23997         CYTHON_FALLTHROUGH;
23998         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23999         break;
24000         default: goto __pyx_L5_argtuple_error;
24001       }
24002     }
24003     __pyx_v_filename = values[0];
24004     if (values[1]) {
24005       __pyx_v_keepNames = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_keepNames == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1492, __pyx_L3_error)
24006     } else {
24007       __pyx_v_keepNames = ((int)0);
24008     }
24009     if (values[2]) {
24010       __pyx_v_ignoreErrors = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_ignoreErrors == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1493, __pyx_L3_error)
24011     } else {
24012 
24013       /* "cylp/cy/CyClpSimplex.pyx":1493
24014  *
24015  *     cpdef int readMps(self, filename, int keepNames=False,
24016  *             int ignoreErrors=False) except *:             # <<<<<<<<<<<<<<
24017  *         '''
24018  *         Read an mps file. See this :ref:`modeling example <modeling-usage>`.
24019  */
24020       __pyx_v_ignoreErrors = ((int)0);
24021     }
24022   }
24023   goto __pyx_L4_argument_unpacking_done;
24024   __pyx_L5_argtuple_error:;
24025   __Pyx_RaiseArgtupleInvalid("readMps", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1492, __pyx_L3_error)
24026   __pyx_L3_error:;
24027   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
24028   __Pyx_RefNannyFinishContext();
24029   return NULL;
24030   __pyx_L4_argument_unpacking_done:;
24031   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_112readMps(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_filename, __pyx_v_keepNames, __pyx_v_ignoreErrors);
24032 
24033   /* "cylp/cy/CyClpSimplex.pyx":1492
24034  *                                     <double*>elements.data)
24035  *
24036  *     cpdef int readMps(self, filename, int keepNames=False,             # <<<<<<<<<<<<<<
24037  *             int ignoreErrors=False) except *:
24038  *         '''
24039  */
24040 
24041   /* function exit code */
24042   __Pyx_RefNannyFinishContext();
24043   return __pyx_r;
24044 }
24045 
24046 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_112readMps(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_filename, int __pyx_v_keepNames, int __pyx_v_ignoreErrors) {
24047   PyObject *__pyx_r = NULL;
24048   __Pyx_TraceDeclarations
24049   __Pyx_RefNannyDeclarations
24050   int __pyx_t_1;
24051   struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps __pyx_t_2;
24052   PyObject *__pyx_t_3 = NULL;
24053   int __pyx_lineno = 0;
24054   const char *__pyx_filename = NULL;
24055   int __pyx_clineno = 0;
24056   __Pyx_RefNannySetupContext("readMps", 0);
24057   __Pyx_TraceCall("readMps (wrapper)", __pyx_f[0], 1492, 0, __PYX_ERR(0, 1492, __pyx_L1_error));
24058   __Pyx_XDECREF(__pyx_r);
24059   __pyx_t_2.__pyx_n = 2;
24060   __pyx_t_2.keepNames = __pyx_v_keepNames;
24061   __pyx_t_2.ignoreErrors = __pyx_v_ignoreErrors;
24062   __pyx_t_1 = __pyx_vtabptr_4cylp_2cy_12CyClpSimplex_CyClpSimplex->readMps(__pyx_v_self, __pyx_v_filename, 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1492, __pyx_L1_error)
24063   __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1492, __pyx_L1_error)
24064   __Pyx_GOTREF(__pyx_t_3);
24065   __pyx_r = __pyx_t_3;
24066   __pyx_t_3 = 0;
24067   goto __pyx_L0;
24068 
24069   /* function exit code */
24070   __pyx_L1_error:;
24071   __Pyx_XDECREF(__pyx_t_3);
24072   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
24073   __pyx_r = NULL;
24074   __pyx_L0:;
24075   __Pyx_XGIVEREF(__pyx_r);
24076   __Pyx_TraceReturn(__pyx_r, 0);
24077   __Pyx_RefNannyFinishContext();
24078   return __pyx_r;
24079 }
24080 
24081 /* "cylp/cy/CyClpSimplex.pyx":1521
24082  *
24083  *
24084  *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):             # <<<<<<<<<<<<<<
24085  *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:
24086  *             return None
24087  */
24088 
24089 /* Python wrapper */
24090 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_115extractCyLPModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
24091 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_114extractCyLPModel[] = "CyClpSimplex.extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False)";
24092 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_115extractCyLPModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
24093   PyObject *__pyx_v_fileName = 0;
24094   PyObject *__pyx_v_keepNames = 0;
24095   PyObject *__pyx_v_ignoreErrors = 0;
24096   int __pyx_lineno = 0;
24097   const char *__pyx_filename = NULL;
24098   int __pyx_clineno = 0;
24099   PyObject *__pyx_r = 0;
24100   __Pyx_RefNannyDeclarations
24101   __Pyx_RefNannySetupContext("extractCyLPModel (wrapper)", 0);
24102   {
24103     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fileName,&__pyx_n_s_keepNames,&__pyx_n_s_ignoreErrors,0};
24104     PyObject* values[3] = {0,0,0};
24105     values[1] = ((PyObject *)Py_False);
24106     values[2] = ((PyObject *)Py_False);
24107     if (unlikely(__pyx_kwds)) {
24108       Py_ssize_t kw_args;
24109       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
24110       switch (pos_args) {
24111         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24112         CYTHON_FALLTHROUGH;
24113         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24114         CYTHON_FALLTHROUGH;
24115         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24116         CYTHON_FALLTHROUGH;
24117         case  0: break;
24118         default: goto __pyx_L5_argtuple_error;
24119       }
24120       kw_args = PyDict_Size(__pyx_kwds);
24121       switch (pos_args) {
24122         case  0:
24123         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fileName)) != 0)) kw_args--;
24124         else goto __pyx_L5_argtuple_error;
24125         CYTHON_FALLTHROUGH;
24126         case  1:
24127         if (kw_args > 0) {
24128           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepNames);
24129           if (value) { values[1] = value; kw_args--; }
24130         }
24131         CYTHON_FALLTHROUGH;
24132         case  2:
24133         if (kw_args > 0) {
24134           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ignoreErrors);
24135           if (value) { values[2] = value; kw_args--; }
24136         }
24137       }
24138       if (unlikely(kw_args > 0)) {
24139         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "extractCyLPModel") < 0)) __PYX_ERR(0, 1521, __pyx_L3_error)
24140       }
24141     } else {
24142       switch (PyTuple_GET_SIZE(__pyx_args)) {
24143         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24144         CYTHON_FALLTHROUGH;
24145         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24146         CYTHON_FALLTHROUGH;
24147         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24148         break;
24149         default: goto __pyx_L5_argtuple_error;
24150       }
24151     }
24152     __pyx_v_fileName = values[0];
24153     __pyx_v_keepNames = values[1];
24154     __pyx_v_ignoreErrors = values[2];
24155   }
24156   goto __pyx_L4_argument_unpacking_done;
24157   __pyx_L5_argtuple_error:;
24158   __Pyx_RaiseArgtupleInvalid("extractCyLPModel", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1521, __pyx_L3_error)
24159   __pyx_L3_error:;
24160   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.extractCyLPModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
24161   __Pyx_RefNannyFinishContext();
24162   return NULL;
24163   __pyx_L4_argument_unpacking_done:;
24164   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_114extractCyLPModel(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_fileName, __pyx_v_keepNames, __pyx_v_ignoreErrors);
24165 
24166   /* function exit code */
24167   __Pyx_RefNannyFinishContext();
24168   return __pyx_r;
24169 }
24170 
24171 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_114extractCyLPModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_fileName, PyObject *__pyx_v_keepNames, PyObject *__pyx_v_ignoreErrors) {
24172   PyObject *__pyx_v_m = NULL;
24173   PyObject *__pyx_v_x = NULL;
24174   PyObject *__pyx_v_c_up = NULL;
24175   PyObject *__pyx_v_c_low = NULL;
24176   PyObject *__pyx_v_mat = NULL;
24177   PyObject *__pyx_v_C = NULL;
24178   PyObject *__pyx_v_x_up = NULL;
24179   PyObject *__pyx_v_x_low = NULL;
24180   PyObject *__pyx_r = NULL;
24181   __Pyx_TraceDeclarations
24182   __Pyx_RefNannyDeclarations
24183   int __pyx_t_1;
24184   int __pyx_t_2;
24185   int __pyx_t_3;
24186   struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps __pyx_t_4;
24187   int __pyx_t_5;
24188   PyObject *__pyx_t_6 = NULL;
24189   PyObject *__pyx_t_7 = NULL;
24190   PyObject *__pyx_t_8 = NULL;
24191   PyObject *__pyx_t_9 = NULL;
24192   PyObject *__pyx_t_10 = NULL;
24193   PyObject *__pyx_t_11 = NULL;
24194   int __pyx_lineno = 0;
24195   const char *__pyx_filename = NULL;
24196   int __pyx_clineno = 0;
24197   __Pyx_RefNannySetupContext("extractCyLPModel", 0);
24198   __Pyx_TraceCall("extractCyLPModel", __pyx_f[0], 1521, 0, __PYX_ERR(0, 1521, __pyx_L1_error));
24199 
24200   /* "cylp/cy/CyClpSimplex.pyx":1522
24201  *
24202  *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):
24203  *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:             # <<<<<<<<<<<<<<
24204  *             return None
24205  *         m = CyLPModel()
24206  */
24207   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_keepNames); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1522, __pyx_L1_error)
24208   __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_ignoreErrors); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1522, __pyx_L1_error)
24209   __pyx_t_4.__pyx_n = 2;
24210   __pyx_t_4.keepNames = __pyx_t_1;
24211   __pyx_t_4.ignoreErrors = __pyx_t_2;
24212   __pyx_t_3 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->readMps(__pyx_v_self, __pyx_v_fileName, 0, &__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1522, __pyx_L1_error)
24213   __pyx_t_5 = ((__pyx_t_3 != 0) != 0);
24214   if (__pyx_t_5) {
24215 
24216     /* "cylp/cy/CyClpSimplex.pyx":1523
24217  *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):
24218  *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:
24219  *             return None             # <<<<<<<<<<<<<<
24220  *         m = CyLPModel()
24221  *
24222  */
24223     __Pyx_XDECREF(__pyx_r);
24224     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
24225     goto __pyx_L0;
24226 
24227     /* "cylp/cy/CyClpSimplex.pyx":1522
24228  *
24229  *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):
24230  *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:             # <<<<<<<<<<<<<<
24231  *             return None
24232  *         m = CyLPModel()
24233  */
24234   }
24235 
24236   /* "cylp/cy/CyClpSimplex.pyx":1524
24237  *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:
24238  *             return None
24239  *         m = CyLPModel()             # <<<<<<<<<<<<<<
24240  *
24241  *         x = m.addVariable('x', self.nVariables)
24242  */
24243   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1524, __pyx_L1_error)
24244   __Pyx_GOTREF(__pyx_t_7);
24245   __pyx_t_8 = NULL;
24246   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
24247     __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
24248     if (likely(__pyx_t_8)) {
24249       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
24250       __Pyx_INCREF(__pyx_t_8);
24251       __Pyx_INCREF(function);
24252       __Pyx_DECREF_SET(__pyx_t_7, function);
24253     }
24254   }
24255   __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
24256   __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
24257   if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1524, __pyx_L1_error)
24258   __Pyx_GOTREF(__pyx_t_6);
24259   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
24260   __pyx_v_m = __pyx_t_6;
24261   __pyx_t_6 = 0;
24262 
24263   /* "cylp/cy/CyClpSimplex.pyx":1526
24264  *         m = CyLPModel()
24265  *
24266  *         x = m.addVariable('x', self.nVariables)             # <<<<<<<<<<<<<<
24267  *
24268  *         # Copy is crucial. Memory space should be different than
24269  */
24270   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_addVariable); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1526, __pyx_L1_error)
24271   __Pyx_GOTREF(__pyx_t_7);
24272   __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1526, __pyx_L1_error)
24273   __Pyx_GOTREF(__pyx_t_8);
24274   __pyx_t_9 = NULL;
24275   __pyx_t_3 = 0;
24276   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
24277     __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
24278     if (likely(__pyx_t_9)) {
24279       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
24280       __Pyx_INCREF(__pyx_t_9);
24281       __Pyx_INCREF(function);
24282       __Pyx_DECREF_SET(__pyx_t_7, function);
24283       __pyx_t_3 = 1;
24284     }
24285   }
24286   #if CYTHON_FAST_PYCALL
24287   if (PyFunction_Check(__pyx_t_7)) {
24288     PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_n_s_x, __pyx_t_8};
24289     __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1526, __pyx_L1_error)
24290     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
24291     __Pyx_GOTREF(__pyx_t_6);
24292     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
24293   } else
24294   #endif
24295   #if CYTHON_FAST_PYCCALL
24296   if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
24297     PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_n_s_x, __pyx_t_8};
24298     __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1526, __pyx_L1_error)
24299     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
24300     __Pyx_GOTREF(__pyx_t_6);
24301     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
24302   } else
24303   #endif
24304   {
24305     __pyx_t_10 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1526, __pyx_L1_error)
24306     __Pyx_GOTREF(__pyx_t_10);
24307     if (__pyx_t_9) {
24308       __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL;
24309     }
24310     __Pyx_INCREF(__pyx_n_s_x);
24311     __Pyx_GIVEREF(__pyx_n_s_x);
24312     PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_3, __pyx_n_s_x);
24313     __Pyx_GIVEREF(__pyx_t_8);
24314     PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_3, __pyx_t_8);
24315     __pyx_t_8 = 0;
24316     __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1526, __pyx_L1_error)
24317     __Pyx_GOTREF(__pyx_t_6);
24318     __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
24319   }
24320   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
24321   __pyx_v_x = __pyx_t_6;
24322   __pyx_t_6 = 0;
24323 
24324   /* "cylp/cy/CyClpSimplex.pyx":1530
24325  *         # Copy is crucial. Memory space should be different than
24326  *         # that of Clp. Else, a resize will ruin these.
24327  *         c_up = CyLPArray(self.constraintsUpper).copy()             # <<<<<<<<<<<<<<
24328  *         c_low = CyLPArray(self.constraintsLower).copy()
24329  *
24330  */
24331   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1530, __pyx_L1_error)
24332   __Pyx_GOTREF(__pyx_t_10);
24333   __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_constraintsUpper); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1530, __pyx_L1_error)
24334   __Pyx_GOTREF(__pyx_t_8);
24335   __pyx_t_9 = NULL;
24336   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
24337     __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
24338     if (likely(__pyx_t_9)) {
24339       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
24340       __Pyx_INCREF(__pyx_t_9);
24341       __Pyx_INCREF(function);
24342       __Pyx_DECREF_SET(__pyx_t_10, function);
24343     }
24344   }
24345   __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_8);
24346   __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
24347   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
24348   if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1530, __pyx_L1_error)
24349   __Pyx_GOTREF(__pyx_t_7);
24350   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
24351   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_copy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1530, __pyx_L1_error)
24352   __Pyx_GOTREF(__pyx_t_10);
24353   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
24354   __pyx_t_7 = NULL;
24355   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
24356     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10);
24357     if (likely(__pyx_t_7)) {
24358       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
24359       __Pyx_INCREF(__pyx_t_7);
24360       __Pyx_INCREF(function);
24361       __Pyx_DECREF_SET(__pyx_t_10, function);
24362     }
24363   }
24364   __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_10);
24365   __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
24366   if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1530, __pyx_L1_error)
24367   __Pyx_GOTREF(__pyx_t_6);
24368   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
24369   __pyx_v_c_up = __pyx_t_6;
24370   __pyx_t_6 = 0;
24371 
24372   /* "cylp/cy/CyClpSimplex.pyx":1531
24373  *         # that of Clp. Else, a resize will ruin these.
24374  *         c_up = CyLPArray(self.constraintsUpper).copy()
24375  *         c_low = CyLPArray(self.constraintsLower).copy()             # <<<<<<<<<<<<<<
24376  *
24377  *         mat = self.matrix
24378  */
24379   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1531, __pyx_L1_error)
24380   __Pyx_GOTREF(__pyx_t_7);
24381   __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_constraintsLower); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1531, __pyx_L1_error)
24382   __Pyx_GOTREF(__pyx_t_8);
24383   __pyx_t_9 = NULL;
24384   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
24385     __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
24386     if (likely(__pyx_t_9)) {
24387       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
24388       __Pyx_INCREF(__pyx_t_9);
24389       __Pyx_INCREF(function);
24390       __Pyx_DECREF_SET(__pyx_t_7, function);
24391     }
24392   }
24393   __pyx_t_10 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8);
24394   __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
24395   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
24396   if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1531, __pyx_L1_error)
24397   __Pyx_GOTREF(__pyx_t_10);
24398   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
24399   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_copy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1531, __pyx_L1_error)
24400   __Pyx_GOTREF(__pyx_t_7);
24401   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
24402   __pyx_t_10 = NULL;
24403   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
24404     __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
24405     if (likely(__pyx_t_10)) {
24406       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
24407       __Pyx_INCREF(__pyx_t_10);
24408       __Pyx_INCREF(function);
24409       __Pyx_DECREF_SET(__pyx_t_7, function);
24410     }
24411   }
24412   __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
24413   __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
24414   if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1531, __pyx_L1_error)
24415   __Pyx_GOTREF(__pyx_t_6);
24416   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
24417   __pyx_v_c_low = __pyx_t_6;
24418   __pyx_t_6 = 0;
24419 
24420   /* "cylp/cy/CyClpSimplex.pyx":1533
24421  *         c_low = CyLPArray(self.constraintsLower).copy()
24422  *
24423  *         mat = self.matrix             # <<<<<<<<<<<<<<
24424  *         C = csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
24425  *                              shape=(self.nConstraints, self.nVariables))
24426  */
24427   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_matrix); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1533, __pyx_L1_error)
24428   __Pyx_GOTREF(__pyx_t_6);
24429   __pyx_v_mat = __pyx_t_6;
24430   __pyx_t_6 = 0;
24431 
24432   /* "cylp/cy/CyClpSimplex.pyx":1534
24433  *
24434  *         mat = self.matrix
24435  *         C = csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),             # <<<<<<<<<<<<<<
24436  *                              shape=(self.nConstraints, self.nVariables))
24437  *
24438  */
24439   __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_csc_matrixPlus); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1534, __pyx_L1_error)
24440   __Pyx_GOTREF(__pyx_t_6);
24441   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1534, __pyx_L1_error)
24442   __Pyx_GOTREF(__pyx_t_7);
24443   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_indices); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1534, __pyx_L1_error)
24444   __Pyx_GOTREF(__pyx_t_10);
24445   __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_vectorStarts); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1534, __pyx_L1_error)
24446   __Pyx_GOTREF(__pyx_t_8);
24447   __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1534, __pyx_L1_error)
24448   __Pyx_GOTREF(__pyx_t_9);
24449   __Pyx_GIVEREF(__pyx_t_7);
24450   PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7);
24451   __Pyx_GIVEREF(__pyx_t_10);
24452   PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_10);
24453   __Pyx_GIVEREF(__pyx_t_8);
24454   PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_8);
24455   __pyx_t_7 = 0;
24456   __pyx_t_10 = 0;
24457   __pyx_t_8 = 0;
24458   __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1534, __pyx_L1_error)
24459   __Pyx_GOTREF(__pyx_t_8);
24460   __Pyx_GIVEREF(__pyx_t_9);
24461   PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9);
24462   __pyx_t_9 = 0;
24463 
24464   /* "cylp/cy/CyClpSimplex.pyx":1535
24465  *         mat = self.matrix
24466  *         C = csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
24467  *                              shape=(self.nConstraints, self.nVariables))             # <<<<<<<<<<<<<<
24468  *
24469  *         m += c_low <= C * x <= c_up
24470  */
24471   __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1535, __pyx_L1_error)
24472   __Pyx_GOTREF(__pyx_t_9);
24473   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1535, __pyx_L1_error)
24474   __Pyx_GOTREF(__pyx_t_10);
24475   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1535, __pyx_L1_error)
24476   __Pyx_GOTREF(__pyx_t_7);
24477   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1535, __pyx_L1_error)
24478   __Pyx_GOTREF(__pyx_t_11);
24479   __Pyx_GIVEREF(__pyx_t_10);
24480   PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10);
24481   __Pyx_GIVEREF(__pyx_t_7);
24482   PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7);
24483   __pyx_t_10 = 0;
24484   __pyx_t_7 = 0;
24485   if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_shape, __pyx_t_11) < 0) __PYX_ERR(0, 1535, __pyx_L1_error)
24486   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
24487 
24488   /* "cylp/cy/CyClpSimplex.pyx":1534
24489  *
24490  *         mat = self.matrix
24491  *         C = csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),             # <<<<<<<<<<<<<<
24492  *                              shape=(self.nConstraints, self.nVariables))
24493  *
24494  */
24495   __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1534, __pyx_L1_error)
24496   __Pyx_GOTREF(__pyx_t_11);
24497   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24498   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
24499   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24500   __pyx_v_C = __pyx_t_11;
24501   __pyx_t_11 = 0;
24502 
24503   /* "cylp/cy/CyClpSimplex.pyx":1537
24504  *                              shape=(self.nConstraints, self.nVariables))
24505  *
24506  *         m += c_low <= C * x <= c_up             # <<<<<<<<<<<<<<
24507  *
24508  *         x_up = CyLPArray(self.variablesUpper).copy()
24509  */
24510   __pyx_t_11 = PyNumber_Multiply(__pyx_v_C, __pyx_v_x); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1537, __pyx_L1_error)
24511   __Pyx_GOTREF(__pyx_t_11);
24512   __pyx_t_9 = PyObject_RichCompare(__pyx_v_c_low, __pyx_t_11, Py_LE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1537, __pyx_L1_error)
24513   if (__Pyx_PyObject_IsTrue(__pyx_t_9)) {
24514     __Pyx_DECREF(__pyx_t_9);
24515     __pyx_t_9 = PyObject_RichCompare(__pyx_t_11, __pyx_v_c_up, Py_LE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1537, __pyx_L1_error)
24516   }
24517   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
24518   __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_v_m, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1537, __pyx_L1_error)
24519   __Pyx_GOTREF(__pyx_t_11);
24520   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24521   __Pyx_DECREF_SET(__pyx_v_m, __pyx_t_11);
24522   __pyx_t_11 = 0;
24523 
24524   /* "cylp/cy/CyClpSimplex.pyx":1539
24525  *         m += c_low <= C * x <= c_up
24526  *
24527  *         x_up = CyLPArray(self.variablesUpper).copy()             # <<<<<<<<<<<<<<
24528  *         x_low = CyLPArray(self.variablesLower).copy()
24529  *
24530  */
24531   __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1539, __pyx_L1_error)
24532   __Pyx_GOTREF(__pyx_t_8);
24533   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_variablesUpper); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1539, __pyx_L1_error)
24534   __Pyx_GOTREF(__pyx_t_6);
24535   __pyx_t_7 = NULL;
24536   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
24537     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
24538     if (likely(__pyx_t_7)) {
24539       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
24540       __Pyx_INCREF(__pyx_t_7);
24541       __Pyx_INCREF(function);
24542       __Pyx_DECREF_SET(__pyx_t_8, function);
24543     }
24544   }
24545   __pyx_t_9 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
24546   __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
24547   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24548   if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1539, __pyx_L1_error)
24549   __Pyx_GOTREF(__pyx_t_9);
24550   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
24551   __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_copy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1539, __pyx_L1_error)
24552   __Pyx_GOTREF(__pyx_t_8);
24553   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24554   __pyx_t_9 = NULL;
24555   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
24556     __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
24557     if (likely(__pyx_t_9)) {
24558       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
24559       __Pyx_INCREF(__pyx_t_9);
24560       __Pyx_INCREF(function);
24561       __Pyx_DECREF_SET(__pyx_t_8, function);
24562     }
24563   }
24564   __pyx_t_11 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
24565   __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
24566   if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1539, __pyx_L1_error)
24567   __Pyx_GOTREF(__pyx_t_11);
24568   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
24569   __pyx_v_x_up = __pyx_t_11;
24570   __pyx_t_11 = 0;
24571 
24572   /* "cylp/cy/CyClpSimplex.pyx":1540
24573  *
24574  *         x_up = CyLPArray(self.variablesUpper).copy()
24575  *         x_low = CyLPArray(self.variablesLower).copy()             # <<<<<<<<<<<<<<
24576  *
24577  *         m += x_low <= x <= x_up
24578  */
24579   __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1540, __pyx_L1_error)
24580   __Pyx_GOTREF(__pyx_t_9);
24581   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_variablesLower); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1540, __pyx_L1_error)
24582   __Pyx_GOTREF(__pyx_t_6);
24583   __pyx_t_7 = NULL;
24584   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
24585     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
24586     if (likely(__pyx_t_7)) {
24587       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
24588       __Pyx_INCREF(__pyx_t_7);
24589       __Pyx_INCREF(function);
24590       __Pyx_DECREF_SET(__pyx_t_9, function);
24591     }
24592   }
24593   __pyx_t_8 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_6);
24594   __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
24595   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24596   if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1540, __pyx_L1_error)
24597   __Pyx_GOTREF(__pyx_t_8);
24598   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24599   __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_copy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1540, __pyx_L1_error)
24600   __Pyx_GOTREF(__pyx_t_9);
24601   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
24602   __pyx_t_8 = NULL;
24603   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
24604     __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
24605     if (likely(__pyx_t_8)) {
24606       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
24607       __Pyx_INCREF(__pyx_t_8);
24608       __Pyx_INCREF(function);
24609       __Pyx_DECREF_SET(__pyx_t_9, function);
24610     }
24611   }
24612   __pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_9);
24613   __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
24614   if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1540, __pyx_L1_error)
24615   __Pyx_GOTREF(__pyx_t_11);
24616   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24617   __pyx_v_x_low = __pyx_t_11;
24618   __pyx_t_11 = 0;
24619 
24620   /* "cylp/cy/CyClpSimplex.pyx":1542
24621  *         x_low = CyLPArray(self.variablesLower).copy()
24622  *
24623  *         m += x_low <= x <= x_up             # <<<<<<<<<<<<<<
24624  *
24625  *         m.objective = self.objective
24626  */
24627   __pyx_t_11 = PyObject_RichCompare(__pyx_v_x_low, __pyx_v_x, Py_LE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1542, __pyx_L1_error)
24628   if (__Pyx_PyObject_IsTrue(__pyx_t_11)) {
24629     __Pyx_DECREF(__pyx_t_11);
24630     __pyx_t_11 = PyObject_RichCompare(__pyx_v_x, __pyx_v_x_up, Py_LE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1542, __pyx_L1_error)
24631   }
24632   __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_m, __pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1542, __pyx_L1_error)
24633   __Pyx_GOTREF(__pyx_t_9);
24634   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
24635   __Pyx_DECREF_SET(__pyx_v_m, __pyx_t_9);
24636   __pyx_t_9 = 0;
24637 
24638   /* "cylp/cy/CyClpSimplex.pyx":1544
24639  *         m += x_low <= x <= x_up
24640  *
24641  *         m.objective = self.objective             # <<<<<<<<<<<<<<
24642  *
24643  *         self.cyLPModel = m
24644  */
24645   __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objective); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1544, __pyx_L1_error)
24646   __Pyx_GOTREF(__pyx_t_9);
24647   if (__Pyx_PyObject_SetAttrStr(__pyx_v_m, __pyx_n_s_objective, __pyx_t_9) < 0) __PYX_ERR(0, 1544, __pyx_L1_error)
24648   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24649 
24650   /* "cylp/cy/CyClpSimplex.pyx":1546
24651  *         m.objective = self.objective
24652  *
24653  *         self.cyLPModel = m             # <<<<<<<<<<<<<<
24654  *         return m
24655  *
24656  */
24657   __Pyx_INCREF(__pyx_v_m);
24658   __Pyx_GIVEREF(__pyx_v_m);
24659   __Pyx_GOTREF(__pyx_v_self->cyLPModel);
24660   __Pyx_DECREF(__pyx_v_self->cyLPModel);
24661   __pyx_v_self->cyLPModel = __pyx_v_m;
24662 
24663   /* "cylp/cy/CyClpSimplex.pyx":1547
24664  *
24665  *         self.cyLPModel = m
24666  *         return m             # <<<<<<<<<<<<<<
24667  *
24668  *     def _extractStartFinish(self, startFinishOptions):
24669  */
24670   __Pyx_XDECREF(__pyx_r);
24671   __Pyx_INCREF(__pyx_v_m);
24672   __pyx_r = __pyx_v_m;
24673   goto __pyx_L0;
24674 
24675   /* "cylp/cy/CyClpSimplex.pyx":1521
24676  *
24677  *
24678  *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):             # <<<<<<<<<<<<<<
24679  *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:
24680  *             return None
24681  */
24682 
24683   /* function exit code */
24684   __pyx_L1_error:;
24685   __Pyx_XDECREF(__pyx_t_6);
24686   __Pyx_XDECREF(__pyx_t_7);
24687   __Pyx_XDECREF(__pyx_t_8);
24688   __Pyx_XDECREF(__pyx_t_9);
24689   __Pyx_XDECREF(__pyx_t_10);
24690   __Pyx_XDECREF(__pyx_t_11);
24691   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.extractCyLPModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
24692   __pyx_r = NULL;
24693   __pyx_L0:;
24694   __Pyx_XDECREF(__pyx_v_m);
24695   __Pyx_XDECREF(__pyx_v_x);
24696   __Pyx_XDECREF(__pyx_v_c_up);
24697   __Pyx_XDECREF(__pyx_v_c_low);
24698   __Pyx_XDECREF(__pyx_v_mat);
24699   __Pyx_XDECREF(__pyx_v_C);
24700   __Pyx_XDECREF(__pyx_v_x_up);
24701   __Pyx_XDECREF(__pyx_v_x_low);
24702   __Pyx_XGIVEREF(__pyx_r);
24703   __Pyx_TraceReturn(__pyx_r, 0);
24704   __Pyx_RefNannyFinishContext();
24705   return __pyx_r;
24706 }
24707 
24708 /* "cylp/cy/CyClpSimplex.pyx":1549
24709  *         return m
24710  *
24711  *     def _extractStartFinish(self, startFinishOptions):             # <<<<<<<<<<<<<<
24712  *         if isinstance(startFinishOptions, int):
24713  *             sf = startFinishOptions
24714  */
24715 
24716 /* Python wrapper */
24717 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_117_extractStartFinish(PyObject *__pyx_v_self, PyObject *__pyx_v_startFinishOptions); /*proto*/
24718 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_116_extractStartFinish[] = "CyClpSimplex._extractStartFinish(self, startFinishOptions)";
24719 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_117_extractStartFinish(PyObject *__pyx_v_self, PyObject *__pyx_v_startFinishOptions) {
24720   PyObject *__pyx_r = 0;
24721   __Pyx_RefNannyDeclarations
24722   __Pyx_RefNannySetupContext("_extractStartFinish (wrapper)", 0);
24723   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_116_extractStartFinish(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_startFinishOptions));
24724 
24725   /* function exit code */
24726   __Pyx_RefNannyFinishContext();
24727   return __pyx_r;
24728 }
24729 
24730 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_116_extractStartFinish(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_startFinishOptions) {
24731   PyObject *__pyx_v_sf = NULL;
24732   PyObject *__pyx_v_option = NULL;
24733   PyObject *__pyx_r = NULL;
24734   __Pyx_TraceDeclarations
24735   __Pyx_RefNannyDeclarations
24736   int __pyx_t_1;
24737   int __pyx_t_2;
24738   PyObject *__pyx_t_3 = NULL;
24739   Py_ssize_t __pyx_t_4;
24740   PyObject *(*__pyx_t_5)(PyObject *);
24741   PyObject *__pyx_t_6 = NULL;
24742   PyObject *__pyx_t_7 = NULL;
24743   int __pyx_lineno = 0;
24744   const char *__pyx_filename = NULL;
24745   int __pyx_clineno = 0;
24746   __Pyx_RefNannySetupContext("_extractStartFinish", 0);
24747   __Pyx_TraceCall("_extractStartFinish", __pyx_f[0], 1549, 0, __PYX_ERR(0, 1549, __pyx_L1_error));
24748 
24749   /* "cylp/cy/CyClpSimplex.pyx":1550
24750  *
24751  *     def _extractStartFinish(self, startFinishOptions):
24752  *         if isinstance(startFinishOptions, int):             # <<<<<<<<<<<<<<
24753  *             sf = startFinishOptions
24754  *         else:
24755  */
24756   __pyx_t_1 = PyInt_Check(__pyx_v_startFinishOptions);
24757   __pyx_t_2 = (__pyx_t_1 != 0);
24758   if (__pyx_t_2) {
24759 
24760     /* "cylp/cy/CyClpSimplex.pyx":1551
24761  *     def _extractStartFinish(self, startFinishOptions):
24762  *         if isinstance(startFinishOptions, int):
24763  *             sf = startFinishOptions             # <<<<<<<<<<<<<<
24764  *         else:
24765  *             sf = 0
24766  */
24767     __Pyx_INCREF(__pyx_v_startFinishOptions);
24768     __pyx_v_sf = __pyx_v_startFinishOptions;
24769 
24770     /* "cylp/cy/CyClpSimplex.pyx":1550
24771  *
24772  *     def _extractStartFinish(self, startFinishOptions):
24773  *         if isinstance(startFinishOptions, int):             # <<<<<<<<<<<<<<
24774  *             sf = startFinishOptions
24775  *         else:
24776  */
24777     goto __pyx_L3;
24778   }
24779 
24780   /* "cylp/cy/CyClpSimplex.pyx":1553
24781  *             sf = startFinishOptions
24782  *         else:
24783  *             sf = 0             # <<<<<<<<<<<<<<
24784  *             for option in startFinishOptions:
24785  *                 sf = sf | startFinishOptionsDic[option]
24786  */
24787   /*else*/ {
24788     __Pyx_INCREF(__pyx_int_0);
24789     __pyx_v_sf = __pyx_int_0;
24790 
24791     /* "cylp/cy/CyClpSimplex.pyx":1554
24792  *         else:
24793  *             sf = 0
24794  *             for option in startFinishOptions:             # <<<<<<<<<<<<<<
24795  *                 sf = sf | startFinishOptionsDic[option]
24796  *         return sf
24797  */
24798     if (likely(PyList_CheckExact(__pyx_v_startFinishOptions)) || PyTuple_CheckExact(__pyx_v_startFinishOptions)) {
24799       __pyx_t_3 = __pyx_v_startFinishOptions; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
24800       __pyx_t_5 = NULL;
24801     } else {
24802       __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_startFinishOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1554, __pyx_L1_error)
24803       __Pyx_GOTREF(__pyx_t_3);
24804       __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1554, __pyx_L1_error)
24805     }
24806     for (;;) {
24807       if (likely(!__pyx_t_5)) {
24808         if (likely(PyList_CheckExact(__pyx_t_3))) {
24809           if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
24810           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
24811           __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1554, __pyx_L1_error)
24812           #else
24813           __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1554, __pyx_L1_error)
24814           __Pyx_GOTREF(__pyx_t_6);
24815           #endif
24816         } else {
24817           if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
24818           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
24819           __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1554, __pyx_L1_error)
24820           #else
24821           __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1554, __pyx_L1_error)
24822           __Pyx_GOTREF(__pyx_t_6);
24823           #endif
24824         }
24825       } else {
24826         __pyx_t_6 = __pyx_t_5(__pyx_t_3);
24827         if (unlikely(!__pyx_t_6)) {
24828           PyObject* exc_type = PyErr_Occurred();
24829           if (exc_type) {
24830             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
24831             else __PYX_ERR(0, 1554, __pyx_L1_error)
24832           }
24833           break;
24834         }
24835         __Pyx_GOTREF(__pyx_t_6);
24836       }
24837       __Pyx_XDECREF_SET(__pyx_v_option, __pyx_t_6);
24838       __pyx_t_6 = 0;
24839 
24840       /* "cylp/cy/CyClpSimplex.pyx":1555
24841  *             sf = 0
24842  *             for option in startFinishOptions:
24843  *                 sf = sf | startFinishOptionsDic[option]             # <<<<<<<<<<<<<<
24844  *         return sf
24845  *
24846  */
24847       __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_startFinishOptionsDic); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1555, __pyx_L1_error)
24848       __Pyx_GOTREF(__pyx_t_6);
24849       __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_option); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1555, __pyx_L1_error)
24850       __Pyx_GOTREF(__pyx_t_7);
24851       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24852       __pyx_t_6 = PyNumber_Or(__pyx_v_sf, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1555, __pyx_L1_error)
24853       __Pyx_GOTREF(__pyx_t_6);
24854       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
24855       __Pyx_DECREF_SET(__pyx_v_sf, __pyx_t_6);
24856       __pyx_t_6 = 0;
24857 
24858       /* "cylp/cy/CyClpSimplex.pyx":1554
24859  *         else:
24860  *             sf = 0
24861  *             for option in startFinishOptions:             # <<<<<<<<<<<<<<
24862  *                 sf = sf | startFinishOptionsDic[option]
24863  *         return sf
24864  */
24865     }
24866     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24867   }
24868   __pyx_L3:;
24869 
24870   /* "cylp/cy/CyClpSimplex.pyx":1556
24871  *             for option in startFinishOptions:
24872  *                 sf = sf | startFinishOptionsDic[option]
24873  *         return sf             # <<<<<<<<<<<<<<
24874  *
24875  *     def primal(self, ifValuesPass=0, startFinishOptions=0, presolve=False):
24876  */
24877   __Pyx_XDECREF(__pyx_r);
24878   __Pyx_INCREF(__pyx_v_sf);
24879   __pyx_r = __pyx_v_sf;
24880   goto __pyx_L0;
24881 
24882   /* "cylp/cy/CyClpSimplex.pyx":1549
24883  *         return m
24884  *
24885  *     def _extractStartFinish(self, startFinishOptions):             # <<<<<<<<<<<<<<
24886  *         if isinstance(startFinishOptions, int):
24887  *             sf = startFinishOptions
24888  */
24889 
24890   /* function exit code */
24891   __pyx_L1_error:;
24892   __Pyx_XDECREF(__pyx_t_3);
24893   __Pyx_XDECREF(__pyx_t_6);
24894   __Pyx_XDECREF(__pyx_t_7);
24895   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex._extractStartFinish", __pyx_clineno, __pyx_lineno, __pyx_filename);
24896   __pyx_r = NULL;
24897   __pyx_L0:;
24898   __Pyx_XDECREF(__pyx_v_sf);
24899   __Pyx_XDECREF(__pyx_v_option);
24900   __Pyx_XGIVEREF(__pyx_r);
24901   __Pyx_TraceReturn(__pyx_r, 0);
24902   __Pyx_RefNannyFinishContext();
24903   return __pyx_r;
24904 }
24905 
24906 /* "cylp/cy/CyClpSimplex.pyx":1558
24907  *         return sf
24908  *
24909  *     def primal(self, ifValuesPass=0, startFinishOptions=0, presolve=False):             # <<<<<<<<<<<<<<
24910  *         '''
24911  *         Solve the problem using the primal simplex algorithm.
24912  */
24913 
24914 /* Python wrapper */
24915 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_119primal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
24916 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_118primal[] = "CyClpSimplex.primal(self, ifValuesPass=0, startFinishOptions=0, presolve=False)\n\n        Solve the problem using the primal simplex algorithm.\n        See this :ref:`usage example <simple-run>`.\n\n        startFinishOptions is a string containing one or\n        more of the following characters:\n        'x': do not delete work areas\n        'f': use old factorization if possible\n        's': skip initialization of work areas\n        So one might call ``self.primal(startFinishOptions='sx')``\n        ";
24917 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_119primal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
24918   PyObject *__pyx_v_ifValuesPass = 0;
24919   PyObject *__pyx_v_startFinishOptions = 0;
24920   PyObject *__pyx_v_presolve = 0;
24921   int __pyx_lineno = 0;
24922   const char *__pyx_filename = NULL;
24923   int __pyx_clineno = 0;
24924   PyObject *__pyx_r = 0;
24925   __Pyx_RefNannyDeclarations
24926   __Pyx_RefNannySetupContext("primal (wrapper)", 0);
24927   {
24928     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ifValuesPass,&__pyx_n_s_startFinishOptions,&__pyx_n_s_presolve,0};
24929     PyObject* values[3] = {0,0,0};
24930     values[0] = ((PyObject *)__pyx_int_0);
24931     values[1] = ((PyObject *)__pyx_int_0);
24932     values[2] = ((PyObject *)Py_False);
24933     if (unlikely(__pyx_kwds)) {
24934       Py_ssize_t kw_args;
24935       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
24936       switch (pos_args) {
24937         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24938         CYTHON_FALLTHROUGH;
24939         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24940         CYTHON_FALLTHROUGH;
24941         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24942         CYTHON_FALLTHROUGH;
24943         case  0: break;
24944         default: goto __pyx_L5_argtuple_error;
24945       }
24946       kw_args = PyDict_Size(__pyx_kwds);
24947       switch (pos_args) {
24948         case  0:
24949         if (kw_args > 0) {
24950           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ifValuesPass);
24951           if (value) { values[0] = value; kw_args--; }
24952         }
24953         CYTHON_FALLTHROUGH;
24954         case  1:
24955         if (kw_args > 0) {
24956           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startFinishOptions);
24957           if (value) { values[1] = value; kw_args--; }
24958         }
24959         CYTHON_FALLTHROUGH;
24960         case  2:
24961         if (kw_args > 0) {
24962           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_presolve);
24963           if (value) { values[2] = value; kw_args--; }
24964         }
24965       }
24966       if (unlikely(kw_args > 0)) {
24967         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "primal") < 0)) __PYX_ERR(0, 1558, __pyx_L3_error)
24968       }
24969     } else {
24970       switch (PyTuple_GET_SIZE(__pyx_args)) {
24971         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24972         CYTHON_FALLTHROUGH;
24973         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24974         CYTHON_FALLTHROUGH;
24975         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24976         CYTHON_FALLTHROUGH;
24977         case  0: break;
24978         default: goto __pyx_L5_argtuple_error;
24979       }
24980     }
24981     __pyx_v_ifValuesPass = values[0];
24982     __pyx_v_startFinishOptions = values[1];
24983     __pyx_v_presolve = values[2];
24984   }
24985   goto __pyx_L4_argument_unpacking_done;
24986   __pyx_L5_argtuple_error:;
24987   __Pyx_RaiseArgtupleInvalid("primal", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1558, __pyx_L3_error)
24988   __pyx_L3_error:;
24989   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primal", __pyx_clineno, __pyx_lineno, __pyx_filename);
24990   __Pyx_RefNannyFinishContext();
24991   return NULL;
24992   __pyx_L4_argument_unpacking_done:;
24993   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_118primal(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_ifValuesPass, __pyx_v_startFinishOptions, __pyx_v_presolve);
24994 
24995   /* function exit code */
24996   __Pyx_RefNannyFinishContext();
24997   return __pyx_r;
24998 }
24999 
25000 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_118primal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ifValuesPass, PyObject *__pyx_v_startFinishOptions, PyObject *__pyx_v_presolve) {
25001   PyObject *__pyx_v_sf = NULL;
25002   PyObject *__pyx_r = NULL;
25003   __Pyx_TraceDeclarations
25004   __Pyx_RefNannyDeclarations
25005   PyObject *__pyx_t_1 = NULL;
25006   PyObject *__pyx_t_2 = NULL;
25007   PyObject *__pyx_t_3 = NULL;
25008   int __pyx_t_4;
25009   int __pyx_t_5;
25010   int __pyx_t_6;
25011   int __pyx_t_7;
25012   int __pyx_lineno = 0;
25013   const char *__pyx_filename = NULL;
25014   int __pyx_clineno = 0;
25015   __Pyx_RefNannySetupContext("primal", 0);
25016   __Pyx_TraceCall("primal", __pyx_f[0], 1558, 0, __PYX_ERR(0, 1558, __pyx_L1_error));
25017 
25018   /* "cylp/cy/CyClpSimplex.pyx":1570
25019  *         So one might call ``self.primal(startFinishOptions='sx')``
25020  *         '''
25021  *         sf = self._extractStartFinish(startFinishOptions)             # <<<<<<<<<<<<<<
25022  *         if presolve:
25023  *             return self.primalWithPresolve()
25024  */
25025   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_extractStartFinish); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1570, __pyx_L1_error)
25026   __Pyx_GOTREF(__pyx_t_2);
25027   __pyx_t_3 = NULL;
25028   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
25029     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
25030     if (likely(__pyx_t_3)) {
25031       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
25032       __Pyx_INCREF(__pyx_t_3);
25033       __Pyx_INCREF(function);
25034       __Pyx_DECREF_SET(__pyx_t_2, function);
25035     }
25036   }
25037   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_startFinishOptions) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_startFinishOptions);
25038   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
25039   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1570, __pyx_L1_error)
25040   __Pyx_GOTREF(__pyx_t_1);
25041   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
25042   __pyx_v_sf = __pyx_t_1;
25043   __pyx_t_1 = 0;
25044 
25045   /* "cylp/cy/CyClpSimplex.pyx":1571
25046  *         '''
25047  *         sf = self._extractStartFinish(startFinishOptions)
25048  *         if presolve:             # <<<<<<<<<<<<<<
25049  *             return self.primalWithPresolve()
25050  *         else:
25051  */
25052   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_presolve); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1571, __pyx_L1_error)
25053   if (__pyx_t_4) {
25054 
25055     /* "cylp/cy/CyClpSimplex.pyx":1572
25056  *         sf = self._extractStartFinish(startFinishOptions)
25057  *         if presolve:
25058  *             return self.primalWithPresolve()             # <<<<<<<<<<<<<<
25059  *         else:
25060  *             return problemStatus[self.CppSelf.primal(
25061  */
25062     __Pyx_XDECREF(__pyx_r);
25063     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_primalWithPresolve); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1572, __pyx_L1_error)
25064     __Pyx_GOTREF(__pyx_t_2);
25065     __pyx_t_3 = NULL;
25066     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
25067       __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
25068       if (likely(__pyx_t_3)) {
25069         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
25070         __Pyx_INCREF(__pyx_t_3);
25071         __Pyx_INCREF(function);
25072         __Pyx_DECREF_SET(__pyx_t_2, function);
25073       }
25074     }
25075     __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
25076     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
25077     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1572, __pyx_L1_error)
25078     __Pyx_GOTREF(__pyx_t_1);
25079     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
25080     __pyx_r = __pyx_t_1;
25081     __pyx_t_1 = 0;
25082     goto __pyx_L0;
25083 
25084     /* "cylp/cy/CyClpSimplex.pyx":1571
25085  *         '''
25086  *         sf = self._extractStartFinish(startFinishOptions)
25087  *         if presolve:             # <<<<<<<<<<<<<<
25088  *             return self.primalWithPresolve()
25089  *         else:
25090  */
25091   }
25092 
25093   /* "cylp/cy/CyClpSimplex.pyx":1574
25094  *             return self.primalWithPresolve()
25095  *         else:
25096  *             return problemStatus[self.CppSelf.primal(             # <<<<<<<<<<<<<<
25097  *                              ifValuesPass, sf)]
25098  *
25099  */
25100   /*else*/ {
25101     __Pyx_XDECREF(__pyx_r);
25102     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1574, __pyx_L1_error)
25103     __Pyx_GOTREF(__pyx_t_1);
25104 
25105     /* "cylp/cy/CyClpSimplex.pyx":1575
25106  *         else:
25107  *             return problemStatus[self.CppSelf.primal(
25108  *                              ifValuesPass, sf)]             # <<<<<<<<<<<<<<
25109  *
25110  *     def dual(self, ifValuesPass=0, startFinishOptions=0, presolve=False):
25111  */
25112     __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_ifValuesPass); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1575, __pyx_L1_error)
25113     __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_sf); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1575, __pyx_L1_error)
25114 
25115     /* "cylp/cy/CyClpSimplex.pyx":1574
25116  *             return self.primalWithPresolve()
25117  *         else:
25118  *             return problemStatus[self.CppSelf.primal(             # <<<<<<<<<<<<<<
25119  *                              ifValuesPass, sf)]
25120  *
25121  */
25122     __pyx_t_7 = __pyx_v_self->CppSelf->primal(__pyx_t_5, __pyx_t_6);
25123     __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_7, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1574, __pyx_L1_error)
25124     __Pyx_GOTREF(__pyx_t_2);
25125     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
25126     __pyx_r = __pyx_t_2;
25127     __pyx_t_2 = 0;
25128     goto __pyx_L0;
25129   }
25130 
25131   /* "cylp/cy/CyClpSimplex.pyx":1558
25132  *         return sf
25133  *
25134  *     def primal(self, ifValuesPass=0, startFinishOptions=0, presolve=False):             # <<<<<<<<<<<<<<
25135  *         '''
25136  *         Solve the problem using the primal simplex algorithm.
25137  */
25138 
25139   /* function exit code */
25140   __pyx_L1_error:;
25141   __Pyx_XDECREF(__pyx_t_1);
25142   __Pyx_XDECREF(__pyx_t_2);
25143   __Pyx_XDECREF(__pyx_t_3);
25144   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primal", __pyx_clineno, __pyx_lineno, __pyx_filename);
25145   __pyx_r = NULL;
25146   __pyx_L0:;
25147   __Pyx_XDECREF(__pyx_v_sf);
25148   __Pyx_XGIVEREF(__pyx_r);
25149   __Pyx_TraceReturn(__pyx_r, 0);
25150   __Pyx_RefNannyFinishContext();
25151   return __pyx_r;
25152 }
25153 
25154 /* "cylp/cy/CyClpSimplex.pyx":1577
25155  *                              ifValuesPass, sf)]
25156  *
25157  *     def dual(self, ifValuesPass=0, startFinishOptions=0, presolve=False):             # <<<<<<<<<<<<<<
25158  *         '''
25159  *         Runs CLP dual simplex.
25160  */
25161 
25162 /* Python wrapper */
25163 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_121dual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25164 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_120dual[] = "CyClpSimplex.dual(self, ifValuesPass=0, startFinishOptions=0, presolve=False)\n\n        Runs CLP dual simplex.\n\n        **Usage Example**\n\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n        >>> s = CyClpSimplex()\n        >>> f = getMpsExample()\n        >>> s.readMps(f)\n        0\n        >>> s.dual()\n        'optimal'\n\n        ";
25165 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_121dual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25166   PyObject *__pyx_v_ifValuesPass = 0;
25167   PyObject *__pyx_v_startFinishOptions = 0;
25168   PyObject *__pyx_v_presolve = 0;
25169   int __pyx_lineno = 0;
25170   const char *__pyx_filename = NULL;
25171   int __pyx_clineno = 0;
25172   PyObject *__pyx_r = 0;
25173   __Pyx_RefNannyDeclarations
25174   __Pyx_RefNannySetupContext("dual (wrapper)", 0);
25175   {
25176     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ifValuesPass,&__pyx_n_s_startFinishOptions,&__pyx_n_s_presolve,0};
25177     PyObject* values[3] = {0,0,0};
25178     values[0] = ((PyObject *)__pyx_int_0);
25179     values[1] = ((PyObject *)__pyx_int_0);
25180     values[2] = ((PyObject *)Py_False);
25181     if (unlikely(__pyx_kwds)) {
25182       Py_ssize_t kw_args;
25183       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
25184       switch (pos_args) {
25185         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
25186         CYTHON_FALLTHROUGH;
25187         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25188         CYTHON_FALLTHROUGH;
25189         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25190         CYTHON_FALLTHROUGH;
25191         case  0: break;
25192         default: goto __pyx_L5_argtuple_error;
25193       }
25194       kw_args = PyDict_Size(__pyx_kwds);
25195       switch (pos_args) {
25196         case  0:
25197         if (kw_args > 0) {
25198           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ifValuesPass);
25199           if (value) { values[0] = value; kw_args--; }
25200         }
25201         CYTHON_FALLTHROUGH;
25202         case  1:
25203         if (kw_args > 0) {
25204           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startFinishOptions);
25205           if (value) { values[1] = value; kw_args--; }
25206         }
25207         CYTHON_FALLTHROUGH;
25208         case  2:
25209         if (kw_args > 0) {
25210           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_presolve);
25211           if (value) { values[2] = value; kw_args--; }
25212         }
25213       }
25214       if (unlikely(kw_args > 0)) {
25215         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dual") < 0)) __PYX_ERR(0, 1577, __pyx_L3_error)
25216       }
25217     } else {
25218       switch (PyTuple_GET_SIZE(__pyx_args)) {
25219         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
25220         CYTHON_FALLTHROUGH;
25221         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25222         CYTHON_FALLTHROUGH;
25223         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25224         CYTHON_FALLTHROUGH;
25225         case  0: break;
25226         default: goto __pyx_L5_argtuple_error;
25227       }
25228     }
25229     __pyx_v_ifValuesPass = values[0];
25230     __pyx_v_startFinishOptions = values[1];
25231     __pyx_v_presolve = values[2];
25232   }
25233   goto __pyx_L4_argument_unpacking_done;
25234   __pyx_L5_argtuple_error:;
25235   __Pyx_RaiseArgtupleInvalid("dual", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1577, __pyx_L3_error)
25236   __pyx_L3_error:;
25237   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dual", __pyx_clineno, __pyx_lineno, __pyx_filename);
25238   __Pyx_RefNannyFinishContext();
25239   return NULL;
25240   __pyx_L4_argument_unpacking_done:;
25241   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_120dual(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_ifValuesPass, __pyx_v_startFinishOptions, __pyx_v_presolve);
25242 
25243   /* function exit code */
25244   __Pyx_RefNannyFinishContext();
25245   return __pyx_r;
25246 }
25247 
25248 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_120dual(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ifValuesPass, PyObject *__pyx_v_startFinishOptions, PyObject *__pyx_v_presolve) {
25249   PyObject *__pyx_v_sf = NULL;
25250   PyObject *__pyx_r = NULL;
25251   __Pyx_TraceDeclarations
25252   __Pyx_RefNannyDeclarations
25253   PyObject *__pyx_t_1 = NULL;
25254   PyObject *__pyx_t_2 = NULL;
25255   PyObject *__pyx_t_3 = NULL;
25256   int __pyx_t_4;
25257   int __pyx_t_5;
25258   int __pyx_t_6;
25259   int __pyx_t_7;
25260   int __pyx_lineno = 0;
25261   const char *__pyx_filename = NULL;
25262   int __pyx_clineno = 0;
25263   __Pyx_RefNannySetupContext("dual", 0);
25264   __Pyx_TraceCall("dual", __pyx_f[0], 1577, 0, __PYX_ERR(0, 1577, __pyx_L1_error));
25265 
25266   /* "cylp/cy/CyClpSimplex.pyx":1592
25267  *
25268  *         '''
25269  *         sf = self._extractStartFinish(startFinishOptions)             # <<<<<<<<<<<<<<
25270  *         if presolve:
25271  *             return self.dualWithPresolve()
25272  */
25273   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_extractStartFinish); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1592, __pyx_L1_error)
25274   __Pyx_GOTREF(__pyx_t_2);
25275   __pyx_t_3 = NULL;
25276   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
25277     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
25278     if (likely(__pyx_t_3)) {
25279       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
25280       __Pyx_INCREF(__pyx_t_3);
25281       __Pyx_INCREF(function);
25282       __Pyx_DECREF_SET(__pyx_t_2, function);
25283     }
25284   }
25285   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_startFinishOptions) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_startFinishOptions);
25286   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
25287   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1592, __pyx_L1_error)
25288   __Pyx_GOTREF(__pyx_t_1);
25289   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
25290   __pyx_v_sf = __pyx_t_1;
25291   __pyx_t_1 = 0;
25292 
25293   /* "cylp/cy/CyClpSimplex.pyx":1593
25294  *         '''
25295  *         sf = self._extractStartFinish(startFinishOptions)
25296  *         if presolve:             # <<<<<<<<<<<<<<
25297  *             return self.dualWithPresolve()
25298  *         else:
25299  */
25300   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_presolve); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1593, __pyx_L1_error)
25301   if (__pyx_t_4) {
25302 
25303     /* "cylp/cy/CyClpSimplex.pyx":1594
25304  *         sf = self._extractStartFinish(startFinishOptions)
25305  *         if presolve:
25306  *             return self.dualWithPresolve()             # <<<<<<<<<<<<<<
25307  *         else:
25308  *             return problemStatus[self.CppSelf.dual(
25309  */
25310     __Pyx_XDECREF(__pyx_r);
25311     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dualWithPresolve); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1594, __pyx_L1_error)
25312     __Pyx_GOTREF(__pyx_t_2);
25313     __pyx_t_3 = NULL;
25314     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
25315       __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
25316       if (likely(__pyx_t_3)) {
25317         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
25318         __Pyx_INCREF(__pyx_t_3);
25319         __Pyx_INCREF(function);
25320         __Pyx_DECREF_SET(__pyx_t_2, function);
25321       }
25322     }
25323     __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
25324     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
25325     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1594, __pyx_L1_error)
25326     __Pyx_GOTREF(__pyx_t_1);
25327     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
25328     __pyx_r = __pyx_t_1;
25329     __pyx_t_1 = 0;
25330     goto __pyx_L0;
25331 
25332     /* "cylp/cy/CyClpSimplex.pyx":1593
25333  *         '''
25334  *         sf = self._extractStartFinish(startFinishOptions)
25335  *         if presolve:             # <<<<<<<<<<<<<<
25336  *             return self.dualWithPresolve()
25337  *         else:
25338  */
25339   }
25340 
25341   /* "cylp/cy/CyClpSimplex.pyx":1596
25342  *             return self.dualWithPresolve()
25343  *         else:
25344  *             return problemStatus[self.CppSelf.dual(             # <<<<<<<<<<<<<<
25345  *                             ifValuesPass, sf)]
25346  *
25347  */
25348   /*else*/ {
25349     __Pyx_XDECREF(__pyx_r);
25350     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1596, __pyx_L1_error)
25351     __Pyx_GOTREF(__pyx_t_1);
25352 
25353     /* "cylp/cy/CyClpSimplex.pyx":1597
25354  *         else:
25355  *             return problemStatus[self.CppSelf.dual(
25356  *                             ifValuesPass, sf)]             # <<<<<<<<<<<<<<
25357  *
25358  *     def setPerturbation(self, value):
25359  */
25360     __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_ifValuesPass); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1597, __pyx_L1_error)
25361     __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_sf); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1597, __pyx_L1_error)
25362 
25363     /* "cylp/cy/CyClpSimplex.pyx":1596
25364  *             return self.dualWithPresolve()
25365  *         else:
25366  *             return problemStatus[self.CppSelf.dual(             # <<<<<<<<<<<<<<
25367  *                             ifValuesPass, sf)]
25368  *
25369  */
25370     __pyx_t_7 = __pyx_v_self->CppSelf->dual(__pyx_t_5, __pyx_t_6);
25371     __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_7, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1596, __pyx_L1_error)
25372     __Pyx_GOTREF(__pyx_t_2);
25373     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
25374     __pyx_r = __pyx_t_2;
25375     __pyx_t_2 = 0;
25376     goto __pyx_L0;
25377   }
25378 
25379   /* "cylp/cy/CyClpSimplex.pyx":1577
25380  *                              ifValuesPass, sf)]
25381  *
25382  *     def dual(self, ifValuesPass=0, startFinishOptions=0, presolve=False):             # <<<<<<<<<<<<<<
25383  *         '''
25384  *         Runs CLP dual simplex.
25385  */
25386 
25387   /* function exit code */
25388   __pyx_L1_error:;
25389   __Pyx_XDECREF(__pyx_t_1);
25390   __Pyx_XDECREF(__pyx_t_2);
25391   __Pyx_XDECREF(__pyx_t_3);
25392   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dual", __pyx_clineno, __pyx_lineno, __pyx_filename);
25393   __pyx_r = NULL;
25394   __pyx_L0:;
25395   __Pyx_XDECREF(__pyx_v_sf);
25396   __Pyx_XGIVEREF(__pyx_r);
25397   __Pyx_TraceReturn(__pyx_r, 0);
25398   __Pyx_RefNannyFinishContext();
25399   return __pyx_r;
25400 }
25401 
25402 /* "cylp/cy/CyClpSimplex.pyx":1599
25403  *                             ifValuesPass, sf)]
25404  *
25405  *     def setPerturbation(self, value):             # <<<<<<<<<<<<<<
25406  *         '''
25407  *         Perturb the problem by ``value``.
25408  */
25409 
25410 /* Python wrapper */
25411 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_123setPerturbation(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
25412 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation[] = "CyClpSimplex.setPerturbation(self, value)\n\n        Perturb the problem by ``value``.\n        ";
25413 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_123setPerturbation(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
25414   PyObject *__pyx_r = 0;
25415   __Pyx_RefNannyDeclarations
25416   __Pyx_RefNannySetupContext("setPerturbation (wrapper)", 0);
25417   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));
25418 
25419   /* function exit code */
25420   __Pyx_RefNannyFinishContext();
25421   return __pyx_r;
25422 }
25423 
25424 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
25425   PyObject *__pyx_r = NULL;
25426   __Pyx_TraceDeclarations
25427   __Pyx_RefNannyDeclarations
25428   int __pyx_t_1;
25429   int __pyx_lineno = 0;
25430   const char *__pyx_filename = NULL;
25431   int __pyx_clineno = 0;
25432   __Pyx_RefNannySetupContext("setPerturbation", 0);
25433   __Pyx_TraceCall("setPerturbation", __pyx_f[0], 1599, 0, __PYX_ERR(0, 1599, __pyx_L1_error));
25434 
25435   /* "cylp/cy/CyClpSimplex.pyx":1603
25436  *         Perturb the problem by ``value``.
25437  *         '''
25438  *         self.CppSelf.setPerturbation(value)             # <<<<<<<<<<<<<<
25439  *
25440  *     cdef setPrimalColumnPivotAlgorithm(self, void* choice):
25441  */
25442   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1603, __pyx_L1_error)
25443   __pyx_v_self->CppSelf->setPerturbation(__pyx_t_1);
25444 
25445   /* "cylp/cy/CyClpSimplex.pyx":1599
25446  *                             ifValuesPass, sf)]
25447  *
25448  *     def setPerturbation(self, value):             # <<<<<<<<<<<<<<
25449  *         '''
25450  *         Perturb the problem by ``value``.
25451  */
25452 
25453   /* function exit code */
25454   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25455   goto __pyx_L0;
25456   __pyx_L1_error:;
25457   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPerturbation", __pyx_clineno, __pyx_lineno, __pyx_filename);
25458   __pyx_r = NULL;
25459   __pyx_L0:;
25460   __Pyx_XGIVEREF(__pyx_r);
25461   __Pyx_TraceReturn(__pyx_r, 0);
25462   __Pyx_RefNannyFinishContext();
25463   return __pyx_r;
25464 }
25465 
25466 /* "cylp/cy/CyClpSimplex.pyx":1605
25467  *         self.CppSelf.setPerturbation(value)
25468  *
25469  *     cdef setPrimalColumnPivotAlgorithm(self, void* choice):             # <<<<<<<<<<<<<<
25470  *         '''
25471  *         Set primal simplex's pivot rule to ``choice``
25472  */
25473 
25474 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setPrimalColumnPivotAlgorithm(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, void *__pyx_v_choice) {
25475   ClpPrimalColumnPivot *__pyx_v_c;
25476   PyObject *__pyx_r = NULL;
25477   __Pyx_TraceDeclarations
25478   __Pyx_RefNannyDeclarations
25479   int __pyx_lineno = 0;
25480   const char *__pyx_filename = NULL;
25481   int __pyx_clineno = 0;
25482   __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithm", 0);
25483   __Pyx_TraceCall("setPrimalColumnPivotAlgorithm", __pyx_f[0], 1605, 0, __PYX_ERR(0, 1605, __pyx_L1_error));
25484 
25485   /* "cylp/cy/CyClpSimplex.pyx":1610
25486  *         This is used when setting a pivot rule in Cython
25487  *         '''
25488  *         cdef CppClpPrimalColumnPivot* c = <CppClpPrimalColumnPivot*> choice             # <<<<<<<<<<<<<<
25489  *         self.CppSelf.setPrimalColumnPivotAlgorithm(c)
25490  *
25491  */
25492   __pyx_v_c = ((ClpPrimalColumnPivot *)__pyx_v_choice);
25493 
25494   /* "cylp/cy/CyClpSimplex.pyx":1611
25495  *         '''
25496  *         cdef CppClpPrimalColumnPivot* c = <CppClpPrimalColumnPivot*> choice
25497  *         self.CppSelf.setPrimalColumnPivotAlgorithm(c)             # <<<<<<<<<<<<<<
25498  *
25499  *     cdef setDualRowPivotAlgorithm(self, void* choice):
25500  */
25501   __pyx_v_self->CppSelf->setPrimalColumnPivotAlgorithm(__pyx_v_c);
25502 
25503   /* "cylp/cy/CyClpSimplex.pyx":1605
25504  *         self.CppSelf.setPerturbation(value)
25505  *
25506  *     cdef setPrimalColumnPivotAlgorithm(self, void* choice):             # <<<<<<<<<<<<<<
25507  *         '''
25508  *         Set primal simplex's pivot rule to ``choice``
25509  */
25510 
25511   /* function exit code */
25512   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25513   goto __pyx_L0;
25514   __pyx_L1_error:;
25515   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPrimalColumnPivotAlgorithm", __pyx_clineno, __pyx_lineno, __pyx_filename);
25516   __pyx_r = 0;
25517   __pyx_L0:;
25518   __Pyx_XGIVEREF(__pyx_r);
25519   __Pyx_TraceReturn(__pyx_r, 0);
25520   __Pyx_RefNannyFinishContext();
25521   return __pyx_r;
25522 }
25523 
25524 /* "cylp/cy/CyClpSimplex.pyx":1613
25525  *         self.CppSelf.setPrimalColumnPivotAlgorithm(c)
25526  *
25527  *     cdef setDualRowPivotAlgorithm(self, void* choice):             # <<<<<<<<<<<<<<
25528  *         '''
25529  *         Set dual simplex's pivot rule to ``choice``
25530  */
25531 
25532 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setDualRowPivotAlgorithm(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, void *__pyx_v_choice) {
25533   ClpDualRowPivot *__pyx_v_c;
25534   PyObject *__pyx_r = NULL;
25535   __Pyx_TraceDeclarations
25536   __Pyx_RefNannyDeclarations
25537   int __pyx_lineno = 0;
25538   const char *__pyx_filename = NULL;
25539   int __pyx_clineno = 0;
25540   __Pyx_RefNannySetupContext("setDualRowPivotAlgorithm", 0);
25541   __Pyx_TraceCall("setDualRowPivotAlgorithm", __pyx_f[0], 1613, 0, __PYX_ERR(0, 1613, __pyx_L1_error));
25542 
25543   /* "cylp/cy/CyClpSimplex.pyx":1618
25544  *         This is used when setting a pivot rule in Cython
25545  *         '''
25546  *         cdef CppClpDualRowPivot* c = <CppClpDualRowPivot*> choice             # <<<<<<<<<<<<<<
25547  *         self.CppSelf.setDualRowPivotAlgorithm(c)
25548  *
25549  */
25550   __pyx_v_c = ((ClpDualRowPivot *)__pyx_v_choice);
25551 
25552   /* "cylp/cy/CyClpSimplex.pyx":1619
25553  *         '''
25554  *         cdef CppClpDualRowPivot* c = <CppClpDualRowPivot*> choice
25555  *         self.CppSelf.setDualRowPivotAlgorithm(c)             # <<<<<<<<<<<<<<
25556  *
25557  *     def resize(self, newNumberRows, newNumberColumns):
25558  */
25559   __pyx_v_self->CppSelf->setDualRowPivotAlgorithm(__pyx_v_c);
25560 
25561   /* "cylp/cy/CyClpSimplex.pyx":1613
25562  *         self.CppSelf.setPrimalColumnPivotAlgorithm(c)
25563  *
25564  *     cdef setDualRowPivotAlgorithm(self, void* choice):             # <<<<<<<<<<<<<<
25565  *         '''
25566  *         Set dual simplex's pivot rule to ``choice``
25567  */
25568 
25569   /* function exit code */
25570   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25571   goto __pyx_L0;
25572   __pyx_L1_error:;
25573   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setDualRowPivotAlgorithm", __pyx_clineno, __pyx_lineno, __pyx_filename);
25574   __pyx_r = 0;
25575   __pyx_L0:;
25576   __Pyx_XGIVEREF(__pyx_r);
25577   __Pyx_TraceReturn(__pyx_r, 0);
25578   __Pyx_RefNannyFinishContext();
25579   return __pyx_r;
25580 }
25581 
25582 /* "cylp/cy/CyClpSimplex.pyx":1621
25583  *         self.CppSelf.setDualRowPivotAlgorithm(c)
25584  *
25585  *     def resize(self, newNumberRows, newNumberColumns):             # <<<<<<<<<<<<<<
25586  *         '''
25587  *         Resize the problem. After a call to ``resize`` the problem will have
25588  */
25589 
25590 /* Python wrapper */
25591 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_125resize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25592 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_124resize[] = "CyClpSimplex.resize(self, newNumberRows, newNumberColumns)\n\n        Resize the problem. After a call to ``resize`` the problem will have\n        ``newNumberRows`` constraints and ``newNumberColumns`` variables.\n        ";
25593 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_125resize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25594   PyObject *__pyx_v_newNumberRows = 0;
25595   PyObject *__pyx_v_newNumberColumns = 0;
25596   int __pyx_lineno = 0;
25597   const char *__pyx_filename = NULL;
25598   int __pyx_clineno = 0;
25599   PyObject *__pyx_r = 0;
25600   __Pyx_RefNannyDeclarations
25601   __Pyx_RefNannySetupContext("resize (wrapper)", 0);
25602   {
25603     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_newNumberRows,&__pyx_n_s_newNumberColumns,0};
25604     PyObject* values[2] = {0,0};
25605     if (unlikely(__pyx_kwds)) {
25606       Py_ssize_t kw_args;
25607       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
25608       switch (pos_args) {
25609         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25610         CYTHON_FALLTHROUGH;
25611         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25612         CYTHON_FALLTHROUGH;
25613         case  0: break;
25614         default: goto __pyx_L5_argtuple_error;
25615       }
25616       kw_args = PyDict_Size(__pyx_kwds);
25617       switch (pos_args) {
25618         case  0:
25619         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_newNumberRows)) != 0)) kw_args--;
25620         else goto __pyx_L5_argtuple_error;
25621         CYTHON_FALLTHROUGH;
25622         case  1:
25623         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_newNumberColumns)) != 0)) kw_args--;
25624         else {
25625           __Pyx_RaiseArgtupleInvalid("resize", 1, 2, 2, 1); __PYX_ERR(0, 1621, __pyx_L3_error)
25626         }
25627       }
25628       if (unlikely(kw_args > 0)) {
25629         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "resize") < 0)) __PYX_ERR(0, 1621, __pyx_L3_error)
25630       }
25631     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
25632       goto __pyx_L5_argtuple_error;
25633     } else {
25634       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25635       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25636     }
25637     __pyx_v_newNumberRows = values[0];
25638     __pyx_v_newNumberColumns = values[1];
25639   }
25640   goto __pyx_L4_argument_unpacking_done;
25641   __pyx_L5_argtuple_error:;
25642   __Pyx_RaiseArgtupleInvalid("resize", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1621, __pyx_L3_error)
25643   __pyx_L3_error:;
25644   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.resize", __pyx_clineno, __pyx_lineno, __pyx_filename);
25645   __Pyx_RefNannyFinishContext();
25646   return NULL;
25647   __pyx_L4_argument_unpacking_done:;
25648   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_124resize(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_newNumberRows, __pyx_v_newNumberColumns);
25649 
25650   /* function exit code */
25651   __Pyx_RefNannyFinishContext();
25652   return __pyx_r;
25653 }
25654 
25655 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_124resize(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_newNumberRows, PyObject *__pyx_v_newNumberColumns) {
25656   PyObject *__pyx_r = NULL;
25657   __Pyx_TraceDeclarations
25658   __Pyx_RefNannyDeclarations
25659   int __pyx_t_1;
25660   int __pyx_t_2;
25661   int __pyx_lineno = 0;
25662   const char *__pyx_filename = NULL;
25663   int __pyx_clineno = 0;
25664   __Pyx_RefNannySetupContext("resize", 0);
25665   __Pyx_TraceCall("resize", __pyx_f[0], 1621, 0, __PYX_ERR(0, 1621, __pyx_L1_error));
25666 
25667   /* "cylp/cy/CyClpSimplex.pyx":1626
25668  *         ``newNumberRows`` constraints and ``newNumberColumns`` variables.
25669  *         '''
25670  *         self.CppSelf.resize(newNumberRows, newNumberColumns)             # <<<<<<<<<<<<<<
25671  *
25672  *     def getBInvACol(self, col, np.ndarray[np.double_t, ndim=1] cl):
25673  */
25674   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_newNumberRows); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1626, __pyx_L1_error)
25675   __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_newNumberColumns); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1626, __pyx_L1_error)
25676   __pyx_v_self->CppSelf->resize(__pyx_t_1, __pyx_t_2);
25677 
25678   /* "cylp/cy/CyClpSimplex.pyx":1621
25679  *         self.CppSelf.setDualRowPivotAlgorithm(c)
25680  *
25681  *     def resize(self, newNumberRows, newNumberColumns):             # <<<<<<<<<<<<<<
25682  *         '''
25683  *         Resize the problem. After a call to ``resize`` the problem will have
25684  */
25685 
25686   /* function exit code */
25687   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25688   goto __pyx_L0;
25689   __pyx_L1_error:;
25690   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.resize", __pyx_clineno, __pyx_lineno, __pyx_filename);
25691   __pyx_r = NULL;
25692   __pyx_L0:;
25693   __Pyx_XGIVEREF(__pyx_r);
25694   __Pyx_TraceReturn(__pyx_r, 0);
25695   __Pyx_RefNannyFinishContext();
25696   return __pyx_r;
25697 }
25698 
25699 /* "cylp/cy/CyClpSimplex.pyx":1628
25700  *         self.CppSelf.resize(newNumberRows, newNumberColumns)
25701  *
25702  *     def getBInvACol(self, col, np.ndarray[np.double_t, ndim=1] cl):             # <<<<<<<<<<<<<<
25703  *         '''
25704  *         Compute :math:`A_B^{-1}A_{col}` and store the result in ``cl``.
25705  */
25706 
25707 /* Python wrapper */
25708 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_127getBInvACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25709 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_126getBInvACol[] = "CyClpSimplex.getBInvACol(self, col, ndarray cl)\n\n        Compute :math:`A_B^{-1}A_{col}` and store the result in ``cl``.\n        ";
25710 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_127getBInvACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25711   PyObject *__pyx_v_col = 0;
25712   PyArrayObject *__pyx_v_cl = 0;
25713   int __pyx_lineno = 0;
25714   const char *__pyx_filename = NULL;
25715   int __pyx_clineno = 0;
25716   PyObject *__pyx_r = 0;
25717   __Pyx_RefNannyDeclarations
25718   __Pyx_RefNannySetupContext("getBInvACol (wrapper)", 0);
25719   {
25720     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_col,&__pyx_n_s_cl,0};
25721     PyObject* values[2] = {0,0};
25722     if (unlikely(__pyx_kwds)) {
25723       Py_ssize_t kw_args;
25724       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
25725       switch (pos_args) {
25726         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25727         CYTHON_FALLTHROUGH;
25728         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25729         CYTHON_FALLTHROUGH;
25730         case  0: break;
25731         default: goto __pyx_L5_argtuple_error;
25732       }
25733       kw_args = PyDict_Size(__pyx_kwds);
25734       switch (pos_args) {
25735         case  0:
25736         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--;
25737         else goto __pyx_L5_argtuple_error;
25738         CYTHON_FALLTHROUGH;
25739         case  1:
25740         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cl)) != 0)) kw_args--;
25741         else {
25742           __Pyx_RaiseArgtupleInvalid("getBInvACol", 1, 2, 2, 1); __PYX_ERR(0, 1628, __pyx_L3_error)
25743         }
25744       }
25745       if (unlikely(kw_args > 0)) {
25746         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getBInvACol") < 0)) __PYX_ERR(0, 1628, __pyx_L3_error)
25747       }
25748     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
25749       goto __pyx_L5_argtuple_error;
25750     } else {
25751       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25752       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25753     }
25754     __pyx_v_col = values[0];
25755     __pyx_v_cl = ((PyArrayObject *)values[1]);
25756   }
25757   goto __pyx_L4_argument_unpacking_done;
25758   __pyx_L5_argtuple_error:;
25759   __Pyx_RaiseArgtupleInvalid("getBInvACol", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1628, __pyx_L3_error)
25760   __pyx_L3_error:;
25761   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBInvACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
25762   __Pyx_RefNannyFinishContext();
25763   return NULL;
25764   __pyx_L4_argument_unpacking_done:;
25765   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cl), __pyx_ptype_5numpy_ndarray, 1, "cl", 0))) __PYX_ERR(0, 1628, __pyx_L1_error)
25766   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_126getBInvACol(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_col, __pyx_v_cl);
25767 
25768   /* function exit code */
25769   goto __pyx_L0;
25770   __pyx_L1_error:;
25771   __pyx_r = NULL;
25772   __pyx_L0:;
25773   __Pyx_RefNannyFinishContext();
25774   return __pyx_r;
25775 }
25776 
25777 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_126getBInvACol(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_col, PyArrayObject *__pyx_v_cl) {
25778   __Pyx_LocalBuf_ND __pyx_pybuffernd_cl;
25779   __Pyx_Buffer __pyx_pybuffer_cl;
25780   PyObject *__pyx_r = NULL;
25781   __Pyx_TraceDeclarations
25782   __Pyx_RefNannyDeclarations
25783   int __pyx_t_1;
25784   int __pyx_lineno = 0;
25785   const char *__pyx_filename = NULL;
25786   int __pyx_clineno = 0;
25787   __Pyx_RefNannySetupContext("getBInvACol", 0);
25788   __Pyx_TraceCall("getBInvACol", __pyx_f[0], 1628, 0, __PYX_ERR(0, 1628, __pyx_L1_error));
25789   __pyx_pybuffer_cl.pybuffer.buf = NULL;
25790   __pyx_pybuffer_cl.refcount = 0;
25791   __pyx_pybuffernd_cl.data = NULL;
25792   __pyx_pybuffernd_cl.rcbuffer = &__pyx_pybuffer_cl;
25793   {
25794     __Pyx_BufFmt_StackElem __pyx_stack[1];
25795     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cl.rcbuffer->pybuffer, (PyObject*)__pyx_v_cl, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1628, __pyx_L1_error)
25796   }
25797   __pyx_pybuffernd_cl.diminfo[0].strides = __pyx_pybuffernd_cl.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cl.diminfo[0].shape = __pyx_pybuffernd_cl.rcbuffer->pybuffer.shape[0];
25798 
25799   /* "cylp/cy/CyClpSimplex.pyx":1632
25800  *         Compute :math:`A_B^{-1}A_{col}` and store the result in ``cl``.
25801  *         '''
25802  *         self.CppSelf.getBInvACol(col, <double*>cl.data)             # <<<<<<<<<<<<<<
25803  *
25804  *     def getBInvCol(self, col, np.ndarray[np.double_t, ndim=1] cl):
25805  */
25806   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_col); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1632, __pyx_L1_error)
25807   __pyx_v_self->CppSelf->getBInvACol(__pyx_t_1, ((double *)__pyx_v_cl->data));
25808 
25809   /* "cylp/cy/CyClpSimplex.pyx":1628
25810  *         self.CppSelf.resize(newNumberRows, newNumberColumns)
25811  *
25812  *     def getBInvACol(self, col, np.ndarray[np.double_t, ndim=1] cl):             # <<<<<<<<<<<<<<
25813  *         '''
25814  *         Compute :math:`A_B^{-1}A_{col}` and store the result in ``cl``.
25815  */
25816 
25817   /* function exit code */
25818   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25819   goto __pyx_L0;
25820   __pyx_L1_error:;
25821   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
25822     __Pyx_PyThreadState_declare
25823     __Pyx_PyThreadState_assign
25824     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
25825     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
25826   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
25827   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBInvACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
25828   __pyx_r = NULL;
25829   goto __pyx_L2;
25830   __pyx_L0:;
25831   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
25832   __pyx_L2:;
25833   __Pyx_XGIVEREF(__pyx_r);
25834   __Pyx_TraceReturn(__pyx_r, 0);
25835   __Pyx_RefNannyFinishContext();
25836   return __pyx_r;
25837 }
25838 
25839 /* "cylp/cy/CyClpSimplex.pyx":1634
25840  *         self.CppSelf.getBInvACol(col, <double*>cl.data)
25841  *
25842  *     def getBInvCol(self, col, np.ndarray[np.double_t, ndim=1] cl):             # <<<<<<<<<<<<<<
25843  *         '''
25844  *         Return :math:`A_B^{-1}_{col}` and store the result in ``cl``.
25845  */
25846 
25847 /* Python wrapper */
25848 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_129getBInvCol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25849 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_128getBInvCol[] = "CyClpSimplex.getBInvCol(self, col, ndarray cl)\n\n        Return :math:`A_B^{-1}_{col}` and store the result in ``cl``.\n        ";
25850 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_129getBInvCol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25851   PyObject *__pyx_v_col = 0;
25852   PyArrayObject *__pyx_v_cl = 0;
25853   int __pyx_lineno = 0;
25854   const char *__pyx_filename = NULL;
25855   int __pyx_clineno = 0;
25856   PyObject *__pyx_r = 0;
25857   __Pyx_RefNannyDeclarations
25858   __Pyx_RefNannySetupContext("getBInvCol (wrapper)", 0);
25859   {
25860     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_col,&__pyx_n_s_cl,0};
25861     PyObject* values[2] = {0,0};
25862     if (unlikely(__pyx_kwds)) {
25863       Py_ssize_t kw_args;
25864       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
25865       switch (pos_args) {
25866         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25867         CYTHON_FALLTHROUGH;
25868         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25869         CYTHON_FALLTHROUGH;
25870         case  0: break;
25871         default: goto __pyx_L5_argtuple_error;
25872       }
25873       kw_args = PyDict_Size(__pyx_kwds);
25874       switch (pos_args) {
25875         case  0:
25876         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--;
25877         else goto __pyx_L5_argtuple_error;
25878         CYTHON_FALLTHROUGH;
25879         case  1:
25880         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cl)) != 0)) kw_args--;
25881         else {
25882           __Pyx_RaiseArgtupleInvalid("getBInvCol", 1, 2, 2, 1); __PYX_ERR(0, 1634, __pyx_L3_error)
25883         }
25884       }
25885       if (unlikely(kw_args > 0)) {
25886         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getBInvCol") < 0)) __PYX_ERR(0, 1634, __pyx_L3_error)
25887       }
25888     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
25889       goto __pyx_L5_argtuple_error;
25890     } else {
25891       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25892       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25893     }
25894     __pyx_v_col = values[0];
25895     __pyx_v_cl = ((PyArrayObject *)values[1]);
25896   }
25897   goto __pyx_L4_argument_unpacking_done;
25898   __pyx_L5_argtuple_error:;
25899   __Pyx_RaiseArgtupleInvalid("getBInvCol", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1634, __pyx_L3_error)
25900   __pyx_L3_error:;
25901   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBInvCol", __pyx_clineno, __pyx_lineno, __pyx_filename);
25902   __Pyx_RefNannyFinishContext();
25903   return NULL;
25904   __pyx_L4_argument_unpacking_done:;
25905   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cl), __pyx_ptype_5numpy_ndarray, 1, "cl", 0))) __PYX_ERR(0, 1634, __pyx_L1_error)
25906   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_128getBInvCol(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_col, __pyx_v_cl);
25907 
25908   /* function exit code */
25909   goto __pyx_L0;
25910   __pyx_L1_error:;
25911   __pyx_r = NULL;
25912   __pyx_L0:;
25913   __Pyx_RefNannyFinishContext();
25914   return __pyx_r;
25915 }
25916 
25917 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_128getBInvCol(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_col, PyArrayObject *__pyx_v_cl) {
25918   __Pyx_LocalBuf_ND __pyx_pybuffernd_cl;
25919   __Pyx_Buffer __pyx_pybuffer_cl;
25920   PyObject *__pyx_r = NULL;
25921   __Pyx_TraceDeclarations
25922   __Pyx_RefNannyDeclarations
25923   int __pyx_t_1;
25924   int __pyx_lineno = 0;
25925   const char *__pyx_filename = NULL;
25926   int __pyx_clineno = 0;
25927   __Pyx_RefNannySetupContext("getBInvCol", 0);
25928   __Pyx_TraceCall("getBInvCol", __pyx_f[0], 1634, 0, __PYX_ERR(0, 1634, __pyx_L1_error));
25929   __pyx_pybuffer_cl.pybuffer.buf = NULL;
25930   __pyx_pybuffer_cl.refcount = 0;
25931   __pyx_pybuffernd_cl.data = NULL;
25932   __pyx_pybuffernd_cl.rcbuffer = &__pyx_pybuffer_cl;
25933   {
25934     __Pyx_BufFmt_StackElem __pyx_stack[1];
25935     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cl.rcbuffer->pybuffer, (PyObject*)__pyx_v_cl, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1634, __pyx_L1_error)
25936   }
25937   __pyx_pybuffernd_cl.diminfo[0].strides = __pyx_pybuffernd_cl.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cl.diminfo[0].shape = __pyx_pybuffernd_cl.rcbuffer->pybuffer.shape[0];
25938 
25939   /* "cylp/cy/CyClpSimplex.pyx":1638
25940  *         Return :math:`A_B^{-1}_{col}` and store the result in ``cl``.
25941  *         '''
25942  *         self.CppSelf.getBInvCol(col, <double*>cl.data)             # <<<<<<<<<<<<<<
25943  *
25944  *     def transposeTimes(self, scalar, CyCoinIndexedVector x,
25945  */
25946   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_col); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1638, __pyx_L1_error)
25947   __pyx_v_self->CppSelf->getBInvCol(__pyx_t_1, ((double *)__pyx_v_cl->data));
25948 
25949   /* "cylp/cy/CyClpSimplex.pyx":1634
25950  *         self.CppSelf.getBInvACol(col, <double*>cl.data)
25951  *
25952  *     def getBInvCol(self, col, np.ndarray[np.double_t, ndim=1] cl):             # <<<<<<<<<<<<<<
25953  *         '''
25954  *         Return :math:`A_B^{-1}_{col}` and store the result in ``cl``.
25955  */
25956 
25957   /* function exit code */
25958   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25959   goto __pyx_L0;
25960   __pyx_L1_error:;
25961   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
25962     __Pyx_PyThreadState_declare
25963     __Pyx_PyThreadState_assign
25964     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
25965     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
25966   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
25967   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBInvCol", __pyx_clineno, __pyx_lineno, __pyx_filename);
25968   __pyx_r = NULL;
25969   goto __pyx_L2;
25970   __pyx_L0:;
25971   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
25972   __pyx_L2:;
25973   __Pyx_XGIVEREF(__pyx_r);
25974   __Pyx_TraceReturn(__pyx_r, 0);
25975   __Pyx_RefNannyFinishContext();
25976   return __pyx_r;
25977 }
25978 
25979 /* "cylp/cy/CyClpSimplex.pyx":1640
25980  *         self.CppSelf.getBInvCol(col, <double*>cl.data)
25981  *
25982  *     def transposeTimes(self, scalar, CyCoinIndexedVector x,             # <<<<<<<<<<<<<<
25983  *                        CyCoinIndexedVector y, CyCoinIndexedVector z):
25984  *         '''
25985  */
25986 
25987 /* Python wrapper */
25988 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_131transposeTimes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25989 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_130transposeTimes[] = "CyClpSimplex.transposeTimes(self, scalar, CyCoinIndexedVector x, CyCoinIndexedVector y, CyCoinIndexedVector z)\n\n        Compute :math:`x * scalar * A + y` and store the result in ``z``.\n        ";
25990 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_131transposeTimes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25991   PyObject *__pyx_v_scalar = 0;
25992   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_x = 0;
25993   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_y = 0;
25994   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_z = 0;
25995   int __pyx_lineno = 0;
25996   const char *__pyx_filename = NULL;
25997   int __pyx_clineno = 0;
25998   PyObject *__pyx_r = 0;
25999   __Pyx_RefNannyDeclarations
26000   __Pyx_RefNannySetupContext("transposeTimes (wrapper)", 0);
26001   {
26002     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scalar,&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_z,0};
26003     PyObject* values[4] = {0,0,0,0};
26004     if (unlikely(__pyx_kwds)) {
26005       Py_ssize_t kw_args;
26006       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
26007       switch (pos_args) {
26008         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
26009         CYTHON_FALLTHROUGH;
26010         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26011         CYTHON_FALLTHROUGH;
26012         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26013         CYTHON_FALLTHROUGH;
26014         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26015         CYTHON_FALLTHROUGH;
26016         case  0: break;
26017         default: goto __pyx_L5_argtuple_error;
26018       }
26019       kw_args = PyDict_Size(__pyx_kwds);
26020       switch (pos_args) {
26021         case  0:
26022         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scalar)) != 0)) kw_args--;
26023         else goto __pyx_L5_argtuple_error;
26024         CYTHON_FALLTHROUGH;
26025         case  1:
26026         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
26027         else {
26028           __Pyx_RaiseArgtupleInvalid("transposeTimes", 1, 4, 4, 1); __PYX_ERR(0, 1640, __pyx_L3_error)
26029         }
26030         CYTHON_FALLTHROUGH;
26031         case  2:
26032         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
26033         else {
26034           __Pyx_RaiseArgtupleInvalid("transposeTimes", 1, 4, 4, 2); __PYX_ERR(0, 1640, __pyx_L3_error)
26035         }
26036         CYTHON_FALLTHROUGH;
26037         case  3:
26038         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
26039         else {
26040           __Pyx_RaiseArgtupleInvalid("transposeTimes", 1, 4, 4, 3); __PYX_ERR(0, 1640, __pyx_L3_error)
26041         }
26042       }
26043       if (unlikely(kw_args > 0)) {
26044         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transposeTimes") < 0)) __PYX_ERR(0, 1640, __pyx_L3_error)
26045       }
26046     } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
26047       goto __pyx_L5_argtuple_error;
26048     } else {
26049       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26050       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26051       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26052       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
26053     }
26054     __pyx_v_scalar = values[0];
26055     __pyx_v_x = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
26056     __pyx_v_y = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[2]);
26057     __pyx_v_z = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[3]);
26058   }
26059   goto __pyx_L4_argument_unpacking_done;
26060   __pyx_L5_argtuple_error:;
26061   __Pyx_RaiseArgtupleInvalid("transposeTimes", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1640, __pyx_L3_error)
26062   __pyx_L3_error:;
26063   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimes", __pyx_clineno, __pyx_lineno, __pyx_filename);
26064   __Pyx_RefNannyFinishContext();
26065   return NULL;
26066   __pyx_L4_argument_unpacking_done:;
26067   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "x", 0))) __PYX_ERR(0, 1640, __pyx_L1_error)
26068   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "y", 0))) __PYX_ERR(0, 1641, __pyx_L1_error)
26069   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_z), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "z", 0))) __PYX_ERR(0, 1641, __pyx_L1_error)
26070   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_130transposeTimes(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_scalar, __pyx_v_x, __pyx_v_y, __pyx_v_z);
26071 
26072   /* function exit code */
26073   goto __pyx_L0;
26074   __pyx_L1_error:;
26075   __pyx_r = NULL;
26076   __pyx_L0:;
26077   __Pyx_RefNannyFinishContext();
26078   return __pyx_r;
26079 }
26080 
26081 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_130transposeTimes(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_scalar, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_x, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_y, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_z) {
26082   PyObject *__pyx_r = NULL;
26083   __Pyx_TraceDeclarations
26084   __Pyx_RefNannyDeclarations
26085   double __pyx_t_1;
26086   int __pyx_lineno = 0;
26087   const char *__pyx_filename = NULL;
26088   int __pyx_clineno = 0;
26089   __Pyx_RefNannySetupContext("transposeTimes", 0);
26090   __Pyx_TraceCall("transposeTimes", __pyx_f[0], 1640, 0, __PYX_ERR(0, 1640, __pyx_L1_error));
26091 
26092   /* "cylp/cy/CyClpSimplex.pyx":1645
26093  *         Compute :math:`x * scalar * A + y` and store the result in ``z``.
26094  *         '''
26095  *         self.CppSelf.transposeTimes(self.CppSelf, scalar,             # <<<<<<<<<<<<<<
26096  *                                     x.CppSelf, y.CppSelf, z.CppSelf)
26097  *
26098  */
26099   __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_scalar); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1645, __pyx_L1_error)
26100 
26101   /* "cylp/cy/CyClpSimplex.pyx":1646
26102  *         '''
26103  *         self.CppSelf.transposeTimes(self.CppSelf, scalar,
26104  *                                     x.CppSelf, y.CppSelf, z.CppSelf)             # <<<<<<<<<<<<<<
26105  *
26106  *     def transposeTimesSubset(self, number,
26107  */
26108   __pyx_v_self->CppSelf->transposeTimes(__pyx_v_self->CppSelf, __pyx_t_1, __pyx_v_x->CppSelf, __pyx_v_y->CppSelf, __pyx_v_z->CppSelf);
26109 
26110   /* "cylp/cy/CyClpSimplex.pyx":1640
26111  *         self.CppSelf.getBInvCol(col, <double*>cl.data)
26112  *
26113  *     def transposeTimes(self, scalar, CyCoinIndexedVector x,             # <<<<<<<<<<<<<<
26114  *                        CyCoinIndexedVector y, CyCoinIndexedVector z):
26115  *         '''
26116  */
26117 
26118   /* function exit code */
26119   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26120   goto __pyx_L0;
26121   __pyx_L1_error:;
26122   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimes", __pyx_clineno, __pyx_lineno, __pyx_filename);
26123   __pyx_r = NULL;
26124   __pyx_L0:;
26125   __Pyx_XGIVEREF(__pyx_r);
26126   __Pyx_TraceReturn(__pyx_r, 0);
26127   __Pyx_RefNannyFinishContext();
26128   return __pyx_r;
26129 }
26130 
26131 /* "cylp/cy/CyClpSimplex.pyx":1648
26132  *                                     x.CppSelf, y.CppSelf, z.CppSelf)
26133  *
26134  *     def transposeTimesSubset(self, number,             # <<<<<<<<<<<<<<
26135  *                              np.ndarray[np.int64_t, ndim=1] which,
26136  *                              np.ndarray[np.double_t, ndim=1] pi,
26137  */
26138 
26139 /* Python wrapper */
26140 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_133transposeTimesSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
26141 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_132transposeTimesSubset[] = "CyClpSimplex.transposeTimesSubset(self, number, ndarray which, ndarray pi, ndarray y)\n\n        Compute :math:`y_{which} - pi^{T}A_{which}` where ``which`` is a\n        variable index set. Store the result in ``y``.\n        ";
26142 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_133transposeTimesSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
26143   PyObject *__pyx_v_number = 0;
26144   PyArrayObject *__pyx_v_which = 0;
26145   PyArrayObject *__pyx_v_pi = 0;
26146   PyArrayObject *__pyx_v_y = 0;
26147   int __pyx_lineno = 0;
26148   const char *__pyx_filename = NULL;
26149   int __pyx_clineno = 0;
26150   PyObject *__pyx_r = 0;
26151   __Pyx_RefNannyDeclarations
26152   __Pyx_RefNannySetupContext("transposeTimesSubset (wrapper)", 0);
26153   {
26154     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_number,&__pyx_n_s_which,&__pyx_n_s_pi,&__pyx_n_s_y,0};
26155     PyObject* values[4] = {0,0,0,0};
26156     if (unlikely(__pyx_kwds)) {
26157       Py_ssize_t kw_args;
26158       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
26159       switch (pos_args) {
26160         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
26161         CYTHON_FALLTHROUGH;
26162         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26163         CYTHON_FALLTHROUGH;
26164         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26165         CYTHON_FALLTHROUGH;
26166         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26167         CYTHON_FALLTHROUGH;
26168         case  0: break;
26169         default: goto __pyx_L5_argtuple_error;
26170       }
26171       kw_args = PyDict_Size(__pyx_kwds);
26172       switch (pos_args) {
26173         case  0:
26174         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_number)) != 0)) kw_args--;
26175         else goto __pyx_L5_argtuple_error;
26176         CYTHON_FALLTHROUGH;
26177         case  1:
26178         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_which)) != 0)) kw_args--;
26179         else {
26180           __Pyx_RaiseArgtupleInvalid("transposeTimesSubset", 1, 4, 4, 1); __PYX_ERR(0, 1648, __pyx_L3_error)
26181         }
26182         CYTHON_FALLTHROUGH;
26183         case  2:
26184         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pi)) != 0)) kw_args--;
26185         else {
26186           __Pyx_RaiseArgtupleInvalid("transposeTimesSubset", 1, 4, 4, 2); __PYX_ERR(0, 1648, __pyx_L3_error)
26187         }
26188         CYTHON_FALLTHROUGH;
26189         case  3:
26190         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
26191         else {
26192           __Pyx_RaiseArgtupleInvalid("transposeTimesSubset", 1, 4, 4, 3); __PYX_ERR(0, 1648, __pyx_L3_error)
26193         }
26194       }
26195       if (unlikely(kw_args > 0)) {
26196         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transposeTimesSubset") < 0)) __PYX_ERR(0, 1648, __pyx_L3_error)
26197       }
26198     } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
26199       goto __pyx_L5_argtuple_error;
26200     } else {
26201       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26202       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26203       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26204       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
26205     }
26206     __pyx_v_number = values[0];
26207     __pyx_v_which = ((PyArrayObject *)values[1]);
26208     __pyx_v_pi = ((PyArrayObject *)values[2]);
26209     __pyx_v_y = ((PyArrayObject *)values[3]);
26210   }
26211   goto __pyx_L4_argument_unpacking_done;
26212   __pyx_L5_argtuple_error:;
26213   __Pyx_RaiseArgtupleInvalid("transposeTimesSubset", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1648, __pyx_L3_error)
26214   __pyx_L3_error:;
26215   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimesSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
26216   __Pyx_RefNannyFinishContext();
26217   return NULL;
26218   __pyx_L4_argument_unpacking_done:;
26219   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_which), __pyx_ptype_5numpy_ndarray, 1, "which", 0))) __PYX_ERR(0, 1649, __pyx_L1_error)
26220   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pi), __pyx_ptype_5numpy_ndarray, 1, "pi", 0))) __PYX_ERR(0, 1650, __pyx_L1_error)
26221   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_5numpy_ndarray, 1, "y", 0))) __PYX_ERR(0, 1651, __pyx_L1_error)
26222   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_132transposeTimesSubset(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_number, __pyx_v_which, __pyx_v_pi, __pyx_v_y);
26223 
26224   /* function exit code */
26225   goto __pyx_L0;
26226   __pyx_L1_error:;
26227   __pyx_r = NULL;
26228   __pyx_L0:;
26229   __Pyx_RefNannyFinishContext();
26230   return __pyx_r;
26231 }
26232 
26233 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_132transposeTimesSubset(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_number, PyArrayObject *__pyx_v_which, PyArrayObject *__pyx_v_pi, PyArrayObject *__pyx_v_y) {
26234   __Pyx_LocalBuf_ND __pyx_pybuffernd_pi;
26235   __Pyx_Buffer __pyx_pybuffer_pi;
26236   __Pyx_LocalBuf_ND __pyx_pybuffernd_which;
26237   __Pyx_Buffer __pyx_pybuffer_which;
26238   __Pyx_LocalBuf_ND __pyx_pybuffernd_y;
26239   __Pyx_Buffer __pyx_pybuffer_y;
26240   PyObject *__pyx_r = NULL;
26241   __Pyx_TraceDeclarations
26242   __Pyx_RefNannyDeclarations
26243   int __pyx_t_1;
26244   int __pyx_lineno = 0;
26245   const char *__pyx_filename = NULL;
26246   int __pyx_clineno = 0;
26247   __Pyx_RefNannySetupContext("transposeTimesSubset", 0);
26248   __Pyx_TraceCall("transposeTimesSubset", __pyx_f[0], 1648, 0, __PYX_ERR(0, 1648, __pyx_L1_error));
26249   __pyx_pybuffer_which.pybuffer.buf = NULL;
26250   __pyx_pybuffer_which.refcount = 0;
26251   __pyx_pybuffernd_which.data = NULL;
26252   __pyx_pybuffernd_which.rcbuffer = &__pyx_pybuffer_which;
26253   __pyx_pybuffer_pi.pybuffer.buf = NULL;
26254   __pyx_pybuffer_pi.refcount = 0;
26255   __pyx_pybuffernd_pi.data = NULL;
26256   __pyx_pybuffernd_pi.rcbuffer = &__pyx_pybuffer_pi;
26257   __pyx_pybuffer_y.pybuffer.buf = NULL;
26258   __pyx_pybuffer_y.refcount = 0;
26259   __pyx_pybuffernd_y.data = NULL;
26260   __pyx_pybuffernd_y.rcbuffer = &__pyx_pybuffer_y;
26261   {
26262     __Pyx_BufFmt_StackElem __pyx_stack[1];
26263     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_which.rcbuffer->pybuffer, (PyObject*)__pyx_v_which, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1648, __pyx_L1_error)
26264   }
26265   __pyx_pybuffernd_which.diminfo[0].strides = __pyx_pybuffernd_which.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_which.diminfo[0].shape = __pyx_pybuffernd_which.rcbuffer->pybuffer.shape[0];
26266   {
26267     __Pyx_BufFmt_StackElem __pyx_stack[1];
26268     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pi.rcbuffer->pybuffer, (PyObject*)__pyx_v_pi, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1648, __pyx_L1_error)
26269   }
26270   __pyx_pybuffernd_pi.diminfo[0].strides = __pyx_pybuffernd_pi.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pi.diminfo[0].shape = __pyx_pybuffernd_pi.rcbuffer->pybuffer.shape[0];
26271   {
26272     __Pyx_BufFmt_StackElem __pyx_stack[1];
26273     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_y.rcbuffer->pybuffer, (PyObject*)__pyx_v_y, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1648, __pyx_L1_error)
26274   }
26275   __pyx_pybuffernd_y.diminfo[0].strides = __pyx_pybuffernd_y.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_y.diminfo[0].shape = __pyx_pybuffernd_y.rcbuffer->pybuffer.shape[0];
26276 
26277   /* "cylp/cy/CyClpSimplex.pyx":1656
26278  *         variable index set. Store the result in ``y``.
26279  *         '''
26280  *         self.CppSelf.transposeTimesSubset(number, <int*>which.data,             # <<<<<<<<<<<<<<
26281  *                                           <double*>pi.data, <double*>y.data)
26282  *
26283  */
26284   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_number); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1656, __pyx_L1_error)
26285 
26286   /* "cylp/cy/CyClpSimplex.pyx":1657
26287  *         '''
26288  *         self.CppSelf.transposeTimesSubset(number, <int*>which.data,
26289  *                                           <double*>pi.data, <double*>y.data)             # <<<<<<<<<<<<<<
26290  *
26291  *     def transposeTimesSubsetAll(self,
26292  */
26293   __pyx_v_self->CppSelf->transposeTimesSubset(__pyx_t_1, ((int *)__pyx_v_which->data), ((double *)__pyx_v_pi->data), ((double *)__pyx_v_y->data));
26294 
26295   /* "cylp/cy/CyClpSimplex.pyx":1648
26296  *                                     x.CppSelf, y.CppSelf, z.CppSelf)
26297  *
26298  *     def transposeTimesSubset(self, number,             # <<<<<<<<<<<<<<
26299  *                              np.ndarray[np.int64_t, ndim=1] which,
26300  *                              np.ndarray[np.double_t, ndim=1] pi,
26301  */
26302 
26303   /* function exit code */
26304   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26305   goto __pyx_L0;
26306   __pyx_L1_error:;
26307   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
26308     __Pyx_PyThreadState_declare
26309     __Pyx_PyThreadState_assign
26310     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
26311     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pi.rcbuffer->pybuffer);
26312     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
26313     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
26314   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
26315   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimesSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
26316   __pyx_r = NULL;
26317   goto __pyx_L2;
26318   __pyx_L0:;
26319   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pi.rcbuffer->pybuffer);
26320   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
26321   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
26322   __pyx_L2:;
26323   __Pyx_XGIVEREF(__pyx_r);
26324   __Pyx_TraceReturn(__pyx_r, 0);
26325   __Pyx_RefNannyFinishContext();
26326   return __pyx_r;
26327 }
26328 
26329 /* "cylp/cy/CyClpSimplex.pyx":1659
26330  *                                           <double*>pi.data, <double*>y.data)
26331  *
26332  *     def transposeTimesSubsetAll(self,             # <<<<<<<<<<<<<<
26333  *                              np.ndarray[np.int64_t, ndim=1] which,
26334  *                              np.ndarray[np.double_t, ndim=1] pi,
26335  */
26336 
26337 /* Python wrapper */
26338 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_135transposeTimesSubsetAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
26339 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_134transposeTimesSubsetAll[] = "CyClpSimplex.transposeTimesSubsetAll(self, ndarray which, ndarray pi, ndarray y)\n\n        Same as :func:`transposeTimesSubset` but here ``which``\n        can also address slack variables.\n        ";
26340 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_135transposeTimesSubsetAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
26341   PyArrayObject *__pyx_v_which = 0;
26342   PyArrayObject *__pyx_v_pi = 0;
26343   PyArrayObject *__pyx_v_y = 0;
26344   int __pyx_lineno = 0;
26345   const char *__pyx_filename = NULL;
26346   int __pyx_clineno = 0;
26347   PyObject *__pyx_r = 0;
26348   __Pyx_RefNannyDeclarations
26349   __Pyx_RefNannySetupContext("transposeTimesSubsetAll (wrapper)", 0);
26350   {
26351     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_which,&__pyx_n_s_pi,&__pyx_n_s_y,0};
26352     PyObject* values[3] = {0,0,0};
26353     if (unlikely(__pyx_kwds)) {
26354       Py_ssize_t kw_args;
26355       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
26356       switch (pos_args) {
26357         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26358         CYTHON_FALLTHROUGH;
26359         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26360         CYTHON_FALLTHROUGH;
26361         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26362         CYTHON_FALLTHROUGH;
26363         case  0: break;
26364         default: goto __pyx_L5_argtuple_error;
26365       }
26366       kw_args = PyDict_Size(__pyx_kwds);
26367       switch (pos_args) {
26368         case  0:
26369         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_which)) != 0)) kw_args--;
26370         else goto __pyx_L5_argtuple_error;
26371         CYTHON_FALLTHROUGH;
26372         case  1:
26373         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pi)) != 0)) kw_args--;
26374         else {
26375           __Pyx_RaiseArgtupleInvalid("transposeTimesSubsetAll", 1, 3, 3, 1); __PYX_ERR(0, 1659, __pyx_L3_error)
26376         }
26377         CYTHON_FALLTHROUGH;
26378         case  2:
26379         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
26380         else {
26381           __Pyx_RaiseArgtupleInvalid("transposeTimesSubsetAll", 1, 3, 3, 2); __PYX_ERR(0, 1659, __pyx_L3_error)
26382         }
26383       }
26384       if (unlikely(kw_args > 0)) {
26385         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transposeTimesSubsetAll") < 0)) __PYX_ERR(0, 1659, __pyx_L3_error)
26386       }
26387     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
26388       goto __pyx_L5_argtuple_error;
26389     } else {
26390       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26391       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26392       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26393     }
26394     __pyx_v_which = ((PyArrayObject *)values[0]);
26395     __pyx_v_pi = ((PyArrayObject *)values[1]);
26396     __pyx_v_y = ((PyArrayObject *)values[2]);
26397   }
26398   goto __pyx_L4_argument_unpacking_done;
26399   __pyx_L5_argtuple_error:;
26400   __Pyx_RaiseArgtupleInvalid("transposeTimesSubsetAll", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1659, __pyx_L3_error)
26401   __pyx_L3_error:;
26402   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimesSubsetAll", __pyx_clineno, __pyx_lineno, __pyx_filename);
26403   __Pyx_RefNannyFinishContext();
26404   return NULL;
26405   __pyx_L4_argument_unpacking_done:;
26406   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_which), __pyx_ptype_5numpy_ndarray, 1, "which", 0))) __PYX_ERR(0, 1660, __pyx_L1_error)
26407   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pi), __pyx_ptype_5numpy_ndarray, 1, "pi", 0))) __PYX_ERR(0, 1661, __pyx_L1_error)
26408   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_5numpy_ndarray, 1, "y", 0))) __PYX_ERR(0, 1662, __pyx_L1_error)
26409   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_134transposeTimesSubsetAll(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_which, __pyx_v_pi, __pyx_v_y);
26410 
26411   /* function exit code */
26412   goto __pyx_L0;
26413   __pyx_L1_error:;
26414   __pyx_r = NULL;
26415   __pyx_L0:;
26416   __Pyx_RefNannyFinishContext();
26417   return __pyx_r;
26418 }
26419 
26420 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_134transposeTimesSubsetAll(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_which, PyArrayObject *__pyx_v_pi, PyArrayObject *__pyx_v_y) {
26421   __Pyx_LocalBuf_ND __pyx_pybuffernd_pi;
26422   __Pyx_Buffer __pyx_pybuffer_pi;
26423   __Pyx_LocalBuf_ND __pyx_pybuffernd_which;
26424   __Pyx_Buffer __pyx_pybuffer_which;
26425   __Pyx_LocalBuf_ND __pyx_pybuffernd_y;
26426   __Pyx_Buffer __pyx_pybuffer_y;
26427   PyObject *__pyx_r = NULL;
26428   __Pyx_TraceDeclarations
26429   __Pyx_RefNannyDeclarations
26430   Py_ssize_t __pyx_t_1;
26431   int __pyx_lineno = 0;
26432   const char *__pyx_filename = NULL;
26433   int __pyx_clineno = 0;
26434   __Pyx_RefNannySetupContext("transposeTimesSubsetAll", 0);
26435   __Pyx_TraceCall("transposeTimesSubsetAll", __pyx_f[0], 1659, 0, __PYX_ERR(0, 1659, __pyx_L1_error));
26436   __pyx_pybuffer_which.pybuffer.buf = NULL;
26437   __pyx_pybuffer_which.refcount = 0;
26438   __pyx_pybuffernd_which.data = NULL;
26439   __pyx_pybuffernd_which.rcbuffer = &__pyx_pybuffer_which;
26440   __pyx_pybuffer_pi.pybuffer.buf = NULL;
26441   __pyx_pybuffer_pi.refcount = 0;
26442   __pyx_pybuffernd_pi.data = NULL;
26443   __pyx_pybuffernd_pi.rcbuffer = &__pyx_pybuffer_pi;
26444   __pyx_pybuffer_y.pybuffer.buf = NULL;
26445   __pyx_pybuffer_y.refcount = 0;
26446   __pyx_pybuffernd_y.data = NULL;
26447   __pyx_pybuffernd_y.rcbuffer = &__pyx_pybuffer_y;
26448   {
26449     __Pyx_BufFmt_StackElem __pyx_stack[1];
26450     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_which.rcbuffer->pybuffer, (PyObject*)__pyx_v_which, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1659, __pyx_L1_error)
26451   }
26452   __pyx_pybuffernd_which.diminfo[0].strides = __pyx_pybuffernd_which.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_which.diminfo[0].shape = __pyx_pybuffernd_which.rcbuffer->pybuffer.shape[0];
26453   {
26454     __Pyx_BufFmt_StackElem __pyx_stack[1];
26455     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pi.rcbuffer->pybuffer, (PyObject*)__pyx_v_pi, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1659, __pyx_L1_error)
26456   }
26457   __pyx_pybuffernd_pi.diminfo[0].strides = __pyx_pybuffernd_pi.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pi.diminfo[0].shape = __pyx_pybuffernd_pi.rcbuffer->pybuffer.shape[0];
26458   {
26459     __Pyx_BufFmt_StackElem __pyx_stack[1];
26460     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_y.rcbuffer->pybuffer, (PyObject*)__pyx_v_y, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1659, __pyx_L1_error)
26461   }
26462   __pyx_pybuffernd_y.diminfo[0].strides = __pyx_pybuffernd_y.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_y.diminfo[0].shape = __pyx_pybuffernd_y.rcbuffer->pybuffer.shape[0];
26463 
26464   /* "cylp/cy/CyClpSimplex.pyx":1667
26465  *         can also address slack variables.
26466  *         '''
26467  *         self.CppSelf.transposeTimesSubsetAll(len(which),             # <<<<<<<<<<<<<<
26468  *                                             <long long int*>which.data,
26469  *                                             <double*>pi.data,
26470  */
26471   __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_which)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1667, __pyx_L1_error)
26472 
26473   /* "cylp/cy/CyClpSimplex.pyx":1670
26474  *                                             <long long int*>which.data,
26475  *                                             <double*>pi.data,
26476  *                                             <double*>y.data)             # <<<<<<<<<<<<<<
26477  *
26478  *     def isInteger(self, ind):
26479  */
26480   __pyx_v_self->CppSelf->transposeTimesSubsetAll(__pyx_t_1, ((PY_LONG_LONG *)__pyx_v_which->data), ((double *)__pyx_v_pi->data), ((double *)__pyx_v_y->data));
26481 
26482   /* "cylp/cy/CyClpSimplex.pyx":1659
26483  *                                           <double*>pi.data, <double*>y.data)
26484  *
26485  *     def transposeTimesSubsetAll(self,             # <<<<<<<<<<<<<<
26486  *                              np.ndarray[np.int64_t, ndim=1] which,
26487  *                              np.ndarray[np.double_t, ndim=1] pi,
26488  */
26489 
26490   /* function exit code */
26491   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26492   goto __pyx_L0;
26493   __pyx_L1_error:;
26494   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
26495     __Pyx_PyThreadState_declare
26496     __Pyx_PyThreadState_assign
26497     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
26498     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pi.rcbuffer->pybuffer);
26499     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
26500     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
26501   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
26502   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimesSubsetAll", __pyx_clineno, __pyx_lineno, __pyx_filename);
26503   __pyx_r = NULL;
26504   goto __pyx_L2;
26505   __pyx_L0:;
26506   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pi.rcbuffer->pybuffer);
26507   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
26508   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
26509   __pyx_L2:;
26510   __Pyx_XGIVEREF(__pyx_r);
26511   __Pyx_TraceReturn(__pyx_r, 0);
26512   __Pyx_RefNannyFinishContext();
26513   return __pyx_r;
26514 }
26515 
26516 /* "cylp/cy/CyClpSimplex.pyx":1672
26517  *                                             <double*>y.data)
26518  *
26519  *     def isInteger(self, ind):             # <<<<<<<<<<<<<<
26520  *         '''
26521  *         Returns True if the variable index ``ind`` is integer.
26522  */
26523 
26524 /* Python wrapper */
26525 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_137isInteger(PyObject *__pyx_v_self, PyObject *__pyx_v_ind); /*proto*/
26526 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_136isInteger[] = "CyClpSimplex.isInteger(self, ind)\n\n        Returns True if the variable index ``ind`` is integer.\n        ";
26527 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_137isInteger(PyObject *__pyx_v_self, PyObject *__pyx_v_ind) {
26528   PyObject *__pyx_r = 0;
26529   __Pyx_RefNannyDeclarations
26530   __Pyx_RefNannySetupContext("isInteger (wrapper)", 0);
26531   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_136isInteger(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_ind));
26532 
26533   /* function exit code */
26534   __Pyx_RefNannyFinishContext();
26535   return __pyx_r;
26536 }
26537 
26538 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_136isInteger(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind) {
26539   PyObject *__pyx_r = NULL;
26540   __Pyx_TraceDeclarations
26541   __Pyx_RefNannyDeclarations
26542   int __pyx_t_1;
26543   PyObject *__pyx_t_2 = NULL;
26544   int __pyx_lineno = 0;
26545   const char *__pyx_filename = NULL;
26546   int __pyx_clineno = 0;
26547   __Pyx_RefNannySetupContext("isInteger", 0);
26548   __Pyx_TraceCall("isInteger", __pyx_f[0], 1672, 0, __PYX_ERR(0, 1672, __pyx_L1_error));
26549 
26550   /* "cylp/cy/CyClpSimplex.pyx":1676
26551  *         Returns True if the variable index ``ind`` is integer.
26552  *         '''
26553  *         return self.CppSelf.isInteger(ind)             # <<<<<<<<<<<<<<
26554  *
26555  *     def setInteger(self, arg):
26556  */
26557   __Pyx_XDECREF(__pyx_r);
26558   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_ind); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1676, __pyx_L1_error)
26559   __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInteger(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1676, __pyx_L1_error)
26560   __Pyx_GOTREF(__pyx_t_2);
26561   __pyx_r = __pyx_t_2;
26562   __pyx_t_2 = 0;
26563   goto __pyx_L0;
26564 
26565   /* "cylp/cy/CyClpSimplex.pyx":1672
26566  *                                             <double*>y.data)
26567  *
26568  *     def isInteger(self, ind):             # <<<<<<<<<<<<<<
26569  *         '''
26570  *         Returns True if the variable index ``ind`` is integer.
26571  */
26572 
26573   /* function exit code */
26574   __pyx_L1_error:;
26575   __Pyx_XDECREF(__pyx_t_2);
26576   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.isInteger", __pyx_clineno, __pyx_lineno, __pyx_filename);
26577   __pyx_r = NULL;
26578   __pyx_L0:;
26579   __Pyx_XGIVEREF(__pyx_r);
26580   __Pyx_TraceReturn(__pyx_r, 0);
26581   __Pyx_RefNannyFinishContext();
26582   return __pyx_r;
26583 }
26584 
26585 /* "cylp/cy/CyClpSimplex.pyx":1678
26586  *         return self.CppSelf.isInteger(ind)
26587  *
26588  *     def setInteger(self, arg):             # <<<<<<<<<<<<<<
26589  *         '''
26590  *         if ``arg`` is an integer: mark variable index ``arg`` as integer.
26591  */
26592 
26593 /* Python wrapper */
26594 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_139setInteger(PyObject *__pyx_v_self, PyObject *__pyx_v_arg); /*proto*/
26595 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_138setInteger[] = "CyClpSimplex.setInteger(self, arg)\n\n        if ``arg`` is an integer: mark variable index ``arg`` as integer.\n        if ``arg`` is a :class:`CyLPVar` object: mark variable\n        ``arg`` as integer. Here is an example of the latter:\n\n        >>> import numpy as np\n        >>> from cylp.cy import CyClpSimplex\n        >>> from cylp.py.modeling.CyLPModel import CyLPModel, CyLPArray\n        >>> model = CyLPModel()\n        >>>\n        >>> x = model.addVariable('x', 3)\n        >>> y = model.addVariable('y', 2)\n        >>>\n        >>> A = np.matrix([[1., 2., 0],[1., 0, 1.]])\n        >>> B = np.matrix([[1., 0, 0], [0, 0, 1.]])\n        >>> D = np.matrix([[1., 2.],[0, 1]])\n        >>> a = CyLPArray([5, 2.5])\n        >>> b = CyLPArray([4.2, 3])\n        >>> x_u= CyLPArray([2., 3.5])\n        >>>\n        >>> model += A*x <= a\n        >>> model += 2 <= B * x + D * y <= b\n        >>> model += y >= 0\n        >>> model += 1.1 <= x[1:3] <= x_u\n        >>>\n        >>> c = CyLPArray([1., -2., 3.])\n        >>> model.objective = c * x + 2 * y.sum()\n        >>>\n        >>>\n        >>> s = CyClpSimplex(model)\n        >>> s.setInteger(x[1:3])\n        >>>\n        >>> cbcModel = s.getCbcModel()\n        >>> cbcModel.solve()\n        0\n        >>> print(cbcModel.status)\n        'solution'\n        >>>\n        >>> sol_x = cbcModel.primalVariableSolution['x']\n        >>> (abs(sol_x -\n        ...     np.array([0.5, 2, 2]) ) <= 10**-6).all()\n        True\n        >>> sol_y = cbcModel.primalVariableSolution['y']\n        >>> (abs(sol_y -\n        ...     np.array([0, 0.75]) ) <= 10**-6).all()\n        True\n\n        ";
26596 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_139setInteger(PyObject *__pyx_v_self, PyObject *__pyx_v_arg) {
26597   PyObject *__pyx_r = 0;
26598   __Pyx_RefNannyDeclarations
26599   __Pyx_RefNannySetupContext("setInteger (wrapper)", 0);
26600   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_138setInteger(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_arg));
26601 
26602   /* function exit code */
26603   __Pyx_RefNannyFinishContext();
26604   return __pyx_r;
26605 }
26606 
26607 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_138setInteger(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg) {
26608   PyObject *__pyx_v_var = NULL;
26609   PyObject *__pyx_v_model = NULL;
26610   PyObject *__pyx_v_inds = NULL;
26611   PyObject *__pyx_v_varName = NULL;
26612   PyObject *__pyx_v_x = NULL;
26613   PyObject *__pyx_v_i = NULL;
26614   PyObject *__pyx_r = NULL;
26615   __Pyx_TraceDeclarations
26616   __Pyx_RefNannyDeclarations
26617   int __pyx_t_1;
26618   int __pyx_t_2;
26619   int __pyx_t_3;
26620   int __pyx_t_4;
26621   PyObject *__pyx_t_5 = NULL;
26622   PyObject *__pyx_t_6 = NULL;
26623   PyObject *__pyx_t_7 = NULL;
26624   Py_ssize_t __pyx_t_8;
26625   PyObject *(*__pyx_t_9)(PyObject *);
26626   int __pyx_lineno = 0;
26627   const char *__pyx_filename = NULL;
26628   int __pyx_clineno = 0;
26629   __Pyx_RefNannySetupContext("setInteger", 0);
26630   __Pyx_TraceCall("setInteger", __pyx_f[0], 1678, 0, __PYX_ERR(0, 1678, __pyx_L1_error));
26631 
26632   /* "cylp/cy/CyClpSimplex.pyx":1728
26633  *         '''
26634  *
26635  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
26636  *             self.CppSelf.setInteger(arg)
26637  *         elif True:  # isinstance(arg, CyLPVar):
26638  */
26639   __pyx_t_2 = PyInt_Check(__pyx_v_arg);
26640   __pyx_t_3 = (__pyx_t_2 != 0);
26641   if (!__pyx_t_3) {
26642   } else {
26643     __pyx_t_1 = __pyx_t_3;
26644     goto __pyx_L4_bool_binop_done;
26645   }
26646   __pyx_t_3 = PyLong_Check(__pyx_v_arg);
26647   __pyx_t_2 = (__pyx_t_3 != 0);
26648   __pyx_t_1 = __pyx_t_2;
26649   __pyx_L4_bool_binop_done:;
26650   __pyx_t_2 = (__pyx_t_1 != 0);
26651   if (__pyx_t_2) {
26652 
26653     /* "cylp/cy/CyClpSimplex.pyx":1729
26654  *
26655  *         if isinstance(arg, (int, long)):
26656  *             self.CppSelf.setInteger(arg)             # <<<<<<<<<<<<<<
26657  *         elif True:  # isinstance(arg, CyLPVar):
26658  *             if self.cyLPModel is None:
26659  */
26660     __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_arg); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1729, __pyx_L1_error)
26661     __pyx_v_self->CppSelf->setInteger(__pyx_t_4);
26662 
26663     /* "cylp/cy/CyClpSimplex.pyx":1728
26664  *         '''
26665  *
26666  *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
26667  *             self.CppSelf.setInteger(arg)
26668  *         elif True:  # isinstance(arg, CyLPVar):
26669  */
26670     goto __pyx_L3;
26671   }
26672 
26673   /* "cylp/cy/CyClpSimplex.pyx":1731
26674  *             self.CppSelf.setInteger(arg)
26675  *         elif True:  # isinstance(arg, CyLPVar):
26676  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
26677  *                 raise Exception('The argument of setInteger can be ' \
26678  *                                 'a CyLPVar only if the object is built ' \
26679  */
26680   /*else*/ {
26681     __pyx_t_2 = (__pyx_v_self->cyLPModel == Py_None);
26682     __pyx_t_1 = (__pyx_t_2 != 0);
26683     if (unlikely(__pyx_t_1)) {
26684 
26685       /* "cylp/cy/CyClpSimplex.pyx":1732
26686  *         elif True:  # isinstance(arg, CyLPVar):
26687  *             if self.cyLPModel is None:
26688  *                 raise Exception('The argument of setInteger can be ' \             # <<<<<<<<<<<<<<
26689  *                                 'a CyLPVar only if the object is built ' \
26690  *                                 'using a CyLPModel.')
26691  */
26692       __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1732, __pyx_L1_error)
26693       __Pyx_GOTREF(__pyx_t_5);
26694       __Pyx_Raise(__pyx_t_5, 0, 0, 0);
26695       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26696       __PYX_ERR(0, 1732, __pyx_L1_error)
26697 
26698       /* "cylp/cy/CyClpSimplex.pyx":1731
26699  *             self.CppSelf.setInteger(arg)
26700  *         elif True:  # isinstance(arg, CyLPVar):
26701  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
26702  *                 raise Exception('The argument of setInteger can be ' \
26703  *                                 'a CyLPVar only if the object is built ' \
26704  */
26705     }
26706 
26707     /* "cylp/cy/CyClpSimplex.pyx":1735
26708  *                                 'a CyLPVar only if the object is built ' \
26709  *                                 'using a CyLPModel.')
26710  *             var = arg             # <<<<<<<<<<<<<<
26711  *             model = self.cyLPModel
26712  *             inds = model.inds
26713  */
26714     __Pyx_INCREF(__pyx_v_arg);
26715     __pyx_v_var = __pyx_v_arg;
26716 
26717     /* "cylp/cy/CyClpSimplex.pyx":1736
26718  *                                 'using a CyLPModel.')
26719  *             var = arg
26720  *             model = self.cyLPModel             # <<<<<<<<<<<<<<
26721  *             inds = model.inds
26722  *             varName = var.name
26723  */
26724     __pyx_t_5 = __pyx_v_self->cyLPModel;
26725     __Pyx_INCREF(__pyx_t_5);
26726     __pyx_v_model = __pyx_t_5;
26727     __pyx_t_5 = 0;
26728 
26729     /* "cylp/cy/CyClpSimplex.pyx":1737
26730  *             var = arg
26731  *             model = self.cyLPModel
26732  *             inds = model.inds             # <<<<<<<<<<<<<<
26733  *             varName = var.name
26734  *             if not inds.hasVar(varName):
26735  */
26736     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_inds); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1737, __pyx_L1_error)
26737     __Pyx_GOTREF(__pyx_t_5);
26738     __pyx_v_inds = __pyx_t_5;
26739     __pyx_t_5 = 0;
26740 
26741     /* "cylp/cy/CyClpSimplex.pyx":1738
26742  *             model = self.cyLPModel
26743  *             inds = model.inds
26744  *             varName = var.name             # <<<<<<<<<<<<<<
26745  *             if not inds.hasVar(varName):
26746  *                 raise Exception('No such variable: %s' % varName)
26747  */
26748     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1738, __pyx_L1_error)
26749     __Pyx_GOTREF(__pyx_t_5);
26750     __pyx_v_varName = __pyx_t_5;
26751     __pyx_t_5 = 0;
26752 
26753     /* "cylp/cy/CyClpSimplex.pyx":1739
26754  *             inds = model.inds
26755  *             varName = var.name
26756  *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
26757  *                 raise Exception('No such variable: %s' % varName)
26758  *             x = inds.varIndex[varName]
26759  */
26760     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_hasVar); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1739, __pyx_L1_error)
26761     __Pyx_GOTREF(__pyx_t_6);
26762     __pyx_t_7 = NULL;
26763     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
26764       __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
26765       if (likely(__pyx_t_7)) {
26766         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
26767         __Pyx_INCREF(__pyx_t_7);
26768         __Pyx_INCREF(function);
26769         __Pyx_DECREF_SET(__pyx_t_6, function);
26770       }
26771     }
26772     __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_varName) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_varName);
26773     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
26774     if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1739, __pyx_L1_error)
26775     __Pyx_GOTREF(__pyx_t_5);
26776     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
26777     __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1739, __pyx_L1_error)
26778     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26779     __pyx_t_2 = ((!__pyx_t_1) != 0);
26780     if (unlikely(__pyx_t_2)) {
26781 
26782       /* "cylp/cy/CyClpSimplex.pyx":1740
26783  *             varName = var.name
26784  *             if not inds.hasVar(varName):
26785  *                 raise Exception('No such variable: %s' % varName)             # <<<<<<<<<<<<<<
26786  *             x = inds.varIndex[varName]
26787  *             if var.parent:
26788  */
26789       __pyx_t_5 = __Pyx_PyString_FormatSafe(__pyx_kp_s_No_such_variable_s, __pyx_v_varName); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1740, __pyx_L1_error)
26790       __Pyx_GOTREF(__pyx_t_5);
26791       __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1740, __pyx_L1_error)
26792       __Pyx_GOTREF(__pyx_t_6);
26793       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26794       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
26795       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
26796       __PYX_ERR(0, 1740, __pyx_L1_error)
26797 
26798       /* "cylp/cy/CyClpSimplex.pyx":1739
26799  *             inds = model.inds
26800  *             varName = var.name
26801  *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
26802  *                 raise Exception('No such variable: %s' % varName)
26803  *             x = inds.varIndex[varName]
26804  */
26805     }
26806 
26807     /* "cylp/cy/CyClpSimplex.pyx":1741
26808  *             if not inds.hasVar(varName):
26809  *                 raise Exception('No such variable: %s' % varName)
26810  *             x = inds.varIndex[varName]             # <<<<<<<<<<<<<<
26811  *             if var.parent:
26812  *                 for i in var.indices:
26813  */
26814     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1741, __pyx_L1_error)
26815     __Pyx_GOTREF(__pyx_t_6);
26816     __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_varName); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1741, __pyx_L1_error)
26817     __Pyx_GOTREF(__pyx_t_5);
26818     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
26819     __pyx_v_x = __pyx_t_5;
26820     __pyx_t_5 = 0;
26821 
26822     /* "cylp/cy/CyClpSimplex.pyx":1742
26823  *                 raise Exception('No such variable: %s' % varName)
26824  *             x = inds.varIndex[varName]
26825  *             if var.parent:             # <<<<<<<<<<<<<<
26826  *                 for i in var.indices:
26827  *                     self.CppSelf.setInteger(x[i])
26828  */
26829     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_parent); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1742, __pyx_L1_error)
26830     __Pyx_GOTREF(__pyx_t_5);
26831     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1742, __pyx_L1_error)
26832     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26833     if (__pyx_t_2) {
26834 
26835       /* "cylp/cy/CyClpSimplex.pyx":1743
26836  *             x = inds.varIndex[varName]
26837  *             if var.parent:
26838  *                 for i in var.indices:             # <<<<<<<<<<<<<<
26839  *                     self.CppSelf.setInteger(x[i])
26840  *             else:
26841  */
26842       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_indices); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1743, __pyx_L1_error)
26843       __Pyx_GOTREF(__pyx_t_5);
26844       if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
26845         __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
26846         __pyx_t_9 = NULL;
26847       } else {
26848         __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1743, __pyx_L1_error)
26849         __Pyx_GOTREF(__pyx_t_6);
26850         __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1743, __pyx_L1_error)
26851       }
26852       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26853       for (;;) {
26854         if (likely(!__pyx_t_9)) {
26855           if (likely(PyList_CheckExact(__pyx_t_6))) {
26856             if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
26857             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
26858             __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1743, __pyx_L1_error)
26859             #else
26860             __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1743, __pyx_L1_error)
26861             __Pyx_GOTREF(__pyx_t_5);
26862             #endif
26863           } else {
26864             if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
26865             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
26866             __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1743, __pyx_L1_error)
26867             #else
26868             __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1743, __pyx_L1_error)
26869             __Pyx_GOTREF(__pyx_t_5);
26870             #endif
26871           }
26872         } else {
26873           __pyx_t_5 = __pyx_t_9(__pyx_t_6);
26874           if (unlikely(!__pyx_t_5)) {
26875             PyObject* exc_type = PyErr_Occurred();
26876             if (exc_type) {
26877               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
26878               else __PYX_ERR(0, 1743, __pyx_L1_error)
26879             }
26880             break;
26881           }
26882           __Pyx_GOTREF(__pyx_t_5);
26883         }
26884         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
26885         __pyx_t_5 = 0;
26886 
26887         /* "cylp/cy/CyClpSimplex.pyx":1744
26888  *             if var.parent:
26889  *                 for i in var.indices:
26890  *                     self.CppSelf.setInteger(x[i])             # <<<<<<<<<<<<<<
26891  *             else:
26892  *                 for i in xrange(var.dim):
26893  */
26894         __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1744, __pyx_L1_error)
26895         __Pyx_GOTREF(__pyx_t_5);
26896         __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1744, __pyx_L1_error)
26897         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26898         __pyx_v_self->CppSelf->setInteger(__pyx_t_4);
26899 
26900         /* "cylp/cy/CyClpSimplex.pyx":1743
26901  *             x = inds.varIndex[varName]
26902  *             if var.parent:
26903  *                 for i in var.indices:             # <<<<<<<<<<<<<<
26904  *                     self.CppSelf.setInteger(x[i])
26905  *             else:
26906  */
26907       }
26908       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
26909 
26910       /* "cylp/cy/CyClpSimplex.pyx":1742
26911  *                 raise Exception('No such variable: %s' % varName)
26912  *             x = inds.varIndex[varName]
26913  *             if var.parent:             # <<<<<<<<<<<<<<
26914  *                 for i in var.indices:
26915  *                     self.CppSelf.setInteger(x[i])
26916  */
26917       goto __pyx_L8;
26918     }
26919 
26920     /* "cylp/cy/CyClpSimplex.pyx":1746
26921  *                     self.CppSelf.setInteger(x[i])
26922  *             else:
26923  *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
26924  *                     self.CppSelf.setInteger(x[i])
26925  *
26926  */
26927     /*else*/ {
26928       __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1746, __pyx_L1_error)
26929       __Pyx_GOTREF(__pyx_t_6);
26930       __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1746, __pyx_L1_error)
26931       __Pyx_GOTREF(__pyx_t_5);
26932       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
26933       if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
26934         __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
26935         __pyx_t_9 = NULL;
26936       } else {
26937         __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1746, __pyx_L1_error)
26938         __Pyx_GOTREF(__pyx_t_6);
26939         __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1746, __pyx_L1_error)
26940       }
26941       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26942       for (;;) {
26943         if (likely(!__pyx_t_9)) {
26944           if (likely(PyList_CheckExact(__pyx_t_6))) {
26945             if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
26946             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
26947             __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1746, __pyx_L1_error)
26948             #else
26949             __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1746, __pyx_L1_error)
26950             __Pyx_GOTREF(__pyx_t_5);
26951             #endif
26952           } else {
26953             if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
26954             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
26955             __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1746, __pyx_L1_error)
26956             #else
26957             __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1746, __pyx_L1_error)
26958             __Pyx_GOTREF(__pyx_t_5);
26959             #endif
26960           }
26961         } else {
26962           __pyx_t_5 = __pyx_t_9(__pyx_t_6);
26963           if (unlikely(!__pyx_t_5)) {
26964             PyObject* exc_type = PyErr_Occurred();
26965             if (exc_type) {
26966               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
26967               else __PYX_ERR(0, 1746, __pyx_L1_error)
26968             }
26969             break;
26970           }
26971           __Pyx_GOTREF(__pyx_t_5);
26972         }
26973         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
26974         __pyx_t_5 = 0;
26975 
26976         /* "cylp/cy/CyClpSimplex.pyx":1747
26977  *             else:
26978  *                 for i in xrange(var.dim):
26979  *                     self.CppSelf.setInteger(x[i])             # <<<<<<<<<<<<<<
26980  *
26981  *
26982  */
26983         __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1747, __pyx_L1_error)
26984         __Pyx_GOTREF(__pyx_t_5);
26985         __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1747, __pyx_L1_error)
26986         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26987         __pyx_v_self->CppSelf->setInteger(__pyx_t_4);
26988 
26989         /* "cylp/cy/CyClpSimplex.pyx":1746
26990  *                     self.CppSelf.setInteger(x[i])
26991  *             else:
26992  *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
26993  *                     self.CppSelf.setInteger(x[i])
26994  *
26995  */
26996       }
26997       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
26998     }
26999     __pyx_L8:;
27000   }
27001   __pyx_L3:;
27002 
27003   /* "cylp/cy/CyClpSimplex.pyx":1678
27004  *         return self.CppSelf.isInteger(ind)
27005  *
27006  *     def setInteger(self, arg):             # <<<<<<<<<<<<<<
27007  *         '''
27008  *         if ``arg`` is an integer: mark variable index ``arg`` as integer.
27009  */
27010 
27011   /* function exit code */
27012   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27013   goto __pyx_L0;
27014   __pyx_L1_error:;
27015   __Pyx_XDECREF(__pyx_t_5);
27016   __Pyx_XDECREF(__pyx_t_6);
27017   __Pyx_XDECREF(__pyx_t_7);
27018   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setInteger", __pyx_clineno, __pyx_lineno, __pyx_filename);
27019   __pyx_r = NULL;
27020   __pyx_L0:;
27021   __Pyx_XDECREF(__pyx_v_var);
27022   __Pyx_XDECREF(__pyx_v_model);
27023   __Pyx_XDECREF(__pyx_v_inds);
27024   __Pyx_XDECREF(__pyx_v_varName);
27025   __Pyx_XDECREF(__pyx_v_x);
27026   __Pyx_XDECREF(__pyx_v_i);
27027   __Pyx_XGIVEREF(__pyx_r);
27028   __Pyx_TraceReturn(__pyx_r, 0);
27029   __Pyx_RefNannyFinishContext();
27030   return __pyx_r;
27031 }
27032 
27033 /* "cylp/cy/CyClpSimplex.pyx":1750
27034  *
27035  *
27036  *     def copyInIntegerInformation(self, np.ndarray[np.uint8_t, ndim=1] colType):             # <<<<<<<<<<<<<<
27037  *         '''
27038  *         Take in a character array containing 0-1 specifying whether or not
27039  */
27040 
27041 /* Python wrapper */
27042 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_141copyInIntegerInformation(PyObject *__pyx_v_self, PyObject *__pyx_v_colType); /*proto*/
27043 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_140copyInIntegerInformation[] = "CyClpSimplex.copyInIntegerInformation(self, ndarray colType)\n\n        Take in a character array containing 0-1 specifying whether or not\n        a variable is integer\n        ";
27044 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_141copyInIntegerInformation(PyObject *__pyx_v_self, PyObject *__pyx_v_colType) {
27045   int __pyx_lineno = 0;
27046   const char *__pyx_filename = NULL;
27047   int __pyx_clineno = 0;
27048   PyObject *__pyx_r = 0;
27049   __Pyx_RefNannyDeclarations
27050   __Pyx_RefNannySetupContext("copyInIntegerInformation (wrapper)", 0);
27051   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colType), __pyx_ptype_5numpy_ndarray, 1, "colType", 0))) __PYX_ERR(0, 1750, __pyx_L1_error)
27052   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_140copyInIntegerInformation(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_colType));
27053 
27054   /* function exit code */
27055   goto __pyx_L0;
27056   __pyx_L1_error:;
27057   __pyx_r = NULL;
27058   __pyx_L0:;
27059   __Pyx_RefNannyFinishContext();
27060   return __pyx_r;
27061 }
27062 
27063 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_140copyInIntegerInformation(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_colType) {
27064   __Pyx_LocalBuf_ND __pyx_pybuffernd_colType;
27065   __Pyx_Buffer __pyx_pybuffer_colType;
27066   PyObject *__pyx_r = NULL;
27067   __Pyx_TraceDeclarations
27068   __Pyx_RefNannyDeclarations
27069   int __pyx_lineno = 0;
27070   const char *__pyx_filename = NULL;
27071   int __pyx_clineno = 0;
27072   __Pyx_RefNannySetupContext("copyInIntegerInformation", 0);
27073   __Pyx_TraceCall("copyInIntegerInformation", __pyx_f[0], 1750, 0, __PYX_ERR(0, 1750, __pyx_L1_error));
27074   __pyx_pybuffer_colType.pybuffer.buf = NULL;
27075   __pyx_pybuffer_colType.refcount = 0;
27076   __pyx_pybuffernd_colType.data = NULL;
27077   __pyx_pybuffernd_colType.rcbuffer = &__pyx_pybuffer_colType;
27078   {
27079     __Pyx_BufFmt_StackElem __pyx_stack[1];
27080     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_colType.rcbuffer->pybuffer, (PyObject*)__pyx_v_colType, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1750, __pyx_L1_error)
27081   }
27082   __pyx_pybuffernd_colType.diminfo[0].strides = __pyx_pybuffernd_colType.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_colType.diminfo[0].shape = __pyx_pybuffernd_colType.rcbuffer->pybuffer.shape[0];
27083 
27084   /* "cylp/cy/CyClpSimplex.pyx":1755
27085  *         a variable is integer
27086  *         '''
27087  *         self.CppSelf.copyInIntegerInformation(<char*>colType.data)             # <<<<<<<<<<<<<<
27088  *
27089  *     def replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False):
27090  */
27091   __pyx_v_self->CppSelf->copyInIntegerInformation(((char *)__pyx_v_colType->data));
27092 
27093   /* "cylp/cy/CyClpSimplex.pyx":1750
27094  *
27095  *
27096  *     def copyInIntegerInformation(self, np.ndarray[np.uint8_t, ndim=1] colType):             # <<<<<<<<<<<<<<
27097  *         '''
27098  *         Take in a character array containing 0-1 specifying whether or not
27099  */
27100 
27101   /* function exit code */
27102   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27103   goto __pyx_L0;
27104   __pyx_L1_error:;
27105   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
27106     __Pyx_PyThreadState_declare
27107     __Pyx_PyThreadState_assign
27108     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
27109     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_colType.rcbuffer->pybuffer);
27110   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
27111   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.copyInIntegerInformation", __pyx_clineno, __pyx_lineno, __pyx_filename);
27112   __pyx_r = NULL;
27113   goto __pyx_L2;
27114   __pyx_L0:;
27115   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_colType.rcbuffer->pybuffer);
27116   __pyx_L2:;
27117   __Pyx_XGIVEREF(__pyx_r);
27118   __Pyx_TraceReturn(__pyx_r, 0);
27119   __Pyx_RefNannyFinishContext();
27120   return __pyx_r;
27121 }
27122 
27123 /* "cylp/cy/CyClpSimplex.pyx":1757
27124  *         self.CppSelf.copyInIntegerInformation(<char*>colType.data)
27125  *
27126  *     def replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False):             # <<<<<<<<<<<<<<
27127  *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)
27128  *
27129  */
27130 
27131 /* Python wrapper */
27132 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_143replaceMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
27133 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_142replaceMatrix[] = "CyClpSimplex.replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False)";
27134 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_143replaceMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
27135   struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix = 0;
27136   PyObject *__pyx_v_deleteCurrent = 0;
27137   int __pyx_lineno = 0;
27138   const char *__pyx_filename = NULL;
27139   int __pyx_clineno = 0;
27140   PyObject *__pyx_r = 0;
27141   __Pyx_RefNannyDeclarations
27142   __Pyx_RefNannySetupContext("replaceMatrix (wrapper)", 0);
27143   {
27144     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_matrix,&__pyx_n_s_deleteCurrent,0};
27145     PyObject* values[2] = {0,0};
27146     values[1] = ((PyObject *)Py_False);
27147     if (unlikely(__pyx_kwds)) {
27148       Py_ssize_t kw_args;
27149       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
27150       switch (pos_args) {
27151         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27152         CYTHON_FALLTHROUGH;
27153         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27154         CYTHON_FALLTHROUGH;
27155         case  0: break;
27156         default: goto __pyx_L5_argtuple_error;
27157       }
27158       kw_args = PyDict_Size(__pyx_kwds);
27159       switch (pos_args) {
27160         case  0:
27161         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matrix)) != 0)) kw_args--;
27162         else goto __pyx_L5_argtuple_error;
27163         CYTHON_FALLTHROUGH;
27164         case  1:
27165         if (kw_args > 0) {
27166           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_deleteCurrent);
27167           if (value) { values[1] = value; kw_args--; }
27168         }
27169       }
27170       if (unlikely(kw_args > 0)) {
27171         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "replaceMatrix") < 0)) __PYX_ERR(0, 1757, __pyx_L3_error)
27172       }
27173     } else {
27174       switch (PyTuple_GET_SIZE(__pyx_args)) {
27175         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27176         CYTHON_FALLTHROUGH;
27177         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27178         break;
27179         default: goto __pyx_L5_argtuple_error;
27180       }
27181     }
27182     __pyx_v_matrix = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)values[0]);
27183     __pyx_v_deleteCurrent = values[1];
27184   }
27185   goto __pyx_L4_argument_unpacking_done;
27186   __pyx_L5_argtuple_error:;
27187   __Pyx_RaiseArgtupleInvalid("replaceMatrix", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1757, __pyx_L3_error)
27188   __pyx_L3_error:;
27189   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.replaceMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename);
27190   __Pyx_RefNannyFinishContext();
27191   return NULL;
27192   __pyx_L4_argument_unpacking_done:;
27193   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_matrix), __pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix, 1, "matrix", 0))) __PYX_ERR(0, 1757, __pyx_L1_error)
27194   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_142replaceMatrix(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_matrix, __pyx_v_deleteCurrent);
27195 
27196   /* function exit code */
27197   goto __pyx_L0;
27198   __pyx_L1_error:;
27199   __pyx_r = NULL;
27200   __pyx_L0:;
27201   __Pyx_RefNannyFinishContext();
27202   return __pyx_r;
27203 }
27204 
27205 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_142replaceMatrix(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix, PyObject *__pyx_v_deleteCurrent) {
27206   PyObject *__pyx_r = NULL;
27207   __Pyx_TraceDeclarations
27208   __Pyx_RefNannyDeclarations
27209   int __pyx_t_1;
27210   int __pyx_lineno = 0;
27211   const char *__pyx_filename = NULL;
27212   int __pyx_clineno = 0;
27213   __Pyx_RefNannySetupContext("replaceMatrix", 0);
27214   __Pyx_TraceCall("replaceMatrix", __pyx_f[0], 1757, 0, __PYX_ERR(0, 1757, __pyx_L1_error));
27215 
27216   /* "cylp/cy/CyClpSimplex.pyx":1758
27217  *
27218  *     def replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False):
27219  *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)             # <<<<<<<<<<<<<<
27220  *
27221  *     def loadQuadraticObjective(self, CyCoinPackedMatrix matrix):
27222  */
27223   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_deleteCurrent); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1758, __pyx_L1_error)
27224   __pyx_v_self->CppSelf->replaceMatrix(__pyx_v_matrix->CppSelf, __pyx_t_1);
27225 
27226   /* "cylp/cy/CyClpSimplex.pyx":1757
27227  *         self.CppSelf.copyInIntegerInformation(<char*>colType.data)
27228  *
27229  *     def replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False):             # <<<<<<<<<<<<<<
27230  *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)
27231  *
27232  */
27233 
27234   /* function exit code */
27235   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27236   goto __pyx_L0;
27237   __pyx_L1_error:;
27238   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.replaceMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename);
27239   __pyx_r = NULL;
27240   __pyx_L0:;
27241   __Pyx_XGIVEREF(__pyx_r);
27242   __Pyx_TraceReturn(__pyx_r, 0);
27243   __Pyx_RefNannyFinishContext();
27244   return __pyx_r;
27245 }
27246 
27247 /* "cylp/cy/CyClpSimplex.pyx":1760
27248  *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)
27249  *
27250  *     def loadQuadraticObjective(self, CyCoinPackedMatrix matrix):             # <<<<<<<<<<<<<<
27251  *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)
27252  *
27253  */
27254 
27255 /* Python wrapper */
27256 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_145loadQuadraticObjective(PyObject *__pyx_v_self, PyObject *__pyx_v_matrix); /*proto*/
27257 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_144loadQuadraticObjective[] = "CyClpSimplex.loadQuadraticObjective(self, CyCoinPackedMatrix matrix)";
27258 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_145loadQuadraticObjective(PyObject *__pyx_v_self, PyObject *__pyx_v_matrix) {
27259   int __pyx_lineno = 0;
27260   const char *__pyx_filename = NULL;
27261   int __pyx_clineno = 0;
27262   PyObject *__pyx_r = 0;
27263   __Pyx_RefNannyDeclarations
27264   __Pyx_RefNannySetupContext("loadQuadraticObjective (wrapper)", 0);
27265   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_matrix), __pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix, 1, "matrix", 0))) __PYX_ERR(0, 1760, __pyx_L1_error)
27266   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_144loadQuadraticObjective(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)__pyx_v_matrix));
27267 
27268   /* function exit code */
27269   goto __pyx_L0;
27270   __pyx_L1_error:;
27271   __pyx_r = NULL;
27272   __pyx_L0:;
27273   __Pyx_RefNannyFinishContext();
27274   return __pyx_r;
27275 }
27276 
27277 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_144loadQuadraticObjective(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix) {
27278   PyObject *__pyx_r = NULL;
27279   __Pyx_TraceDeclarations
27280   __Pyx_RefNannyDeclarations
27281   int __pyx_lineno = 0;
27282   const char *__pyx_filename = NULL;
27283   int __pyx_clineno = 0;
27284   __Pyx_RefNannySetupContext("loadQuadraticObjective", 0);
27285   __Pyx_TraceCall("loadQuadraticObjective", __pyx_f[0], 1760, 0, __PYX_ERR(0, 1760, __pyx_L1_error));
27286 
27287   /* "cylp/cy/CyClpSimplex.pyx":1761
27288  *
27289  *     def loadQuadraticObjective(self, CyCoinPackedMatrix matrix):
27290  *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)             # <<<<<<<<<<<<<<
27291  *
27292  *     def preSolve(self, feasibilityTolerance=0.0,
27293  */
27294   __pyx_v_self->CppSelf->loadQuadraticObjective(__pyx_v_matrix->CppSelf);
27295 
27296   /* "cylp/cy/CyClpSimplex.pyx":1760
27297  *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)
27298  *
27299  *     def loadQuadraticObjective(self, CyCoinPackedMatrix matrix):             # <<<<<<<<<<<<<<
27300  *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)
27301  *
27302  */
27303 
27304   /* function exit code */
27305   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27306   goto __pyx_L0;
27307   __pyx_L1_error:;
27308   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadQuadraticObjective", __pyx_clineno, __pyx_lineno, __pyx_filename);
27309   __pyx_r = NULL;
27310   __pyx_L0:;
27311   __Pyx_XGIVEREF(__pyx_r);
27312   __Pyx_TraceReturn(__pyx_r, 0);
27313   __Pyx_RefNannyFinishContext();
27314   return __pyx_r;
27315 }
27316 
27317 /* "cylp/cy/CyClpSimplex.pyx":1763
27318  *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)
27319  *
27320  *     def preSolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
27321  *                  keepIntegers=0, numberPasses=5,
27322  *                  dropNames=0, doRowObjective=0):
27323  */
27324 
27325 /* Python wrapper */
27326 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_147preSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
27327 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_146preSolve[] = "CyClpSimplex.preSolve(self, feasibilityTolerance=0.0, keepIntegers=0, numberPasses=5, dropNames=0, doRowObjective=0)";
27328 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_147preSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
27329   PyObject *__pyx_v_feasibilityTolerance = 0;
27330   PyObject *__pyx_v_keepIntegers = 0;
27331   PyObject *__pyx_v_numberPasses = 0;
27332   PyObject *__pyx_v_dropNames = 0;
27333   PyObject *__pyx_v_doRowObjective = 0;
27334   int __pyx_lineno = 0;
27335   const char *__pyx_filename = NULL;
27336   int __pyx_clineno = 0;
27337   PyObject *__pyx_r = 0;
27338   __Pyx_RefNannyDeclarations
27339   __Pyx_RefNannySetupContext("preSolve (wrapper)", 0);
27340   {
27341     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_feasibilityTolerance,&__pyx_n_s_keepIntegers,&__pyx_n_s_numberPasses,&__pyx_n_s_dropNames,&__pyx_n_s_doRowObjective,0};
27342     PyObject* values[5] = {0,0,0,0,0};
27343     values[0] = ((PyObject *)__pyx_float_0_0);
27344     values[1] = ((PyObject *)__pyx_int_0);
27345     values[2] = ((PyObject *)__pyx_int_5);
27346     values[3] = ((PyObject *)__pyx_int_0);
27347     values[4] = ((PyObject *)__pyx_int_0);
27348     if (unlikely(__pyx_kwds)) {
27349       Py_ssize_t kw_args;
27350       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
27351       switch (pos_args) {
27352         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27353         CYTHON_FALLTHROUGH;
27354         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27355         CYTHON_FALLTHROUGH;
27356         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27357         CYTHON_FALLTHROUGH;
27358         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27359         CYTHON_FALLTHROUGH;
27360         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27361         CYTHON_FALLTHROUGH;
27362         case  0: break;
27363         default: goto __pyx_L5_argtuple_error;
27364       }
27365       kw_args = PyDict_Size(__pyx_kwds);
27366       switch (pos_args) {
27367         case  0:
27368         if (kw_args > 0) {
27369           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_feasibilityTolerance);
27370           if (value) { values[0] = value; kw_args--; }
27371         }
27372         CYTHON_FALLTHROUGH;
27373         case  1:
27374         if (kw_args > 0) {
27375           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepIntegers);
27376           if (value) { values[1] = value; kw_args--; }
27377         }
27378         CYTHON_FALLTHROUGH;
27379         case  2:
27380         if (kw_args > 0) {
27381           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberPasses);
27382           if (value) { values[2] = value; kw_args--; }
27383         }
27384         CYTHON_FALLTHROUGH;
27385         case  3:
27386         if (kw_args > 0) {
27387           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dropNames);
27388           if (value) { values[3] = value; kw_args--; }
27389         }
27390         CYTHON_FALLTHROUGH;
27391         case  4:
27392         if (kw_args > 0) {
27393           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_doRowObjective);
27394           if (value) { values[4] = value; kw_args--; }
27395         }
27396       }
27397       if (unlikely(kw_args > 0)) {
27398         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "preSolve") < 0)) __PYX_ERR(0, 1763, __pyx_L3_error)
27399       }
27400     } else {
27401       switch (PyTuple_GET_SIZE(__pyx_args)) {
27402         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27403         CYTHON_FALLTHROUGH;
27404         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27405         CYTHON_FALLTHROUGH;
27406         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27407         CYTHON_FALLTHROUGH;
27408         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27409         CYTHON_FALLTHROUGH;
27410         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27411         CYTHON_FALLTHROUGH;
27412         case  0: break;
27413         default: goto __pyx_L5_argtuple_error;
27414       }
27415     }
27416     __pyx_v_feasibilityTolerance = values[0];
27417     __pyx_v_keepIntegers = values[1];
27418     __pyx_v_numberPasses = values[2];
27419     __pyx_v_dropNames = values[3];
27420     __pyx_v_doRowObjective = values[4];
27421   }
27422   goto __pyx_L4_argument_unpacking_done;
27423   __pyx_L5_argtuple_error:;
27424   __Pyx_RaiseArgtupleInvalid("preSolve", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1763, __pyx_L3_error)
27425   __pyx_L3_error:;
27426   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.preSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
27427   __Pyx_RefNannyFinishContext();
27428   return NULL;
27429   __pyx_L4_argument_unpacking_done:;
27430   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_146preSolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_feasibilityTolerance, __pyx_v_keepIntegers, __pyx_v_numberPasses, __pyx_v_dropNames, __pyx_v_doRowObjective);
27431 
27432   /* function exit code */
27433   __Pyx_RefNannyFinishContext();
27434   return __pyx_r;
27435 }
27436 
27437 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_146preSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_feasibilityTolerance, PyObject *__pyx_v_keepIntegers, PyObject *__pyx_v_numberPasses, PyObject *__pyx_v_dropNames, PyObject *__pyx_v_doRowObjective) {
27438   IClpSimplex *__pyx_v_model;
27439   struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_s = NULL;
27440   PyObject *__pyx_r = NULL;
27441   __Pyx_TraceDeclarations
27442   __Pyx_RefNannyDeclarations
27443   double __pyx_t_1;
27444   int __pyx_t_2;
27445   int __pyx_t_3;
27446   int __pyx_t_4;
27447   int __pyx_t_5;
27448   PyObject *__pyx_t_6 = NULL;
27449   int __pyx_lineno = 0;
27450   const char *__pyx_filename = NULL;
27451   int __pyx_clineno = 0;
27452   __Pyx_RefNannySetupContext("preSolve", 0);
27453   __Pyx_TraceCall("preSolve", __pyx_f[0], 1763, 0, __PYX_ERR(0, 1763, __pyx_L1_error));
27454 
27455   /* "cylp/cy/CyClpSimplex.pyx":1767
27456  *                  dropNames=0, doRowObjective=0):
27457  *         cdef CppIClpSimplex* model = self.CppSelf.preSolve(self.CppSelf,
27458  *                                 feasibilityTolerance, keepIntegers,             # <<<<<<<<<<<<<<
27459  *                                 numberPasses, dropNames, doRowObjective)
27460  *         s = CyClpSimplex()
27461  */
27462   __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_feasibilityTolerance); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1767, __pyx_L1_error)
27463   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_keepIntegers); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1767, __pyx_L1_error)
27464 
27465   /* "cylp/cy/CyClpSimplex.pyx":1768
27466  *         cdef CppIClpSimplex* model = self.CppSelf.preSolve(self.CppSelf,
27467  *                                 feasibilityTolerance, keepIntegers,
27468  *                                 numberPasses, dropNames, doRowObjective)             # <<<<<<<<<<<<<<
27469  *         s = CyClpSimplex()
27470  *         if model == NULL:
27471  */
27472   __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_numberPasses); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1768, __pyx_L1_error)
27473   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_dropNames); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1768, __pyx_L1_error)
27474   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_doRowObjective); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1768, __pyx_L1_error)
27475 
27476   /* "cylp/cy/CyClpSimplex.pyx":1766
27477  *                  keepIntegers=0, numberPasses=5,
27478  *                  dropNames=0, doRowObjective=0):
27479  *         cdef CppIClpSimplex* model = self.CppSelf.preSolve(self.CppSelf,             # <<<<<<<<<<<<<<
27480  *                                 feasibilityTolerance, keepIntegers,
27481  *                                 numberPasses, dropNames, doRowObjective)
27482  */
27483   __pyx_v_model = __pyx_v_self->CppSelf->preSolve(__pyx_v_self->CppSelf, __pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5);
27484 
27485   /* "cylp/cy/CyClpSimplex.pyx":1769
27486  *                                 feasibilityTolerance, keepIntegers,
27487  *                                 numberPasses, dropNames, doRowObjective)
27488  *         s = CyClpSimplex()             # <<<<<<<<<<<<<<
27489  *         if model == NULL:
27490  *             print("Presolve says problem infeasible.")
27491  */
27492   __pyx_t_6 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_CyClpSimplex)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1769, __pyx_L1_error)
27493   __Pyx_GOTREF(__pyx_t_6);
27494   __pyx_v_s = ((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_t_6);
27495   __pyx_t_6 = 0;
27496 
27497   /* "cylp/cy/CyClpSimplex.pyx":1770
27498  *                                 numberPasses, dropNames, doRowObjective)
27499  *         s = CyClpSimplex()
27500  *         if model == NULL:             # <<<<<<<<<<<<<<
27501  *             print("Presolve says problem infeasible.")
27502  *             return s
27503  */
27504   __pyx_t_5 = ((__pyx_v_model == NULL) != 0);
27505   if (__pyx_t_5) {
27506 
27507     /* "cylp/cy/CyClpSimplex.pyx":1771
27508  *         s = CyClpSimplex()
27509  *         if model == NULL:
27510  *             print("Presolve says problem infeasible.")             # <<<<<<<<<<<<<<
27511  *             return s
27512  *
27513  */
27514     __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_print, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1771, __pyx_L1_error)
27515     __Pyx_GOTREF(__pyx_t_6);
27516     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
27517 
27518     /* "cylp/cy/CyClpSimplex.pyx":1772
27519  *         if model == NULL:
27520  *             print("Presolve says problem infeasible.")
27521  *             return s             # <<<<<<<<<<<<<<
27522  *
27523  *         s.setCppSelf(model)
27524  */
27525     __Pyx_XDECREF(__pyx_r);
27526     __Pyx_INCREF(((PyObject *)__pyx_v_s));
27527     __pyx_r = ((PyObject *)__pyx_v_s);
27528     goto __pyx_L0;
27529 
27530     /* "cylp/cy/CyClpSimplex.pyx":1770
27531  *                                 numberPasses, dropNames, doRowObjective)
27532  *         s = CyClpSimplex()
27533  *         if model == NULL:             # <<<<<<<<<<<<<<
27534  *             print("Presolve says problem infeasible.")
27535  *             return s
27536  */
27537   }
27538 
27539   /* "cylp/cy/CyClpSimplex.pyx":1774
27540  *             return s
27541  *
27542  *         s.setCppSelf(model)             # <<<<<<<<<<<<<<
27543  *         return s
27544  *         #self.setCppSelf(model)
27545  */
27546   __pyx_t_6 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_s->__pyx_vtab)->setCppSelf(__pyx_v_s, __pyx_v_model); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1774, __pyx_L1_error)
27547   __Pyx_GOTREF(__pyx_t_6);
27548   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
27549 
27550   /* "cylp/cy/CyClpSimplex.pyx":1775
27551  *
27552  *         s.setCppSelf(model)
27553  *         return s             # <<<<<<<<<<<<<<
27554  *         #self.setCppSelf(model)
27555  *
27556  */
27557   __Pyx_XDECREF(__pyx_r);
27558   __Pyx_INCREF(((PyObject *)__pyx_v_s));
27559   __pyx_r = ((PyObject *)__pyx_v_s);
27560   goto __pyx_L0;
27561 
27562   /* "cylp/cy/CyClpSimplex.pyx":1763
27563  *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)
27564  *
27565  *     def preSolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
27566  *                  keepIntegers=0, numberPasses=5,
27567  *                  dropNames=0, doRowObjective=0):
27568  */
27569 
27570   /* function exit code */
27571   __pyx_L1_error:;
27572   __Pyx_XDECREF(__pyx_t_6);
27573   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.preSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
27574   __pyx_r = NULL;
27575   __pyx_L0:;
27576   __Pyx_XDECREF((PyObject *)__pyx_v_s);
27577   __Pyx_XGIVEREF(__pyx_r);
27578   __Pyx_TraceReturn(__pyx_r, 0);
27579   __Pyx_RefNannyFinishContext();
27580   return __pyx_r;
27581 }
27582 
27583 /* "cylp/cy/CyClpSimplex.pyx":1778
27584  *         #self.setCppSelf(model)
27585  *
27586  *     def postSolve(self, updateStatus=True):             # <<<<<<<<<<<<<<
27587  *         self.CppSelf.postSolve(updateStatus)
27588  *
27589  */
27590 
27591 /* Python wrapper */
27592 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_149postSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
27593 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve[] = "CyClpSimplex.postSolve(self, updateStatus=True)";
27594 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_149postSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
27595   PyObject *__pyx_v_updateStatus = 0;
27596   int __pyx_lineno = 0;
27597   const char *__pyx_filename = NULL;
27598   int __pyx_clineno = 0;
27599   PyObject *__pyx_r = 0;
27600   __Pyx_RefNannyDeclarations
27601   __Pyx_RefNannySetupContext("postSolve (wrapper)", 0);
27602   {
27603     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_updateStatus,0};
27604     PyObject* values[1] = {0};
27605     values[0] = ((PyObject *)Py_True);
27606     if (unlikely(__pyx_kwds)) {
27607       Py_ssize_t kw_args;
27608       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
27609       switch (pos_args) {
27610         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27611         CYTHON_FALLTHROUGH;
27612         case  0: break;
27613         default: goto __pyx_L5_argtuple_error;
27614       }
27615       kw_args = PyDict_Size(__pyx_kwds);
27616       switch (pos_args) {
27617         case  0:
27618         if (kw_args > 0) {
27619           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_updateStatus);
27620           if (value) { values[0] = value; kw_args--; }
27621         }
27622       }
27623       if (unlikely(kw_args > 0)) {
27624         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "postSolve") < 0)) __PYX_ERR(0, 1778, __pyx_L3_error)
27625       }
27626     } else {
27627       switch (PyTuple_GET_SIZE(__pyx_args)) {
27628         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27629         CYTHON_FALLTHROUGH;
27630         case  0: break;
27631         default: goto __pyx_L5_argtuple_error;
27632       }
27633     }
27634     __pyx_v_updateStatus = values[0];
27635   }
27636   goto __pyx_L4_argument_unpacking_done;
27637   __pyx_L5_argtuple_error:;
27638   __Pyx_RaiseArgtupleInvalid("postSolve", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1778, __pyx_L3_error)
27639   __pyx_L3_error:;
27640   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.postSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
27641   __Pyx_RefNannyFinishContext();
27642   return NULL;
27643   __pyx_L4_argument_unpacking_done:;
27644   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_updateStatus);
27645 
27646   /* function exit code */
27647   __Pyx_RefNannyFinishContext();
27648   return __pyx_r;
27649 }
27650 
27651 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_updateStatus) {
27652   PyObject *__pyx_r = NULL;
27653   __Pyx_TraceDeclarations
27654   __Pyx_RefNannyDeclarations
27655   int __pyx_t_1;
27656   int __pyx_lineno = 0;
27657   const char *__pyx_filename = NULL;
27658   int __pyx_clineno = 0;
27659   __Pyx_RefNannySetupContext("postSolve", 0);
27660   __Pyx_TraceCall("postSolve", __pyx_f[0], 1778, 0, __PYX_ERR(0, 1778, __pyx_L1_error));
27661 
27662   /* "cylp/cy/CyClpSimplex.pyx":1779
27663  *
27664  *     def postSolve(self, updateStatus=True):
27665  *         self.CppSelf.postSolve(updateStatus)             # <<<<<<<<<<<<<<
27666  *
27667  *     def dualWithPresolve(self, feasibilityTolerance=0.0,
27668  */
27669   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_updateStatus); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1779, __pyx_L1_error)
27670   __pyx_v_self->CppSelf->postSolve(__pyx_t_1);
27671 
27672   /* "cylp/cy/CyClpSimplex.pyx":1778
27673  *         #self.setCppSelf(model)
27674  *
27675  *     def postSolve(self, updateStatus=True):             # <<<<<<<<<<<<<<
27676  *         self.CppSelf.postSolve(updateStatus)
27677  *
27678  */
27679 
27680   /* function exit code */
27681   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27682   goto __pyx_L0;
27683   __pyx_L1_error:;
27684   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.postSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
27685   __pyx_r = NULL;
27686   __pyx_L0:;
27687   __Pyx_XGIVEREF(__pyx_r);
27688   __Pyx_TraceReturn(__pyx_r, 0);
27689   __Pyx_RefNannyFinishContext();
27690   return __pyx_r;
27691 }
27692 
27693 /* "cylp/cy/CyClpSimplex.pyx":1781
27694  *         self.CppSelf.postSolve(updateStatus)
27695  *
27696  *     def dualWithPresolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
27697  *                  keepIntegers=0, numberPasses=5,
27698  *                  dropNames=0, doRowObjective=0):
27699  */
27700 
27701 /* Python wrapper */
27702 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_151dualWithPresolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
27703 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_150dualWithPresolve[] = "CyClpSimplex.dualWithPresolve(self, feasibilityTolerance=0.0, keepIntegers=0, numberPasses=5, dropNames=0, doRowObjective=0)";
27704 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_151dualWithPresolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
27705   PyObject *__pyx_v_feasibilityTolerance = 0;
27706   PyObject *__pyx_v_keepIntegers = 0;
27707   PyObject *__pyx_v_numberPasses = 0;
27708   PyObject *__pyx_v_dropNames = 0;
27709   PyObject *__pyx_v_doRowObjective = 0;
27710   int __pyx_lineno = 0;
27711   const char *__pyx_filename = NULL;
27712   int __pyx_clineno = 0;
27713   PyObject *__pyx_r = 0;
27714   __Pyx_RefNannyDeclarations
27715   __Pyx_RefNannySetupContext("dualWithPresolve (wrapper)", 0);
27716   {
27717     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_feasibilityTolerance,&__pyx_n_s_keepIntegers,&__pyx_n_s_numberPasses,&__pyx_n_s_dropNames,&__pyx_n_s_doRowObjective,0};
27718     PyObject* values[5] = {0,0,0,0,0};
27719     values[0] = ((PyObject *)__pyx_float_0_0);
27720     values[1] = ((PyObject *)__pyx_int_0);
27721     values[2] = ((PyObject *)__pyx_int_5);
27722     values[3] = ((PyObject *)__pyx_int_0);
27723     values[4] = ((PyObject *)__pyx_int_0);
27724     if (unlikely(__pyx_kwds)) {
27725       Py_ssize_t kw_args;
27726       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
27727       switch (pos_args) {
27728         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27729         CYTHON_FALLTHROUGH;
27730         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27731         CYTHON_FALLTHROUGH;
27732         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27733         CYTHON_FALLTHROUGH;
27734         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27735         CYTHON_FALLTHROUGH;
27736         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27737         CYTHON_FALLTHROUGH;
27738         case  0: break;
27739         default: goto __pyx_L5_argtuple_error;
27740       }
27741       kw_args = PyDict_Size(__pyx_kwds);
27742       switch (pos_args) {
27743         case  0:
27744         if (kw_args > 0) {
27745           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_feasibilityTolerance);
27746           if (value) { values[0] = value; kw_args--; }
27747         }
27748         CYTHON_FALLTHROUGH;
27749         case  1:
27750         if (kw_args > 0) {
27751           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepIntegers);
27752           if (value) { values[1] = value; kw_args--; }
27753         }
27754         CYTHON_FALLTHROUGH;
27755         case  2:
27756         if (kw_args > 0) {
27757           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberPasses);
27758           if (value) { values[2] = value; kw_args--; }
27759         }
27760         CYTHON_FALLTHROUGH;
27761         case  3:
27762         if (kw_args > 0) {
27763           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dropNames);
27764           if (value) { values[3] = value; kw_args--; }
27765         }
27766         CYTHON_FALLTHROUGH;
27767         case  4:
27768         if (kw_args > 0) {
27769           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_doRowObjective);
27770           if (value) { values[4] = value; kw_args--; }
27771         }
27772       }
27773       if (unlikely(kw_args > 0)) {
27774         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dualWithPresolve") < 0)) __PYX_ERR(0, 1781, __pyx_L3_error)
27775       }
27776     } else {
27777       switch (PyTuple_GET_SIZE(__pyx_args)) {
27778         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27779         CYTHON_FALLTHROUGH;
27780         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27781         CYTHON_FALLTHROUGH;
27782         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27783         CYTHON_FALLTHROUGH;
27784         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27785         CYTHON_FALLTHROUGH;
27786         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27787         CYTHON_FALLTHROUGH;
27788         case  0: break;
27789         default: goto __pyx_L5_argtuple_error;
27790       }
27791     }
27792     __pyx_v_feasibilityTolerance = values[0];
27793     __pyx_v_keepIntegers = values[1];
27794     __pyx_v_numberPasses = values[2];
27795     __pyx_v_dropNames = values[3];
27796     __pyx_v_doRowObjective = values[4];
27797   }
27798   goto __pyx_L4_argument_unpacking_done;
27799   __pyx_L5_argtuple_error:;
27800   __Pyx_RaiseArgtupleInvalid("dualWithPresolve", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1781, __pyx_L3_error)
27801   __pyx_L3_error:;
27802   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualWithPresolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
27803   __Pyx_RefNannyFinishContext();
27804   return NULL;
27805   __pyx_L4_argument_unpacking_done:;
27806   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_150dualWithPresolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_feasibilityTolerance, __pyx_v_keepIntegers, __pyx_v_numberPasses, __pyx_v_dropNames, __pyx_v_doRowObjective);
27807 
27808   /* function exit code */
27809   __Pyx_RefNannyFinishContext();
27810   return __pyx_r;
27811 }
27812 
27813 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_150dualWithPresolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_feasibilityTolerance, PyObject *__pyx_v_keepIntegers, PyObject *__pyx_v_numberPasses, PyObject *__pyx_v_dropNames, PyObject *__pyx_v_doRowObjective) {
27814   int __pyx_v_ret;
27815   PyObject *__pyx_r = NULL;
27816   __Pyx_TraceDeclarations
27817   __Pyx_RefNannyDeclarations
27818   double __pyx_t_1;
27819   int __pyx_t_2;
27820   int __pyx_t_3;
27821   int __pyx_t_4;
27822   int __pyx_t_5;
27823   PyObject *__pyx_t_6 = NULL;
27824   PyObject *__pyx_t_7 = NULL;
27825   int __pyx_lineno = 0;
27826   const char *__pyx_filename = NULL;
27827   int __pyx_clineno = 0;
27828   __Pyx_RefNannySetupContext("dualWithPresolve", 0);
27829   __Pyx_TraceCall("dualWithPresolve", __pyx_f[0], 1781, 0, __PYX_ERR(0, 1781, __pyx_L1_error));
27830 
27831   /* "cylp/cy/CyClpSimplex.pyx":1785
27832  *                  dropNames=0, doRowObjective=0):
27833  *         ret = self.CppSelf.dualWithPresolve(self.CppSelf,
27834  *                                 feasibilityTolerance, keepIntegers,             # <<<<<<<<<<<<<<
27835  *                                 numberPasses, dropNames, doRowObjective)
27836  *         if ret == -2000:
27837  */
27838   __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_feasibilityTolerance); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1785, __pyx_L1_error)
27839   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_keepIntegers); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1785, __pyx_L1_error)
27840 
27841   /* "cylp/cy/CyClpSimplex.pyx":1786
27842  *         ret = self.CppSelf.dualWithPresolve(self.CppSelf,
27843  *                                 feasibilityTolerance, keepIntegers,
27844  *                                 numberPasses, dropNames, doRowObjective)             # <<<<<<<<<<<<<<
27845  *         if ret == -2000:
27846  *             print("Presolve says problem infeasible.")
27847  */
27848   __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_numberPasses); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1786, __pyx_L1_error)
27849   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_dropNames); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1786, __pyx_L1_error)
27850   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_doRowObjective); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1786, __pyx_L1_error)
27851 
27852   /* "cylp/cy/CyClpSimplex.pyx":1784
27853  *                  keepIntegers=0, numberPasses=5,
27854  *                  dropNames=0, doRowObjective=0):
27855  *         ret = self.CppSelf.dualWithPresolve(self.CppSelf,             # <<<<<<<<<<<<<<
27856  *                                 feasibilityTolerance, keepIntegers,
27857  *                                 numberPasses, dropNames, doRowObjective)
27858  */
27859   __pyx_v_ret = __pyx_v_self->CppSelf->dualWithPresolve(__pyx_v_self->CppSelf, __pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5);
27860 
27861   /* "cylp/cy/CyClpSimplex.pyx":1787
27862  *                                 feasibilityTolerance, keepIntegers,
27863  *                                 numberPasses, dropNames, doRowObjective)
27864  *         if ret == -2000:             # <<<<<<<<<<<<<<
27865  *             print("Presolve says problem infeasible.")
27866  *             return -2000
27867  */
27868   __pyx_t_5 = ((__pyx_v_ret == -2000L) != 0);
27869   if (__pyx_t_5) {
27870 
27871     /* "cylp/cy/CyClpSimplex.pyx":1788
27872  *                                 numberPasses, dropNames, doRowObjective)
27873  *         if ret == -2000:
27874  *             print("Presolve says problem infeasible.")             # <<<<<<<<<<<<<<
27875  *             return -2000
27876  *
27877  */
27878     __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_print, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1788, __pyx_L1_error)
27879     __Pyx_GOTREF(__pyx_t_6);
27880     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
27881 
27882     /* "cylp/cy/CyClpSimplex.pyx":1789
27883  *         if ret == -2000:
27884  *             print("Presolve says problem infeasible.")
27885  *             return -2000             # <<<<<<<<<<<<<<
27886  *
27887  *         return problemStatus[ret]
27888  */
27889     __Pyx_XDECREF(__pyx_r);
27890     __Pyx_INCREF(__pyx_int_neg_2000);
27891     __pyx_r = __pyx_int_neg_2000;
27892     goto __pyx_L0;
27893 
27894     /* "cylp/cy/CyClpSimplex.pyx":1787
27895  *                                 feasibilityTolerance, keepIntegers,
27896  *                                 numberPasses, dropNames, doRowObjective)
27897  *         if ret == -2000:             # <<<<<<<<<<<<<<
27898  *             print("Presolve says problem infeasible.")
27899  *             return -2000
27900  */
27901   }
27902 
27903   /* "cylp/cy/CyClpSimplex.pyx":1791
27904  *             return -2000
27905  *
27906  *         return problemStatus[ret]             # <<<<<<<<<<<<<<
27907  *
27908  *     def primalWithPresolve(self, feasibilityTolerance=0.0,
27909  */
27910   __Pyx_XDECREF(__pyx_r);
27911   __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1791, __pyx_L1_error)
27912   __Pyx_GOTREF(__pyx_t_6);
27913   __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_ret, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1791, __pyx_L1_error)
27914   __Pyx_GOTREF(__pyx_t_7);
27915   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
27916   __pyx_r = __pyx_t_7;
27917   __pyx_t_7 = 0;
27918   goto __pyx_L0;
27919 
27920   /* "cylp/cy/CyClpSimplex.pyx":1781
27921  *         self.CppSelf.postSolve(updateStatus)
27922  *
27923  *     def dualWithPresolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
27924  *                  keepIntegers=0, numberPasses=5,
27925  *                  dropNames=0, doRowObjective=0):
27926  */
27927 
27928   /* function exit code */
27929   __pyx_L1_error:;
27930   __Pyx_XDECREF(__pyx_t_6);
27931   __Pyx_XDECREF(__pyx_t_7);
27932   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualWithPresolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
27933   __pyx_r = NULL;
27934   __pyx_L0:;
27935   __Pyx_XGIVEREF(__pyx_r);
27936   __Pyx_TraceReturn(__pyx_r, 0);
27937   __Pyx_RefNannyFinishContext();
27938   return __pyx_r;
27939 }
27940 
27941 /* "cylp/cy/CyClpSimplex.pyx":1793
27942  *         return problemStatus[ret]
27943  *
27944  *     def primalWithPresolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
27945  *                  keepIntegers=0, numberPasses=5,
27946  *                  dropNames=0, doRowObjective=0):
27947  */
27948 
27949 /* Python wrapper */
27950 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_153primalWithPresolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
27951 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_152primalWithPresolve[] = "CyClpSimplex.primalWithPresolve(self, feasibilityTolerance=0.0, keepIntegers=0, numberPasses=5, dropNames=0, doRowObjective=0)";
27952 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_153primalWithPresolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
27953   PyObject *__pyx_v_feasibilityTolerance = 0;
27954   PyObject *__pyx_v_keepIntegers = 0;
27955   PyObject *__pyx_v_numberPasses = 0;
27956   PyObject *__pyx_v_dropNames = 0;
27957   PyObject *__pyx_v_doRowObjective = 0;
27958   int __pyx_lineno = 0;
27959   const char *__pyx_filename = NULL;
27960   int __pyx_clineno = 0;
27961   PyObject *__pyx_r = 0;
27962   __Pyx_RefNannyDeclarations
27963   __Pyx_RefNannySetupContext("primalWithPresolve (wrapper)", 0);
27964   {
27965     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_feasibilityTolerance,&__pyx_n_s_keepIntegers,&__pyx_n_s_numberPasses,&__pyx_n_s_dropNames,&__pyx_n_s_doRowObjective,0};
27966     PyObject* values[5] = {0,0,0,0,0};
27967     values[0] = ((PyObject *)__pyx_float_0_0);
27968     values[1] = ((PyObject *)__pyx_int_0);
27969     values[2] = ((PyObject *)__pyx_int_5);
27970     values[3] = ((PyObject *)__pyx_int_0);
27971     values[4] = ((PyObject *)__pyx_int_0);
27972     if (unlikely(__pyx_kwds)) {
27973       Py_ssize_t kw_args;
27974       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
27975       switch (pos_args) {
27976         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27977         CYTHON_FALLTHROUGH;
27978         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27979         CYTHON_FALLTHROUGH;
27980         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27981         CYTHON_FALLTHROUGH;
27982         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27983         CYTHON_FALLTHROUGH;
27984         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27985         CYTHON_FALLTHROUGH;
27986         case  0: break;
27987         default: goto __pyx_L5_argtuple_error;
27988       }
27989       kw_args = PyDict_Size(__pyx_kwds);
27990       switch (pos_args) {
27991         case  0:
27992         if (kw_args > 0) {
27993           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_feasibilityTolerance);
27994           if (value) { values[0] = value; kw_args--; }
27995         }
27996         CYTHON_FALLTHROUGH;
27997         case  1:
27998         if (kw_args > 0) {
27999           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepIntegers);
28000           if (value) { values[1] = value; kw_args--; }
28001         }
28002         CYTHON_FALLTHROUGH;
28003         case  2:
28004         if (kw_args > 0) {
28005           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberPasses);
28006           if (value) { values[2] = value; kw_args--; }
28007         }
28008         CYTHON_FALLTHROUGH;
28009         case  3:
28010         if (kw_args > 0) {
28011           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dropNames);
28012           if (value) { values[3] = value; kw_args--; }
28013         }
28014         CYTHON_FALLTHROUGH;
28015         case  4:
28016         if (kw_args > 0) {
28017           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_doRowObjective);
28018           if (value) { values[4] = value; kw_args--; }
28019         }
28020       }
28021       if (unlikely(kw_args > 0)) {
28022         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "primalWithPresolve") < 0)) __PYX_ERR(0, 1793, __pyx_L3_error)
28023       }
28024     } else {
28025       switch (PyTuple_GET_SIZE(__pyx_args)) {
28026         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
28027         CYTHON_FALLTHROUGH;
28028         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
28029         CYTHON_FALLTHROUGH;
28030         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
28031         CYTHON_FALLTHROUGH;
28032         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
28033         CYTHON_FALLTHROUGH;
28034         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
28035         CYTHON_FALLTHROUGH;
28036         case  0: break;
28037         default: goto __pyx_L5_argtuple_error;
28038       }
28039     }
28040     __pyx_v_feasibilityTolerance = values[0];
28041     __pyx_v_keepIntegers = values[1];
28042     __pyx_v_numberPasses = values[2];
28043     __pyx_v_dropNames = values[3];
28044     __pyx_v_doRowObjective = values[4];
28045   }
28046   goto __pyx_L4_argument_unpacking_done;
28047   __pyx_L5_argtuple_error:;
28048   __Pyx_RaiseArgtupleInvalid("primalWithPresolve", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1793, __pyx_L3_error)
28049   __pyx_L3_error:;
28050   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalWithPresolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
28051   __Pyx_RefNannyFinishContext();
28052   return NULL;
28053   __pyx_L4_argument_unpacking_done:;
28054   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_152primalWithPresolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_feasibilityTolerance, __pyx_v_keepIntegers, __pyx_v_numberPasses, __pyx_v_dropNames, __pyx_v_doRowObjective);
28055 
28056   /* function exit code */
28057   __Pyx_RefNannyFinishContext();
28058   return __pyx_r;
28059 }
28060 
28061 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_152primalWithPresolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_feasibilityTolerance, PyObject *__pyx_v_keepIntegers, PyObject *__pyx_v_numberPasses, PyObject *__pyx_v_dropNames, PyObject *__pyx_v_doRowObjective) {
28062   int __pyx_v_ret;
28063   PyObject *__pyx_r = NULL;
28064   __Pyx_TraceDeclarations
28065   __Pyx_RefNannyDeclarations
28066   double __pyx_t_1;
28067   int __pyx_t_2;
28068   int __pyx_t_3;
28069   int __pyx_t_4;
28070   int __pyx_t_5;
28071   PyObject *__pyx_t_6 = NULL;
28072   PyObject *__pyx_t_7 = NULL;
28073   int __pyx_lineno = 0;
28074   const char *__pyx_filename = NULL;
28075   int __pyx_clineno = 0;
28076   __Pyx_RefNannySetupContext("primalWithPresolve", 0);
28077   __Pyx_TraceCall("primalWithPresolve", __pyx_f[0], 1793, 0, __PYX_ERR(0, 1793, __pyx_L1_error));
28078 
28079   /* "cylp/cy/CyClpSimplex.pyx":1797
28080  *                  dropNames=0, doRowObjective=0):
28081  *         ret = self.CppSelf.primalWithPresolve(self.CppSelf,
28082  *                                 feasibilityTolerance, keepIntegers,             # <<<<<<<<<<<<<<
28083  *                                 numberPasses, dropNames, doRowObjective)
28084  *         if ret == -2000:
28085  */
28086   __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_feasibilityTolerance); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1797, __pyx_L1_error)
28087   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_keepIntegers); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1797, __pyx_L1_error)
28088 
28089   /* "cylp/cy/CyClpSimplex.pyx":1798
28090  *         ret = self.CppSelf.primalWithPresolve(self.CppSelf,
28091  *                                 feasibilityTolerance, keepIntegers,
28092  *                                 numberPasses, dropNames, doRowObjective)             # <<<<<<<<<<<<<<
28093  *         if ret == -2000:
28094  *             print("Presolve says problem infeasible.")
28095  */
28096   __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_numberPasses); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1798, __pyx_L1_error)
28097   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_dropNames); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1798, __pyx_L1_error)
28098   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_doRowObjective); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1798, __pyx_L1_error)
28099 
28100   /* "cylp/cy/CyClpSimplex.pyx":1796
28101  *                  keepIntegers=0, numberPasses=5,
28102  *                  dropNames=0, doRowObjective=0):
28103  *         ret = self.CppSelf.primalWithPresolve(self.CppSelf,             # <<<<<<<<<<<<<<
28104  *                                 feasibilityTolerance, keepIntegers,
28105  *                                 numberPasses, dropNames, doRowObjective)
28106  */
28107   __pyx_v_ret = __pyx_v_self->CppSelf->primalWithPresolve(__pyx_v_self->CppSelf, __pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5);
28108 
28109   /* "cylp/cy/CyClpSimplex.pyx":1799
28110  *                                 feasibilityTolerance, keepIntegers,
28111  *                                 numberPasses, dropNames, doRowObjective)
28112  *         if ret == -2000:             # <<<<<<<<<<<<<<
28113  *             print("Presolve says problem infeasible.")
28114  *             return -2000
28115  */
28116   __pyx_t_5 = ((__pyx_v_ret == -2000L) != 0);
28117   if (__pyx_t_5) {
28118 
28119     /* "cylp/cy/CyClpSimplex.pyx":1800
28120  *                                 numberPasses, dropNames, doRowObjective)
28121  *         if ret == -2000:
28122  *             print("Presolve says problem infeasible.")             # <<<<<<<<<<<<<<
28123  *             return -2000
28124  *
28125  */
28126     __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_print, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1800, __pyx_L1_error)
28127     __Pyx_GOTREF(__pyx_t_6);
28128     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
28129 
28130     /* "cylp/cy/CyClpSimplex.pyx":1801
28131  *         if ret == -2000:
28132  *             print("Presolve says problem infeasible.")
28133  *             return -2000             # <<<<<<<<<<<<<<
28134  *
28135  *         return problemStatus[ret]
28136  */
28137     __Pyx_XDECREF(__pyx_r);
28138     __Pyx_INCREF(__pyx_int_neg_2000);
28139     __pyx_r = __pyx_int_neg_2000;
28140     goto __pyx_L0;
28141 
28142     /* "cylp/cy/CyClpSimplex.pyx":1799
28143  *                                 feasibilityTolerance, keepIntegers,
28144  *                                 numberPasses, dropNames, doRowObjective)
28145  *         if ret == -2000:             # <<<<<<<<<<<<<<
28146  *             print("Presolve says problem infeasible.")
28147  *             return -2000
28148  */
28149   }
28150 
28151   /* "cylp/cy/CyClpSimplex.pyx":1803
28152  *             return -2000
28153  *
28154  *         return problemStatus[ret]             # <<<<<<<<<<<<<<
28155  *
28156  *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
28157  */
28158   __Pyx_XDECREF(__pyx_r);
28159   __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1803, __pyx_L1_error)
28160   __Pyx_GOTREF(__pyx_t_6);
28161   __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_ret, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1803, __pyx_L1_error)
28162   __Pyx_GOTREF(__pyx_t_7);
28163   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
28164   __pyx_r = __pyx_t_7;
28165   __pyx_t_7 = 0;
28166   goto __pyx_L0;
28167 
28168   /* "cylp/cy/CyClpSimplex.pyx":1793
28169  *         return problemStatus[ret]
28170  *
28171  *     def primalWithPresolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
28172  *                  keepIntegers=0, numberPasses=5,
28173  *                  dropNames=0, doRowObjective=0):
28174  */
28175 
28176   /* function exit code */
28177   __pyx_L1_error:;
28178   __Pyx_XDECREF(__pyx_t_6);
28179   __Pyx_XDECREF(__pyx_t_7);
28180   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalWithPresolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
28181   __pyx_r = NULL;
28182   __pyx_L0:;
28183   __Pyx_XGIVEREF(__pyx_r);
28184   __Pyx_TraceReturn(__pyx_r, 0);
28185   __Pyx_RefNannyFinishContext();
28186   return __pyx_r;
28187 }
28188 
28189 /* "cylp/cy/CyClpSimplex.pyx":1805
28190  *         return problemStatus[ret]
28191  *
28192  *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):             # <<<<<<<<<<<<<<
28193  *         try:
28194  *             f = open(filename, 'w')
28195  */
28196 
28197 /* Python wrapper */
28198 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_155writeMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
28199 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_154writeMps[] = "CyClpSimplex.writeMps(self, filename, formatType=0, numberAcross=2, objSense=0)";
28200 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_155writeMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
28201   PyObject *__pyx_v_filename = 0;
28202   PyObject *__pyx_v_formatType = 0;
28203   PyObject *__pyx_v_numberAcross = 0;
28204   PyObject *__pyx_v_objSense = 0;
28205   int __pyx_lineno = 0;
28206   const char *__pyx_filename = NULL;
28207   int __pyx_clineno = 0;
28208   PyObject *__pyx_r = 0;
28209   __Pyx_RefNannyDeclarations
28210   __Pyx_RefNannySetupContext("writeMps (wrapper)", 0);
28211   {
28212     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_formatType,&__pyx_n_s_numberAcross,&__pyx_n_s_objSense,0};
28213     PyObject* values[4] = {0,0,0,0};
28214     values[1] = ((PyObject *)__pyx_int_0);
28215     values[2] = ((PyObject *)__pyx_int_2);
28216     values[3] = ((PyObject *)__pyx_int_0);
28217     if (unlikely(__pyx_kwds)) {
28218       Py_ssize_t kw_args;
28219       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
28220       switch (pos_args) {
28221         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
28222         CYTHON_FALLTHROUGH;
28223         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
28224         CYTHON_FALLTHROUGH;
28225         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
28226         CYTHON_FALLTHROUGH;
28227         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
28228         CYTHON_FALLTHROUGH;
28229         case  0: break;
28230         default: goto __pyx_L5_argtuple_error;
28231       }
28232       kw_args = PyDict_Size(__pyx_kwds);
28233       switch (pos_args) {
28234         case  0:
28235         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--;
28236         else goto __pyx_L5_argtuple_error;
28237         CYTHON_FALLTHROUGH;
28238         case  1:
28239         if (kw_args > 0) {
28240           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_formatType);
28241           if (value) { values[1] = value; kw_args--; }
28242         }
28243         CYTHON_FALLTHROUGH;
28244         case  2:
28245         if (kw_args > 0) {
28246           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberAcross);
28247           if (value) { values[2] = value; kw_args--; }
28248         }
28249         CYTHON_FALLTHROUGH;
28250         case  3:
28251         if (kw_args > 0) {
28252           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objSense);
28253           if (value) { values[3] = value; kw_args--; }
28254         }
28255       }
28256       if (unlikely(kw_args > 0)) {
28257         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "writeMps") < 0)) __PYX_ERR(0, 1805, __pyx_L3_error)
28258       }
28259     } else {
28260       switch (PyTuple_GET_SIZE(__pyx_args)) {
28261         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
28262         CYTHON_FALLTHROUGH;
28263         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
28264         CYTHON_FALLTHROUGH;
28265         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
28266         CYTHON_FALLTHROUGH;
28267         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
28268         break;
28269         default: goto __pyx_L5_argtuple_error;
28270       }
28271     }
28272     __pyx_v_filename = values[0];
28273     __pyx_v_formatType = values[1];
28274     __pyx_v_numberAcross = values[2];
28275     __pyx_v_objSense = values[3];
28276   }
28277   goto __pyx_L4_argument_unpacking_done;
28278   __pyx_L5_argtuple_error:;
28279   __Pyx_RaiseArgtupleInvalid("writeMps", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1805, __pyx_L3_error)
28280   __pyx_L3_error:;
28281   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
28282   __Pyx_RefNannyFinishContext();
28283   return NULL;
28284   __pyx_L4_argument_unpacking_done:;
28285   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_154writeMps(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_filename, __pyx_v_formatType, __pyx_v_numberAcross, __pyx_v_objSense);
28286 
28287   /* function exit code */
28288   __Pyx_RefNannyFinishContext();
28289   return __pyx_r;
28290 }
28291 
28292 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_154writeMps(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_formatType, PyObject *__pyx_v_numberAcross, PyObject *__pyx_v_objSense) {
28293   PyObject *__pyx_v_f = NULL;
28294   PyObject *__pyx_v_m = NULL;
28295   PyObject *__pyx_v_inds = NULL;
28296   PyObject *__pyx_v_var = NULL;
28297   PyObject *__pyx_v_varinds = NULL;
28298   PyObject *__pyx_v_i = NULL;
28299   PyObject *__pyx_v_con = NULL;
28300   PyObject *__pyx_v_coninds = NULL;
28301   PyObject *__pyx_r = NULL;
28302   __Pyx_TraceDeclarations
28303   __Pyx_RefNannyDeclarations
28304   PyObject *__pyx_t_1 = NULL;
28305   PyObject *__pyx_t_2 = NULL;
28306   PyObject *__pyx_t_3 = NULL;
28307   PyObject *__pyx_t_4 = NULL;
28308   PyObject *__pyx_t_5 = NULL;
28309   PyObject *__pyx_t_6 = NULL;
28310   PyObject *__pyx_t_7 = NULL;
28311   PyObject *__pyx_t_8 = NULL;
28312   int __pyx_t_9;
28313   Py_ssize_t __pyx_t_10;
28314   PyObject *(*__pyx_t_11)(PyObject *);
28315   Py_ssize_t __pyx_t_12;
28316   PyObject *(*__pyx_t_13)(PyObject *);
28317   char *__pyx_t_14;
28318   int __pyx_t_15;
28319   int __pyx_t_16;
28320   double __pyx_t_17;
28321   int __pyx_lineno = 0;
28322   const char *__pyx_filename = NULL;
28323   int __pyx_clineno = 0;
28324   __Pyx_RefNannySetupContext("writeMps", 0);
28325   __Pyx_TraceCall("writeMps", __pyx_f[0], 1805, 0, __PYX_ERR(0, 1805, __pyx_L1_error));
28326 
28327   /* "cylp/cy/CyClpSimplex.pyx":1806
28328  *
28329  *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
28330  *         try:             # <<<<<<<<<<<<<<
28331  *             f = open(filename, 'w')
28332  *             f.close()
28333  */
28334   {
28335     __Pyx_PyThreadState_declare
28336     __Pyx_PyThreadState_assign
28337     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
28338     __Pyx_XGOTREF(__pyx_t_1);
28339     __Pyx_XGOTREF(__pyx_t_2);
28340     __Pyx_XGOTREF(__pyx_t_3);
28341     /*try:*/ {
28342 
28343       /* "cylp/cy/CyClpSimplex.pyx":1807
28344  *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
28345  *         try:
28346  *             f = open(filename, 'w')             # <<<<<<<<<<<<<<
28347  *             f.close()
28348  *         except:
28349  */
28350       __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1807, __pyx_L3_error)
28351       __Pyx_GOTREF(__pyx_t_4);
28352       __Pyx_INCREF(__pyx_v_filename);
28353       __Pyx_GIVEREF(__pyx_v_filename);
28354       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_filename);
28355       __Pyx_INCREF(__pyx_n_s_w);
28356       __Pyx_GIVEREF(__pyx_n_s_w);
28357       PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_n_s_w);
28358       __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1807, __pyx_L3_error)
28359       __Pyx_GOTREF(__pyx_t_5);
28360       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
28361       __pyx_v_f = __pyx_t_5;
28362       __pyx_t_5 = 0;
28363 
28364       /* "cylp/cy/CyClpSimplex.pyx":1808
28365  *         try:
28366  *             f = open(filename, 'w')
28367  *             f.close()             # <<<<<<<<<<<<<<
28368  *         except:
28369  *             raise Exception('No write access for %s or an intermediate \
28370  */
28371       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_close); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1808, __pyx_L3_error)
28372       __Pyx_GOTREF(__pyx_t_4);
28373       __pyx_t_6 = NULL;
28374       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
28375         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
28376         if (likely(__pyx_t_6)) {
28377           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
28378           __Pyx_INCREF(__pyx_t_6);
28379           __Pyx_INCREF(function);
28380           __Pyx_DECREF_SET(__pyx_t_4, function);
28381         }
28382       }
28383       __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
28384       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
28385       if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1808, __pyx_L3_error)
28386       __Pyx_GOTREF(__pyx_t_5);
28387       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
28388       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
28389 
28390       /* "cylp/cy/CyClpSimplex.pyx":1806
28391  *
28392  *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
28393  *         try:             # <<<<<<<<<<<<<<
28394  *             f = open(filename, 'w')
28395  *             f.close()
28396  */
28397     }
28398     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
28399     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
28400     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
28401     goto __pyx_L8_try_end;
28402     __pyx_L3_error:;
28403     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
28404     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
28405     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
28406 
28407     /* "cylp/cy/CyClpSimplex.pyx":1809
28408  *             f = open(filename, 'w')
28409  *             f.close()
28410  *         except:             # <<<<<<<<<<<<<<
28411  *             raise Exception('No write access for %s or an intermediate \
28412  *                             directory does not exist.' % filename)
28413  */
28414     /*except:*/ {
28415       __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
28416       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(0, 1809, __pyx_L5_except_error)
28417       __Pyx_GOTREF(__pyx_t_5);
28418       __Pyx_GOTREF(__pyx_t_4);
28419       __Pyx_GOTREF(__pyx_t_6);
28420 
28421       /* "cylp/cy/CyClpSimplex.pyx":1811
28422  *         except:
28423  *             raise Exception('No write access for %s or an intermediate \
28424  *                             directory does not exist.' % filename)             # <<<<<<<<<<<<<<
28425  *
28426  *         m = self.cyLPModel
28427  */
28428       __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_No_write_access_for_s_or_an_inte, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1811, __pyx_L5_except_error)
28429       __Pyx_GOTREF(__pyx_t_7);
28430 
28431       /* "cylp/cy/CyClpSimplex.pyx":1810
28432  *             f.close()
28433  *         except:
28434  *             raise Exception('No write access for %s or an intermediate \             # <<<<<<<<<<<<<<
28435  *                             directory does not exist.' % filename)
28436  *
28437  */
28438       __pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1810, __pyx_L5_except_error)
28439       __Pyx_GOTREF(__pyx_t_8);
28440       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
28441       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
28442       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
28443       __PYX_ERR(0, 1810, __pyx_L5_except_error)
28444     }
28445     __pyx_L5_except_error:;
28446 
28447     /* "cylp/cy/CyClpSimplex.pyx":1806
28448  *
28449  *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
28450  *         try:             # <<<<<<<<<<<<<<
28451  *             f = open(filename, 'w')
28452  *             f.close()
28453  */
28454     __Pyx_XGIVEREF(__pyx_t_1);
28455     __Pyx_XGIVEREF(__pyx_t_2);
28456     __Pyx_XGIVEREF(__pyx_t_3);
28457     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
28458     goto __pyx_L1_error;
28459     __pyx_L8_try_end:;
28460   }
28461 
28462   /* "cylp/cy/CyClpSimplex.pyx":1813
28463  *                             directory does not exist.' % filename)
28464  *
28465  *         m = self.cyLPModel             # <<<<<<<<<<<<<<
28466  *         if m:
28467  *             inds = m.inds
28468  */
28469   __pyx_t_6 = __pyx_v_self->cyLPModel;
28470   __Pyx_INCREF(__pyx_t_6);
28471   __pyx_v_m = __pyx_t_6;
28472   __pyx_t_6 = 0;
28473 
28474   /* "cylp/cy/CyClpSimplex.pyx":1814
28475  *
28476  *         m = self.cyLPModel
28477  *         if m:             # <<<<<<<<<<<<<<
28478  *             inds = m.inds
28479  *             for var in m.variables:
28480  */
28481   __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_m); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1814, __pyx_L1_error)
28482   if (__pyx_t_9) {
28483 
28484     /* "cylp/cy/CyClpSimplex.pyx":1815
28485  *         m = self.cyLPModel
28486  *         if m:
28487  *             inds = m.inds             # <<<<<<<<<<<<<<
28488  *             for var in m.variables:
28489  *                 varinds = inds.varIndex[var.name]
28490  */
28491     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1815, __pyx_L1_error)
28492     __Pyx_GOTREF(__pyx_t_6);
28493     __pyx_v_inds = __pyx_t_6;
28494     __pyx_t_6 = 0;
28495 
28496     /* "cylp/cy/CyClpSimplex.pyx":1816
28497  *         if m:
28498  *             inds = m.inds
28499  *             for var in m.variables:             # <<<<<<<<<<<<<<
28500  *                 varinds = inds.varIndex[var.name]
28501  *                 for i in xrange(var.dim):
28502  */
28503     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_variables); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1816, __pyx_L1_error)
28504     __Pyx_GOTREF(__pyx_t_6);
28505     if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
28506       __pyx_t_4 = __pyx_t_6; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
28507       __pyx_t_11 = NULL;
28508     } else {
28509       __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1816, __pyx_L1_error)
28510       __Pyx_GOTREF(__pyx_t_4);
28511       __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1816, __pyx_L1_error)
28512     }
28513     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
28514     for (;;) {
28515       if (likely(!__pyx_t_11)) {
28516         if (likely(PyList_CheckExact(__pyx_t_4))) {
28517           if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
28518           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28519           __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1816, __pyx_L1_error)
28520           #else
28521           __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1816, __pyx_L1_error)
28522           __Pyx_GOTREF(__pyx_t_6);
28523           #endif
28524         } else {
28525           if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
28526           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28527           __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1816, __pyx_L1_error)
28528           #else
28529           __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1816, __pyx_L1_error)
28530           __Pyx_GOTREF(__pyx_t_6);
28531           #endif
28532         }
28533       } else {
28534         __pyx_t_6 = __pyx_t_11(__pyx_t_4);
28535         if (unlikely(!__pyx_t_6)) {
28536           PyObject* exc_type = PyErr_Occurred();
28537           if (exc_type) {
28538             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
28539             else __PYX_ERR(0, 1816, __pyx_L1_error)
28540           }
28541           break;
28542         }
28543         __Pyx_GOTREF(__pyx_t_6);
28544       }
28545       __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_6);
28546       __pyx_t_6 = 0;
28547 
28548       /* "cylp/cy/CyClpSimplex.pyx":1817
28549  *             inds = m.inds
28550  *             for var in m.variables:
28551  *                 varinds = inds.varIndex[var.name]             # <<<<<<<<<<<<<<
28552  *                 for i in xrange(var.dim):
28553  *                     self.setVariableName(varinds[i], var.mpsNames[i])
28554  */
28555       __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1817, __pyx_L1_error)
28556       __Pyx_GOTREF(__pyx_t_6);
28557       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1817, __pyx_L1_error)
28558       __Pyx_GOTREF(__pyx_t_5);
28559       __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1817, __pyx_L1_error)
28560       __Pyx_GOTREF(__pyx_t_8);
28561       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
28562       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
28563       __Pyx_XDECREF_SET(__pyx_v_varinds, __pyx_t_8);
28564       __pyx_t_8 = 0;
28565 
28566       /* "cylp/cy/CyClpSimplex.pyx":1818
28567  *             for var in m.variables:
28568  *                 varinds = inds.varIndex[var.name]
28569  *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
28570  *                     self.setVariableName(varinds[i], var.mpsNames[i])
28571  *
28572  */
28573       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dim); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1818, __pyx_L1_error)
28574       __Pyx_GOTREF(__pyx_t_8);
28575       __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1818, __pyx_L1_error)
28576       __Pyx_GOTREF(__pyx_t_5);
28577       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
28578       if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
28579         __pyx_t_8 = __pyx_t_5; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
28580         __pyx_t_13 = NULL;
28581       } else {
28582         __pyx_t_12 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1818, __pyx_L1_error)
28583         __Pyx_GOTREF(__pyx_t_8);
28584         __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1818, __pyx_L1_error)
28585       }
28586       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
28587       for (;;) {
28588         if (likely(!__pyx_t_13)) {
28589           if (likely(PyList_CheckExact(__pyx_t_8))) {
28590             if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break;
28591             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28592             __pyx_t_5 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1818, __pyx_L1_error)
28593             #else
28594             __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1818, __pyx_L1_error)
28595             __Pyx_GOTREF(__pyx_t_5);
28596             #endif
28597           } else {
28598             if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
28599             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28600             __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1818, __pyx_L1_error)
28601             #else
28602             __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1818, __pyx_L1_error)
28603             __Pyx_GOTREF(__pyx_t_5);
28604             #endif
28605           }
28606         } else {
28607           __pyx_t_5 = __pyx_t_13(__pyx_t_8);
28608           if (unlikely(!__pyx_t_5)) {
28609             PyObject* exc_type = PyErr_Occurred();
28610             if (exc_type) {
28611               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
28612               else __PYX_ERR(0, 1818, __pyx_L1_error)
28613             }
28614             break;
28615           }
28616           __Pyx_GOTREF(__pyx_t_5);
28617         }
28618         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
28619         __pyx_t_5 = 0;
28620 
28621         /* "cylp/cy/CyClpSimplex.pyx":1819
28622  *                 varinds = inds.varIndex[var.name]
28623  *                 for i in xrange(var.dim):
28624  *                     self.setVariableName(varinds[i], var.mpsNames[i])             # <<<<<<<<<<<<<<
28625  *
28626  *             for con in m.constraints:
28627  */
28628         __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_varinds, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1819, __pyx_L1_error)
28629         __Pyx_GOTREF(__pyx_t_5);
28630         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_mpsNames); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1819, __pyx_L1_error)
28631         __Pyx_GOTREF(__pyx_t_6);
28632         __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1819, __pyx_L1_error)
28633         __Pyx_GOTREF(__pyx_t_7);
28634         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
28635         __pyx_t_6 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->setVariableName(__pyx_v_self, __pyx_t_5, __pyx_t_7, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1819, __pyx_L1_error)
28636         __Pyx_GOTREF(__pyx_t_6);
28637         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
28638         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
28639         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
28640 
28641         /* "cylp/cy/CyClpSimplex.pyx":1818
28642  *             for var in m.variables:
28643  *                 varinds = inds.varIndex[var.name]
28644  *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
28645  *                     self.setVariableName(varinds[i], var.mpsNames[i])
28646  *
28647  */
28648       }
28649       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
28650 
28651       /* "cylp/cy/CyClpSimplex.pyx":1816
28652  *         if m:
28653  *             inds = m.inds
28654  *             for var in m.variables:             # <<<<<<<<<<<<<<
28655  *                 varinds = inds.varIndex[var.name]
28656  *                 for i in xrange(var.dim):
28657  */
28658     }
28659     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
28660 
28661     /* "cylp/cy/CyClpSimplex.pyx":1821
28662  *                     self.setVariableName(varinds[i], var.mpsNames[i])
28663  *
28664  *             for con in m.constraints:             # <<<<<<<<<<<<<<
28665  *                 coninds = inds.constIndex[con.name]
28666  *                 for i in xrange(con.nRows):
28667  */
28668     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_constraints); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1821, __pyx_L1_error)
28669     __Pyx_GOTREF(__pyx_t_4);
28670     if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
28671       __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
28672       __pyx_t_11 = NULL;
28673     } else {
28674       __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1821, __pyx_L1_error)
28675       __Pyx_GOTREF(__pyx_t_8);
28676       __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1821, __pyx_L1_error)
28677     }
28678     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
28679     for (;;) {
28680       if (likely(!__pyx_t_11)) {
28681         if (likely(PyList_CheckExact(__pyx_t_8))) {
28682           if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break;
28683           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28684           __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1821, __pyx_L1_error)
28685           #else
28686           __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1821, __pyx_L1_error)
28687           __Pyx_GOTREF(__pyx_t_4);
28688           #endif
28689         } else {
28690           if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
28691           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28692           __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1821, __pyx_L1_error)
28693           #else
28694           __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1821, __pyx_L1_error)
28695           __Pyx_GOTREF(__pyx_t_4);
28696           #endif
28697         }
28698       } else {
28699         __pyx_t_4 = __pyx_t_11(__pyx_t_8);
28700         if (unlikely(!__pyx_t_4)) {
28701           PyObject* exc_type = PyErr_Occurred();
28702           if (exc_type) {
28703             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
28704             else __PYX_ERR(0, 1821, __pyx_L1_error)
28705           }
28706           break;
28707         }
28708         __Pyx_GOTREF(__pyx_t_4);
28709       }
28710       __Pyx_XDECREF_SET(__pyx_v_con, __pyx_t_4);
28711       __pyx_t_4 = 0;
28712 
28713       /* "cylp/cy/CyClpSimplex.pyx":1822
28714  *
28715  *             for con in m.constraints:
28716  *                 coninds = inds.constIndex[con.name]             # <<<<<<<<<<<<<<
28717  *                 for i in xrange(con.nRows):
28718  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
28719  */
28720       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_constIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1822, __pyx_L1_error)
28721       __Pyx_GOTREF(__pyx_t_4);
28722       __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_con, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1822, __pyx_L1_error)
28723       __Pyx_GOTREF(__pyx_t_6);
28724       __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1822, __pyx_L1_error)
28725       __Pyx_GOTREF(__pyx_t_7);
28726       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
28727       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
28728       __Pyx_XDECREF_SET(__pyx_v_coninds, __pyx_t_7);
28729       __pyx_t_7 = 0;
28730 
28731       /* "cylp/cy/CyClpSimplex.pyx":1823
28732  *             for con in m.constraints:
28733  *                 coninds = inds.constIndex[con.name]
28734  *                 for i in xrange(con.nRows):             # <<<<<<<<<<<<<<
28735  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
28736  *         return self.CppSelf.writeMps(filename, formatType, numberAcross,
28737  */
28738       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_con, __pyx_n_s_nRows); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1823, __pyx_L1_error)
28739       __Pyx_GOTREF(__pyx_t_7);
28740       __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1823, __pyx_L1_error)
28741       __Pyx_GOTREF(__pyx_t_6);
28742       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
28743       if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
28744         __pyx_t_7 = __pyx_t_6; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
28745         __pyx_t_13 = NULL;
28746       } else {
28747         __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1823, __pyx_L1_error)
28748         __Pyx_GOTREF(__pyx_t_7);
28749         __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1823, __pyx_L1_error)
28750       }
28751       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
28752       for (;;) {
28753         if (likely(!__pyx_t_13)) {
28754           if (likely(PyList_CheckExact(__pyx_t_7))) {
28755             if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
28756             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28757             __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1823, __pyx_L1_error)
28758             #else
28759             __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1823, __pyx_L1_error)
28760             __Pyx_GOTREF(__pyx_t_6);
28761             #endif
28762           } else {
28763             if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
28764             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28765             __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1823, __pyx_L1_error)
28766             #else
28767             __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1823, __pyx_L1_error)
28768             __Pyx_GOTREF(__pyx_t_6);
28769             #endif
28770           }
28771         } else {
28772           __pyx_t_6 = __pyx_t_13(__pyx_t_7);
28773           if (unlikely(!__pyx_t_6)) {
28774             PyObject* exc_type = PyErr_Occurred();
28775             if (exc_type) {
28776               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
28777               else __PYX_ERR(0, 1823, __pyx_L1_error)
28778             }
28779             break;
28780           }
28781           __Pyx_GOTREF(__pyx_t_6);
28782         }
28783         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
28784         __pyx_t_6 = 0;
28785 
28786         /* "cylp/cy/CyClpSimplex.pyx":1824
28787  *                 coninds = inds.constIndex[con.name]
28788  *                 for i in xrange(con.nRows):
28789  *                     self.setConstraintName(coninds[i], con.mpsNames[i])             # <<<<<<<<<<<<<<
28790  *         return self.CppSelf.writeMps(filename, formatType, numberAcross,
28791  *                                      objSense)
28792  */
28793         __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_coninds, __pyx_v_i); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1824, __pyx_L1_error)
28794         __Pyx_GOTREF(__pyx_t_6);
28795         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_con, __pyx_n_s_mpsNames); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1824, __pyx_L1_error)
28796         __Pyx_GOTREF(__pyx_t_4);
28797         __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1824, __pyx_L1_error)
28798         __Pyx_GOTREF(__pyx_t_5);
28799         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
28800         __pyx_t_4 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->setConstraintName(__pyx_v_self, __pyx_t_6, __pyx_t_5, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1824, __pyx_L1_error)
28801         __Pyx_GOTREF(__pyx_t_4);
28802         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
28803         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
28804         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
28805 
28806         /* "cylp/cy/CyClpSimplex.pyx":1823
28807  *             for con in m.constraints:
28808  *                 coninds = inds.constIndex[con.name]
28809  *                 for i in xrange(con.nRows):             # <<<<<<<<<<<<<<
28810  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
28811  *         return self.CppSelf.writeMps(filename, formatType, numberAcross,
28812  */
28813       }
28814       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
28815 
28816       /* "cylp/cy/CyClpSimplex.pyx":1821
28817  *                     self.setVariableName(varinds[i], var.mpsNames[i])
28818  *
28819  *             for con in m.constraints:             # <<<<<<<<<<<<<<
28820  *                 coninds = inds.constIndex[con.name]
28821  *                 for i in xrange(con.nRows):
28822  */
28823     }
28824     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
28825 
28826     /* "cylp/cy/CyClpSimplex.pyx":1814
28827  *
28828  *         m = self.cyLPModel
28829  *         if m:             # <<<<<<<<<<<<<<
28830  *             inds = m.inds
28831  *             for var in m.variables:
28832  */
28833   }
28834 
28835   /* "cylp/cy/CyClpSimplex.pyx":1825
28836  *                 for i in xrange(con.nRows):
28837  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
28838  *         return self.CppSelf.writeMps(filename, formatType, numberAcross,             # <<<<<<<<<<<<<<
28839  *                                      objSense)
28840  *
28841  */
28842   __Pyx_XDECREF(__pyx_r);
28843   __pyx_t_14 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(0, 1825, __pyx_L1_error)
28844   __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_v_formatType); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1825, __pyx_L1_error)
28845   __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_v_numberAcross); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1825, __pyx_L1_error)
28846 
28847   /* "cylp/cy/CyClpSimplex.pyx":1826
28848  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
28849  *         return self.CppSelf.writeMps(filename, formatType, numberAcross,
28850  *                                      objSense)             # <<<<<<<<<<<<<<
28851  *
28852  *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,
28853  */
28854   __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_v_objSense); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1826, __pyx_L1_error)
28855 
28856   /* "cylp/cy/CyClpSimplex.pyx":1825
28857  *                 for i in xrange(con.nRows):
28858  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
28859  *         return self.CppSelf.writeMps(filename, formatType, numberAcross,             # <<<<<<<<<<<<<<
28860  *                                      objSense)
28861  *
28862  */
28863   __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->writeMps(__pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_t_17)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1825, __pyx_L1_error)
28864   __Pyx_GOTREF(__pyx_t_8);
28865   __pyx_r = __pyx_t_8;
28866   __pyx_t_8 = 0;
28867   goto __pyx_L0;
28868 
28869   /* "cylp/cy/CyClpSimplex.pyx":1805
28870  *         return problemStatus[ret]
28871  *
28872  *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):             # <<<<<<<<<<<<<<
28873  *         try:
28874  *             f = open(filename, 'w')
28875  */
28876 
28877   /* function exit code */
28878   __pyx_L1_error:;
28879   __Pyx_XDECREF(__pyx_t_4);
28880   __Pyx_XDECREF(__pyx_t_5);
28881   __Pyx_XDECREF(__pyx_t_6);
28882   __Pyx_XDECREF(__pyx_t_7);
28883   __Pyx_XDECREF(__pyx_t_8);
28884   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
28885   __pyx_r = NULL;
28886   __pyx_L0:;
28887   __Pyx_XDECREF(__pyx_v_f);
28888   __Pyx_XDECREF(__pyx_v_m);
28889   __Pyx_XDECREF(__pyx_v_inds);
28890   __Pyx_XDECREF(__pyx_v_var);
28891   __Pyx_XDECREF(__pyx_v_varinds);
28892   __Pyx_XDECREF(__pyx_v_i);
28893   __Pyx_XDECREF(__pyx_v_con);
28894   __Pyx_XDECREF(__pyx_v_coninds);
28895   __Pyx_XGIVEREF(__pyx_r);
28896   __Pyx_TraceReturn(__pyx_r, 0);
28897   __Pyx_RefNannyFinishContext();
28898   return __pyx_r;
28899 }
28900 
28901 /* "cylp/cy/CyClpSimplex.pyx":1828
28902  *                                      objSense)
28903  *
28904  *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,             # <<<<<<<<<<<<<<
28905  *                         decimals=5, objSense=0.0, useRowNames=1):
28906  *         try:
28907  */
28908 
28909 /* Python wrapper */
28910 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_157writeLp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
28911 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_156writeLp[] = "CyClpSimplex.writeLp(self, filename, extension='', epsilon=10 ** -5, numberAcross=10, decimals=5, objSense=0.0, useRowNames=1)";
28912 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_157writeLp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
28913   PyObject *__pyx_v_filename = 0;
28914   PyObject *__pyx_v_extension = 0;
28915   PyObject *__pyx_v_epsilon = 0;
28916   PyObject *__pyx_v_numberAcross = 0;
28917   PyObject *__pyx_v_decimals = 0;
28918   PyObject *__pyx_v_objSense = 0;
28919   PyObject *__pyx_v_useRowNames = 0;
28920   int __pyx_lineno = 0;
28921   const char *__pyx_filename = NULL;
28922   int __pyx_clineno = 0;
28923   PyObject *__pyx_r = 0;
28924   __Pyx_RefNannyDeclarations
28925   __Pyx_RefNannySetupContext("writeLp (wrapper)", 0);
28926   {
28927     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_extension,&__pyx_n_s_epsilon,&__pyx_n_s_numberAcross,&__pyx_n_s_decimals,&__pyx_n_s_objSense,&__pyx_n_s_useRowNames,0};
28928     PyObject* values[7] = {0,0,0,0,0,0,0};
28929     values[1] = ((PyObject *)__pyx_kp_s__8);
28930     values[2] = __pyx_k__15;
28931     values[3] = ((PyObject *)__pyx_int_10);
28932     values[4] = ((PyObject *)__pyx_int_5);
28933     values[5] = ((PyObject *)__pyx_float_0_0);
28934     values[6] = ((PyObject *)__pyx_int_1);
28935     if (unlikely(__pyx_kwds)) {
28936       Py_ssize_t kw_args;
28937       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
28938       switch (pos_args) {
28939         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
28940         CYTHON_FALLTHROUGH;
28941         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
28942         CYTHON_FALLTHROUGH;
28943         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
28944         CYTHON_FALLTHROUGH;
28945         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
28946         CYTHON_FALLTHROUGH;
28947         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
28948         CYTHON_FALLTHROUGH;
28949         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
28950         CYTHON_FALLTHROUGH;
28951         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
28952         CYTHON_FALLTHROUGH;
28953         case  0: break;
28954         default: goto __pyx_L5_argtuple_error;
28955       }
28956       kw_args = PyDict_Size(__pyx_kwds);
28957       switch (pos_args) {
28958         case  0:
28959         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--;
28960         else goto __pyx_L5_argtuple_error;
28961         CYTHON_FALLTHROUGH;
28962         case  1:
28963         if (kw_args > 0) {
28964           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extension);
28965           if (value) { values[1] = value; kw_args--; }
28966         }
28967         CYTHON_FALLTHROUGH;
28968         case  2:
28969         if (kw_args > 0) {
28970           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsilon);
28971           if (value) { values[2] = value; kw_args--; }
28972         }
28973         CYTHON_FALLTHROUGH;
28974         case  3:
28975         if (kw_args > 0) {
28976           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberAcross);
28977           if (value) { values[3] = value; kw_args--; }
28978         }
28979         CYTHON_FALLTHROUGH;
28980         case  4:
28981         if (kw_args > 0) {
28982           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_decimals);
28983           if (value) { values[4] = value; kw_args--; }
28984         }
28985         CYTHON_FALLTHROUGH;
28986         case  5:
28987         if (kw_args > 0) {
28988           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objSense);
28989           if (value) { values[5] = value; kw_args--; }
28990         }
28991         CYTHON_FALLTHROUGH;
28992         case  6:
28993         if (kw_args > 0) {
28994           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_useRowNames);
28995           if (value) { values[6] = value; kw_args--; }
28996         }
28997       }
28998       if (unlikely(kw_args > 0)) {
28999         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "writeLp") < 0)) __PYX_ERR(0, 1828, __pyx_L3_error)
29000       }
29001     } else {
29002       switch (PyTuple_GET_SIZE(__pyx_args)) {
29003         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
29004         CYTHON_FALLTHROUGH;
29005         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
29006         CYTHON_FALLTHROUGH;
29007         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
29008         CYTHON_FALLTHROUGH;
29009         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
29010         CYTHON_FALLTHROUGH;
29011         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
29012         CYTHON_FALLTHROUGH;
29013         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29014         CYTHON_FALLTHROUGH;
29015         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29016         break;
29017         default: goto __pyx_L5_argtuple_error;
29018       }
29019     }
29020     __pyx_v_filename = values[0];
29021     __pyx_v_extension = values[1];
29022     __pyx_v_epsilon = values[2];
29023     __pyx_v_numberAcross = values[3];
29024     __pyx_v_decimals = values[4];
29025     __pyx_v_objSense = values[5];
29026     __pyx_v_useRowNames = values[6];
29027   }
29028   goto __pyx_L4_argument_unpacking_done;
29029   __pyx_L5_argtuple_error:;
29030   __Pyx_RaiseArgtupleInvalid("writeLp", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1828, __pyx_L3_error)
29031   __pyx_L3_error:;
29032   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
29033   __Pyx_RefNannyFinishContext();
29034   return NULL;
29035   __pyx_L4_argument_unpacking_done:;
29036   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_156writeLp(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_filename, __pyx_v_extension, __pyx_v_epsilon, __pyx_v_numberAcross, __pyx_v_decimals, __pyx_v_objSense, __pyx_v_useRowNames);
29037 
29038   /* function exit code */
29039   __Pyx_RefNannyFinishContext();
29040   return __pyx_r;
29041 }
29042 
29043 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_156writeLp(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_extension, PyObject *__pyx_v_epsilon, PyObject *__pyx_v_numberAcross, PyObject *__pyx_v_decimals, PyObject *__pyx_v_objSense, PyObject *__pyx_v_useRowNames) {
29044   PyObject *__pyx_v_f = NULL;
29045   PyObject *__pyx_v_m = NULL;
29046   PyObject *__pyx_v_inds = NULL;
29047   PyObject *__pyx_v_var = NULL;
29048   PyObject *__pyx_v_varinds = NULL;
29049   PyObject *__pyx_v_i = NULL;
29050   PyObject *__pyx_v_con = NULL;
29051   PyObject *__pyx_v_coninds = NULL;
29052   PyObject *__pyx_r = NULL;
29053   __Pyx_TraceDeclarations
29054   __Pyx_RefNannyDeclarations
29055   PyObject *__pyx_t_1 = NULL;
29056   PyObject *__pyx_t_2 = NULL;
29057   PyObject *__pyx_t_3 = NULL;
29058   PyObject *__pyx_t_4 = NULL;
29059   PyObject *__pyx_t_5 = NULL;
29060   PyObject *__pyx_t_6 = NULL;
29061   PyObject *__pyx_t_7 = NULL;
29062   PyObject *__pyx_t_8 = NULL;
29063   int __pyx_t_9;
29064   Py_ssize_t __pyx_t_10;
29065   PyObject *(*__pyx_t_11)(PyObject *);
29066   Py_ssize_t __pyx_t_12;
29067   PyObject *(*__pyx_t_13)(PyObject *);
29068   char *__pyx_t_14;
29069   char *__pyx_t_15;
29070   double __pyx_t_16;
29071   int __pyx_t_17;
29072   int __pyx_t_18;
29073   double __pyx_t_19;
29074   int __pyx_lineno = 0;
29075   const char *__pyx_filename = NULL;
29076   int __pyx_clineno = 0;
29077   __Pyx_RefNannySetupContext("writeLp", 0);
29078   __Pyx_TraceCall("writeLp", __pyx_f[0], 1828, 0, __PYX_ERR(0, 1828, __pyx_L1_error));
29079 
29080   /* "cylp/cy/CyClpSimplex.pyx":1830
29081  *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,
29082  *                         decimals=5, objSense=0.0, useRowNames=1):
29083  *         try:             # <<<<<<<<<<<<<<
29084  *             f = open(filename, 'w')
29085  *             f.close()
29086  */
29087   {
29088     __Pyx_PyThreadState_declare
29089     __Pyx_PyThreadState_assign
29090     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
29091     __Pyx_XGOTREF(__pyx_t_1);
29092     __Pyx_XGOTREF(__pyx_t_2);
29093     __Pyx_XGOTREF(__pyx_t_3);
29094     /*try:*/ {
29095 
29096       /* "cylp/cy/CyClpSimplex.pyx":1831
29097  *                         decimals=5, objSense=0.0, useRowNames=1):
29098  *         try:
29099  *             f = open(filename, 'w')             # <<<<<<<<<<<<<<
29100  *             f.close()
29101  *         except:
29102  */
29103       __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1831, __pyx_L3_error)
29104       __Pyx_GOTREF(__pyx_t_4);
29105       __Pyx_INCREF(__pyx_v_filename);
29106       __Pyx_GIVEREF(__pyx_v_filename);
29107       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_filename);
29108       __Pyx_INCREF(__pyx_n_s_w);
29109       __Pyx_GIVEREF(__pyx_n_s_w);
29110       PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_n_s_w);
29111       __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1831, __pyx_L3_error)
29112       __Pyx_GOTREF(__pyx_t_5);
29113       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
29114       __pyx_v_f = __pyx_t_5;
29115       __pyx_t_5 = 0;
29116 
29117       /* "cylp/cy/CyClpSimplex.pyx":1832
29118  *         try:
29119  *             f = open(filename, 'w')
29120  *             f.close()             # <<<<<<<<<<<<<<
29121  *         except:
29122  *             raise Exception('No write access for %s or an intermediate \
29123  */
29124       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_close); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1832, __pyx_L3_error)
29125       __Pyx_GOTREF(__pyx_t_4);
29126       __pyx_t_6 = NULL;
29127       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
29128         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
29129         if (likely(__pyx_t_6)) {
29130           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
29131           __Pyx_INCREF(__pyx_t_6);
29132           __Pyx_INCREF(function);
29133           __Pyx_DECREF_SET(__pyx_t_4, function);
29134         }
29135       }
29136       __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
29137       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
29138       if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1832, __pyx_L3_error)
29139       __Pyx_GOTREF(__pyx_t_5);
29140       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
29141       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
29142 
29143       /* "cylp/cy/CyClpSimplex.pyx":1830
29144  *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,
29145  *                         decimals=5, objSense=0.0, useRowNames=1):
29146  *         try:             # <<<<<<<<<<<<<<
29147  *             f = open(filename, 'w')
29148  *             f.close()
29149  */
29150     }
29151     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
29152     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
29153     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
29154     goto __pyx_L8_try_end;
29155     __pyx_L3_error:;
29156     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
29157     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
29158     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
29159 
29160     /* "cylp/cy/CyClpSimplex.pyx":1833
29161  *             f = open(filename, 'w')
29162  *             f.close()
29163  *         except:             # <<<<<<<<<<<<<<
29164  *             raise Exception('No write access for %s or an intermediate \
29165  *                             directory does not exist.' % filename)
29166  */
29167     /*except:*/ {
29168       __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
29169       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(0, 1833, __pyx_L5_except_error)
29170       __Pyx_GOTREF(__pyx_t_5);
29171       __Pyx_GOTREF(__pyx_t_4);
29172       __Pyx_GOTREF(__pyx_t_6);
29173 
29174       /* "cylp/cy/CyClpSimplex.pyx":1835
29175  *         except:
29176  *             raise Exception('No write access for %s or an intermediate \
29177  *                             directory does not exist.' % filename)             # <<<<<<<<<<<<<<
29178  *
29179  *         m = self.cyLPModel
29180  */
29181       __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_No_write_access_for_s_or_an_inte, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1835, __pyx_L5_except_error)
29182       __Pyx_GOTREF(__pyx_t_7);
29183 
29184       /* "cylp/cy/CyClpSimplex.pyx":1834
29185  *             f.close()
29186  *         except:
29187  *             raise Exception('No write access for %s or an intermediate \             # <<<<<<<<<<<<<<
29188  *                             directory does not exist.' % filename)
29189  *
29190  */
29191       __pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1834, __pyx_L5_except_error)
29192       __Pyx_GOTREF(__pyx_t_8);
29193       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
29194       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
29195       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
29196       __PYX_ERR(0, 1834, __pyx_L5_except_error)
29197     }
29198     __pyx_L5_except_error:;
29199 
29200     /* "cylp/cy/CyClpSimplex.pyx":1830
29201  *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,
29202  *                         decimals=5, objSense=0.0, useRowNames=1):
29203  *         try:             # <<<<<<<<<<<<<<
29204  *             f = open(filename, 'w')
29205  *             f.close()
29206  */
29207     __Pyx_XGIVEREF(__pyx_t_1);
29208     __Pyx_XGIVEREF(__pyx_t_2);
29209     __Pyx_XGIVEREF(__pyx_t_3);
29210     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
29211     goto __pyx_L1_error;
29212     __pyx_L8_try_end:;
29213   }
29214 
29215   /* "cylp/cy/CyClpSimplex.pyx":1837
29216  *                             directory does not exist.' % filename)
29217  *
29218  *         m = self.cyLPModel             # <<<<<<<<<<<<<<
29219  *         if m:
29220  *             inds = m.inds
29221  */
29222   __pyx_t_6 = __pyx_v_self->cyLPModel;
29223   __Pyx_INCREF(__pyx_t_6);
29224   __pyx_v_m = __pyx_t_6;
29225   __pyx_t_6 = 0;
29226 
29227   /* "cylp/cy/CyClpSimplex.pyx":1838
29228  *
29229  *         m = self.cyLPModel
29230  *         if m:             # <<<<<<<<<<<<<<
29231  *             inds = m.inds
29232  *             for var in m.variables:
29233  */
29234   __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_m); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1838, __pyx_L1_error)
29235   if (__pyx_t_9) {
29236 
29237     /* "cylp/cy/CyClpSimplex.pyx":1839
29238  *         m = self.cyLPModel
29239  *         if m:
29240  *             inds = m.inds             # <<<<<<<<<<<<<<
29241  *             for var in m.variables:
29242  *                 varinds = inds.varIndex[var.name]
29243  */
29244     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1839, __pyx_L1_error)
29245     __Pyx_GOTREF(__pyx_t_6);
29246     __pyx_v_inds = __pyx_t_6;
29247     __pyx_t_6 = 0;
29248 
29249     /* "cylp/cy/CyClpSimplex.pyx":1840
29250  *         if m:
29251  *             inds = m.inds
29252  *             for var in m.variables:             # <<<<<<<<<<<<<<
29253  *                 varinds = inds.varIndex[var.name]
29254  *                 for i in xrange(var.dim):
29255  */
29256     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_variables); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1840, __pyx_L1_error)
29257     __Pyx_GOTREF(__pyx_t_6);
29258     if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
29259       __pyx_t_4 = __pyx_t_6; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
29260       __pyx_t_11 = NULL;
29261     } else {
29262       __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1840, __pyx_L1_error)
29263       __Pyx_GOTREF(__pyx_t_4);
29264       __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1840, __pyx_L1_error)
29265     }
29266     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
29267     for (;;) {
29268       if (likely(!__pyx_t_11)) {
29269         if (likely(PyList_CheckExact(__pyx_t_4))) {
29270           if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
29271           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
29272           __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1840, __pyx_L1_error)
29273           #else
29274           __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1840, __pyx_L1_error)
29275           __Pyx_GOTREF(__pyx_t_6);
29276           #endif
29277         } else {
29278           if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
29279           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
29280           __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1840, __pyx_L1_error)
29281           #else
29282           __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1840, __pyx_L1_error)
29283           __Pyx_GOTREF(__pyx_t_6);
29284           #endif
29285         }
29286       } else {
29287         __pyx_t_6 = __pyx_t_11(__pyx_t_4);
29288         if (unlikely(!__pyx_t_6)) {
29289           PyObject* exc_type = PyErr_Occurred();
29290           if (exc_type) {
29291             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
29292             else __PYX_ERR(0, 1840, __pyx_L1_error)
29293           }
29294           break;
29295         }
29296         __Pyx_GOTREF(__pyx_t_6);
29297       }
29298       __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_6);
29299       __pyx_t_6 = 0;
29300 
29301       /* "cylp/cy/CyClpSimplex.pyx":1841
29302  *             inds = m.inds
29303  *             for var in m.variables:
29304  *                 varinds = inds.varIndex[var.name]             # <<<<<<<<<<<<<<
29305  *                 for i in xrange(var.dim):
29306  *                     self.setVariableName(varinds[i], var.mpsNames[i])
29307  */
29308       __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1841, __pyx_L1_error)
29309       __Pyx_GOTREF(__pyx_t_6);
29310       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1841, __pyx_L1_error)
29311       __Pyx_GOTREF(__pyx_t_5);
29312       __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1841, __pyx_L1_error)
29313       __Pyx_GOTREF(__pyx_t_8);
29314       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
29315       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
29316       __Pyx_XDECREF_SET(__pyx_v_varinds, __pyx_t_8);
29317       __pyx_t_8 = 0;
29318 
29319       /* "cylp/cy/CyClpSimplex.pyx":1842
29320  *             for var in m.variables:
29321  *                 varinds = inds.varIndex[var.name]
29322  *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
29323  *                     self.setVariableName(varinds[i], var.mpsNames[i])
29324  *
29325  */
29326       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dim); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1842, __pyx_L1_error)
29327       __Pyx_GOTREF(__pyx_t_8);
29328       __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1842, __pyx_L1_error)
29329       __Pyx_GOTREF(__pyx_t_5);
29330       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
29331       if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
29332         __pyx_t_8 = __pyx_t_5; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
29333         __pyx_t_13 = NULL;
29334       } else {
29335         __pyx_t_12 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1842, __pyx_L1_error)
29336         __Pyx_GOTREF(__pyx_t_8);
29337         __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1842, __pyx_L1_error)
29338       }
29339       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
29340       for (;;) {
29341         if (likely(!__pyx_t_13)) {
29342           if (likely(PyList_CheckExact(__pyx_t_8))) {
29343             if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break;
29344             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
29345             __pyx_t_5 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1842, __pyx_L1_error)
29346             #else
29347             __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1842, __pyx_L1_error)
29348             __Pyx_GOTREF(__pyx_t_5);
29349             #endif
29350           } else {
29351             if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
29352             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
29353             __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1842, __pyx_L1_error)
29354             #else
29355             __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1842, __pyx_L1_error)
29356             __Pyx_GOTREF(__pyx_t_5);
29357             #endif
29358           }
29359         } else {
29360           __pyx_t_5 = __pyx_t_13(__pyx_t_8);
29361           if (unlikely(!__pyx_t_5)) {
29362             PyObject* exc_type = PyErr_Occurred();
29363             if (exc_type) {
29364               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
29365               else __PYX_ERR(0, 1842, __pyx_L1_error)
29366             }
29367             break;
29368           }
29369           __Pyx_GOTREF(__pyx_t_5);
29370         }
29371         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
29372         __pyx_t_5 = 0;
29373 
29374         /* "cylp/cy/CyClpSimplex.pyx":1843
29375  *                 varinds = inds.varIndex[var.name]
29376  *                 for i in xrange(var.dim):
29377  *                     self.setVariableName(varinds[i], var.mpsNames[i])             # <<<<<<<<<<<<<<
29378  *
29379  *             for con in m.constraints:
29380  */
29381         __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_varinds, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1843, __pyx_L1_error)
29382         __Pyx_GOTREF(__pyx_t_5);
29383         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_mpsNames); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1843, __pyx_L1_error)
29384         __Pyx_GOTREF(__pyx_t_6);
29385         __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1843, __pyx_L1_error)
29386         __Pyx_GOTREF(__pyx_t_7);
29387         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
29388         __pyx_t_6 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->setVariableName(__pyx_v_self, __pyx_t_5, __pyx_t_7, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1843, __pyx_L1_error)
29389         __Pyx_GOTREF(__pyx_t_6);
29390         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
29391         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
29392         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
29393 
29394         /* "cylp/cy/CyClpSimplex.pyx":1842
29395  *             for var in m.variables:
29396  *                 varinds = inds.varIndex[var.name]
29397  *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
29398  *                     self.setVariableName(varinds[i], var.mpsNames[i])
29399  *
29400  */
29401       }
29402       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
29403 
29404       /* "cylp/cy/CyClpSimplex.pyx":1840
29405  *         if m:
29406  *             inds = m.inds
29407  *             for var in m.variables:             # <<<<<<<<<<<<<<
29408  *                 varinds = inds.varIndex[var.name]
29409  *                 for i in xrange(var.dim):
29410  */
29411     }
29412     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
29413 
29414     /* "cylp/cy/CyClpSimplex.pyx":1845
29415  *                     self.setVariableName(varinds[i], var.mpsNames[i])
29416  *
29417  *             for con in m.constraints:             # <<<<<<<<<<<<<<
29418  *                 coninds = inds.constIndex[con.name]
29419  *                 for i in xrange(con.nRows):
29420  */
29421     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_constraints); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1845, __pyx_L1_error)
29422     __Pyx_GOTREF(__pyx_t_4);
29423     if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
29424       __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
29425       __pyx_t_11 = NULL;
29426     } else {
29427       __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1845, __pyx_L1_error)
29428       __Pyx_GOTREF(__pyx_t_8);
29429       __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1845, __pyx_L1_error)
29430     }
29431     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
29432     for (;;) {
29433       if (likely(!__pyx_t_11)) {
29434         if (likely(PyList_CheckExact(__pyx_t_8))) {
29435           if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break;
29436           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
29437           __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1845, __pyx_L1_error)
29438           #else
29439           __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1845, __pyx_L1_error)
29440           __Pyx_GOTREF(__pyx_t_4);
29441           #endif
29442         } else {
29443           if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
29444           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
29445           __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1845, __pyx_L1_error)
29446           #else
29447           __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1845, __pyx_L1_error)
29448           __Pyx_GOTREF(__pyx_t_4);
29449           #endif
29450         }
29451       } else {
29452         __pyx_t_4 = __pyx_t_11(__pyx_t_8);
29453         if (unlikely(!__pyx_t_4)) {
29454           PyObject* exc_type = PyErr_Occurred();
29455           if (exc_type) {
29456             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
29457             else __PYX_ERR(0, 1845, __pyx_L1_error)
29458           }
29459           break;
29460         }
29461         __Pyx_GOTREF(__pyx_t_4);
29462       }
29463       __Pyx_XDECREF_SET(__pyx_v_con, __pyx_t_4);
29464       __pyx_t_4 = 0;
29465 
29466       /* "cylp/cy/CyClpSimplex.pyx":1846
29467  *
29468  *             for con in m.constraints:
29469  *                 coninds = inds.constIndex[con.name]             # <<<<<<<<<<<<<<
29470  *                 for i in xrange(con.nRows):
29471  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
29472  */
29473       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_constIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1846, __pyx_L1_error)
29474       __Pyx_GOTREF(__pyx_t_4);
29475       __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_con, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1846, __pyx_L1_error)
29476       __Pyx_GOTREF(__pyx_t_6);
29477       __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1846, __pyx_L1_error)
29478       __Pyx_GOTREF(__pyx_t_7);
29479       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
29480       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
29481       __Pyx_XDECREF_SET(__pyx_v_coninds, __pyx_t_7);
29482       __pyx_t_7 = 0;
29483 
29484       /* "cylp/cy/CyClpSimplex.pyx":1847
29485  *             for con in m.constraints:
29486  *                 coninds = inds.constIndex[con.name]
29487  *                 for i in xrange(con.nRows):             # <<<<<<<<<<<<<<
29488  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
29489  *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
29490  */
29491       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_con, __pyx_n_s_nRows); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1847, __pyx_L1_error)
29492       __Pyx_GOTREF(__pyx_t_7);
29493       __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1847, __pyx_L1_error)
29494       __Pyx_GOTREF(__pyx_t_6);
29495       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
29496       if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
29497         __pyx_t_7 = __pyx_t_6; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
29498         __pyx_t_13 = NULL;
29499       } else {
29500         __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1847, __pyx_L1_error)
29501         __Pyx_GOTREF(__pyx_t_7);
29502         __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1847, __pyx_L1_error)
29503       }
29504       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
29505       for (;;) {
29506         if (likely(!__pyx_t_13)) {
29507           if (likely(PyList_CheckExact(__pyx_t_7))) {
29508             if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
29509             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
29510             __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1847, __pyx_L1_error)
29511             #else
29512             __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1847, __pyx_L1_error)
29513             __Pyx_GOTREF(__pyx_t_6);
29514             #endif
29515           } else {
29516             if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
29517             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
29518             __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1847, __pyx_L1_error)
29519             #else
29520             __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1847, __pyx_L1_error)
29521             __Pyx_GOTREF(__pyx_t_6);
29522             #endif
29523           }
29524         } else {
29525           __pyx_t_6 = __pyx_t_13(__pyx_t_7);
29526           if (unlikely(!__pyx_t_6)) {
29527             PyObject* exc_type = PyErr_Occurred();
29528             if (exc_type) {
29529               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
29530               else __PYX_ERR(0, 1847, __pyx_L1_error)
29531             }
29532             break;
29533           }
29534           __Pyx_GOTREF(__pyx_t_6);
29535         }
29536         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
29537         __pyx_t_6 = 0;
29538 
29539         /* "cylp/cy/CyClpSimplex.pyx":1848
29540  *                 coninds = inds.constIndex[con.name]
29541  *                 for i in xrange(con.nRows):
29542  *                     self.setConstraintName(coninds[i], con.mpsNames[i])             # <<<<<<<<<<<<<<
29543  *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
29544  *
29545  */
29546         __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_coninds, __pyx_v_i); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1848, __pyx_L1_error)
29547         __Pyx_GOTREF(__pyx_t_6);
29548         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_con, __pyx_n_s_mpsNames); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1848, __pyx_L1_error)
29549         __Pyx_GOTREF(__pyx_t_4);
29550         __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1848, __pyx_L1_error)
29551         __Pyx_GOTREF(__pyx_t_5);
29552         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
29553         __pyx_t_4 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->setConstraintName(__pyx_v_self, __pyx_t_6, __pyx_t_5, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1848, __pyx_L1_error)
29554         __Pyx_GOTREF(__pyx_t_4);
29555         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
29556         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
29557         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
29558 
29559         /* "cylp/cy/CyClpSimplex.pyx":1847
29560  *             for con in m.constraints:
29561  *                 coninds = inds.constIndex[con.name]
29562  *                 for i in xrange(con.nRows):             # <<<<<<<<<<<<<<
29563  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
29564  *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
29565  */
29566       }
29567       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
29568 
29569       /* "cylp/cy/CyClpSimplex.pyx":1845
29570  *                     self.setVariableName(varinds[i], var.mpsNames[i])
29571  *
29572  *             for con in m.constraints:             # <<<<<<<<<<<<<<
29573  *                 coninds = inds.constIndex[con.name]
29574  *                 for i in xrange(con.nRows):
29575  */
29576     }
29577     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
29578 
29579     /* "cylp/cy/CyClpSimplex.pyx":1838
29580  *
29581  *         m = self.cyLPModel
29582  *         if m:             # <<<<<<<<<<<<<<
29583  *             inds = m.inds
29584  *             for var in m.variables:
29585  */
29586   }
29587 
29588   /* "cylp/cy/CyClpSimplex.pyx":1849
29589  *                 for i in xrange(con.nRows):
29590  *                     self.setConstraintName(coninds[i], con.mpsNames[i])
29591  *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)             # <<<<<<<<<<<<<<
29592  *
29593  *     def readLp(self, char *filename, epsilon=10**-5):
29594  */
29595   __pyx_t_14 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(0, 1849, __pyx_L1_error)
29596   __pyx_t_15 = __Pyx_PyObject_AsWritableString(__pyx_v_extension); if (unlikely((!__pyx_t_15) && PyErr_Occurred())) __PYX_ERR(0, 1849, __pyx_L1_error)
29597   __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_v_epsilon); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1849, __pyx_L1_error)
29598   __pyx_t_17 = __Pyx_PyInt_As_int(__pyx_v_numberAcross); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1849, __pyx_L1_error)
29599   __pyx_t_18 = __Pyx_PyInt_As_int(__pyx_v_decimals); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1849, __pyx_L1_error)
29600   __pyx_t_19 = __pyx_PyFloat_AsDouble(__pyx_v_objSense); if (unlikely((__pyx_t_19 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1849, __pyx_L1_error)
29601   __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_useRowNames); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1849, __pyx_L1_error)
29602   __pyx_v_self->CppSelf->writeLp(__pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_t_19, __pyx_t_9);
29603 
29604   /* "cylp/cy/CyClpSimplex.pyx":1828
29605  *                                      objSense)
29606  *
29607  *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,             # <<<<<<<<<<<<<<
29608  *                         decimals=5, objSense=0.0, useRowNames=1):
29609  *         try:
29610  */
29611 
29612   /* function exit code */
29613   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
29614   goto __pyx_L0;
29615   __pyx_L1_error:;
29616   __Pyx_XDECREF(__pyx_t_4);
29617   __Pyx_XDECREF(__pyx_t_5);
29618   __Pyx_XDECREF(__pyx_t_6);
29619   __Pyx_XDECREF(__pyx_t_7);
29620   __Pyx_XDECREF(__pyx_t_8);
29621   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
29622   __pyx_r = NULL;
29623   __pyx_L0:;
29624   __Pyx_XDECREF(__pyx_v_f);
29625   __Pyx_XDECREF(__pyx_v_m);
29626   __Pyx_XDECREF(__pyx_v_inds);
29627   __Pyx_XDECREF(__pyx_v_var);
29628   __Pyx_XDECREF(__pyx_v_varinds);
29629   __Pyx_XDECREF(__pyx_v_i);
29630   __Pyx_XDECREF(__pyx_v_con);
29631   __Pyx_XDECREF(__pyx_v_coninds);
29632   __Pyx_XGIVEREF(__pyx_r);
29633   __Pyx_TraceReturn(__pyx_r, 0);
29634   __Pyx_RefNannyFinishContext();
29635   return __pyx_r;
29636 }
29637 
29638 /* "cylp/cy/CyClpSimplex.pyx":1851
29639  *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
29640  *
29641  *     def readLp(self, char *filename, epsilon=10**-5):             # <<<<<<<<<<<<<<
29642  *         return self.CppSelf.readLp(filename, epsilon)
29643  *
29644  */
29645 
29646 /* Python wrapper */
29647 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_159readLp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
29648 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_158readLp[] = "CyClpSimplex.readLp(self, char *filename, epsilon=10 ** -5)";
29649 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_159readLp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29650   char *__pyx_v_filename;
29651   PyObject *__pyx_v_epsilon = 0;
29652   int __pyx_lineno = 0;
29653   const char *__pyx_filename = NULL;
29654   int __pyx_clineno = 0;
29655   PyObject *__pyx_r = 0;
29656   __Pyx_RefNannyDeclarations
29657   __Pyx_RefNannySetupContext("readLp (wrapper)", 0);
29658   {
29659     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_epsilon,0};
29660     PyObject* values[2] = {0,0};
29661     values[1] = __pyx_k__16;
29662     if (unlikely(__pyx_kwds)) {
29663       Py_ssize_t kw_args;
29664       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
29665       switch (pos_args) {
29666         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29667         CYTHON_FALLTHROUGH;
29668         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29669         CYTHON_FALLTHROUGH;
29670         case  0: break;
29671         default: goto __pyx_L5_argtuple_error;
29672       }
29673       kw_args = PyDict_Size(__pyx_kwds);
29674       switch (pos_args) {
29675         case  0:
29676         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--;
29677         else goto __pyx_L5_argtuple_error;
29678         CYTHON_FALLTHROUGH;
29679         case  1:
29680         if (kw_args > 0) {
29681           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsilon);
29682           if (value) { values[1] = value; kw_args--; }
29683         }
29684       }
29685       if (unlikely(kw_args > 0)) {
29686         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "readLp") < 0)) __PYX_ERR(0, 1851, __pyx_L3_error)
29687       }
29688     } else {
29689       switch (PyTuple_GET_SIZE(__pyx_args)) {
29690         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29691         CYTHON_FALLTHROUGH;
29692         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29693         break;
29694         default: goto __pyx_L5_argtuple_error;
29695       }
29696     }
29697     __pyx_v_filename = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) __PYX_ERR(0, 1851, __pyx_L3_error)
29698     __pyx_v_epsilon = values[1];
29699   }
29700   goto __pyx_L4_argument_unpacking_done;
29701   __pyx_L5_argtuple_error:;
29702   __Pyx_RaiseArgtupleInvalid("readLp", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1851, __pyx_L3_error)
29703   __pyx_L3_error:;
29704   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
29705   __Pyx_RefNannyFinishContext();
29706   return NULL;
29707   __pyx_L4_argument_unpacking_done:;
29708   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_158readLp(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_filename, __pyx_v_epsilon);
29709 
29710   /* function exit code */
29711   __Pyx_RefNannyFinishContext();
29712   return __pyx_r;
29713 }
29714 
29715 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_158readLp(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, char *__pyx_v_filename, PyObject *__pyx_v_epsilon) {
29716   PyObject *__pyx_r = NULL;
29717   __Pyx_TraceDeclarations
29718   __Pyx_RefNannyDeclarations
29719   double __pyx_t_1;
29720   PyObject *__pyx_t_2 = NULL;
29721   int __pyx_lineno = 0;
29722   const char *__pyx_filename = NULL;
29723   int __pyx_clineno = 0;
29724   __Pyx_RefNannySetupContext("readLp", 0);
29725   __Pyx_TraceCall("readLp", __pyx_f[0], 1851, 0, __PYX_ERR(0, 1851, __pyx_L1_error));
29726 
29727   /* "cylp/cy/CyClpSimplex.pyx":1852
29728  *
29729  *     def readLp(self, char *filename, epsilon=10**-5):
29730  *         return self.CppSelf.readLp(filename, epsilon)             # <<<<<<<<<<<<<<
29731  *
29732  *     def updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn):
29733  */
29734   __Pyx_XDECREF(__pyx_r);
29735   __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_epsilon); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1852, __pyx_L1_error)
29736   __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->readLp(__pyx_v_filename, __pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1852, __pyx_L1_error)
29737   __Pyx_GOTREF(__pyx_t_2);
29738   __pyx_r = __pyx_t_2;
29739   __pyx_t_2 = 0;
29740   goto __pyx_L0;
29741 
29742   /* "cylp/cy/CyClpSimplex.pyx":1851
29743  *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
29744  *
29745  *     def readLp(self, char *filename, epsilon=10**-5):             # <<<<<<<<<<<<<<
29746  *         return self.CppSelf.readLp(filename, epsilon)
29747  *
29748  */
29749 
29750   /* function exit code */
29751   __pyx_L1_error:;
29752   __Pyx_XDECREF(__pyx_t_2);
29753   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
29754   __pyx_r = NULL;
29755   __pyx_L0:;
29756   __Pyx_XGIVEREF(__pyx_r);
29757   __Pyx_TraceReturn(__pyx_r, 0);
29758   __Pyx_RefNannyFinishContext();
29759   return __pyx_r;
29760 }
29761 
29762 /* "cylp/cy/CyClpSimplex.pyx":1854
29763  *         return self.CppSelf.readLp(filename, epsilon)
29764  *
29765  *     def updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn):             # <<<<<<<<<<<<<<
29766  *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)
29767  *
29768  */
29769 
29770 /* Python wrapper */
29771 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_161updateColumnFT(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
29772 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_160updateColumnFT[] = "CyClpSimplex.updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn)";
29773 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_161updateColumnFT(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29774   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_spare = 0;
29775   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_updatedColumn = 0;
29776   int __pyx_lineno = 0;
29777   const char *__pyx_filename = NULL;
29778   int __pyx_clineno = 0;
29779   PyObject *__pyx_r = 0;
29780   __Pyx_RefNannyDeclarations
29781   __Pyx_RefNannySetupContext("updateColumnFT (wrapper)", 0);
29782   {
29783     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_spare,&__pyx_n_s_updatedColumn,0};
29784     PyObject* values[2] = {0,0};
29785     if (unlikely(__pyx_kwds)) {
29786       Py_ssize_t kw_args;
29787       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
29788       switch (pos_args) {
29789         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29790         CYTHON_FALLTHROUGH;
29791         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29792         CYTHON_FALLTHROUGH;
29793         case  0: break;
29794         default: goto __pyx_L5_argtuple_error;
29795       }
29796       kw_args = PyDict_Size(__pyx_kwds);
29797       switch (pos_args) {
29798         case  0:
29799         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_spare)) != 0)) kw_args--;
29800         else goto __pyx_L5_argtuple_error;
29801         CYTHON_FALLTHROUGH;
29802         case  1:
29803         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_updatedColumn)) != 0)) kw_args--;
29804         else {
29805           __Pyx_RaiseArgtupleInvalid("updateColumnFT", 1, 2, 2, 1); __PYX_ERR(0, 1854, __pyx_L3_error)
29806         }
29807       }
29808       if (unlikely(kw_args > 0)) {
29809         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateColumnFT") < 0)) __PYX_ERR(0, 1854, __pyx_L3_error)
29810       }
29811     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
29812       goto __pyx_L5_argtuple_error;
29813     } else {
29814       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29815       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29816     }
29817     __pyx_v_spare = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[0]);
29818     __pyx_v_updatedColumn = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
29819   }
29820   goto __pyx_L4_argument_unpacking_done;
29821   __pyx_L5_argtuple_error:;
29822   __Pyx_RaiseArgtupleInvalid("updateColumnFT", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1854, __pyx_L3_error)
29823   __pyx_L3_error:;
29824   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.updateColumnFT", __pyx_clineno, __pyx_lineno, __pyx_filename);
29825   __Pyx_RefNannyFinishContext();
29826   return NULL;
29827   __pyx_L4_argument_unpacking_done:;
29828   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_spare), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "spare", 0))) __PYX_ERR(0, 1854, __pyx_L1_error)
29829   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_updatedColumn), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "updatedColumn", 0))) __PYX_ERR(0, 1854, __pyx_L1_error)
29830   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_160updateColumnFT(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_spare, __pyx_v_updatedColumn);
29831 
29832   /* function exit code */
29833   goto __pyx_L0;
29834   __pyx_L1_error:;
29835   __pyx_r = NULL;
29836   __pyx_L0:;
29837   __Pyx_RefNannyFinishContext();
29838   return __pyx_r;
29839 }
29840 
29841 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_160updateColumnFT(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_spare, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_updatedColumn) {
29842   PyObject *__pyx_r = NULL;
29843   __Pyx_TraceDeclarations
29844   __Pyx_RefNannyDeclarations
29845   PyObject *__pyx_t_1 = NULL;
29846   int __pyx_lineno = 0;
29847   const char *__pyx_filename = NULL;
29848   int __pyx_clineno = 0;
29849   __Pyx_RefNannySetupContext("updateColumnFT", 0);
29850   __Pyx_TraceCall("updateColumnFT", __pyx_f[0], 1854, 0, __PYX_ERR(0, 1854, __pyx_L1_error));
29851 
29852   /* "cylp/cy/CyClpSimplex.pyx":1855
29853  *
29854  *     def updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn):
29855  *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)             # <<<<<<<<<<<<<<
29856  *
29857  *     def updateColumnTranspose(self, CyCoinIndexedVector regionSparse1,
29858  */
29859   __Pyx_XDECREF(__pyx_r);
29860   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->updateColumnFT(__pyx_v_spare->CppSelf, __pyx_v_updatedColumn->CppSelf)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1855, __pyx_L1_error)
29861   __Pyx_GOTREF(__pyx_t_1);
29862   __pyx_r = __pyx_t_1;
29863   __pyx_t_1 = 0;
29864   goto __pyx_L0;
29865 
29866   /* "cylp/cy/CyClpSimplex.pyx":1854
29867  *         return self.CppSelf.readLp(filename, epsilon)
29868  *
29869  *     def updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn):             # <<<<<<<<<<<<<<
29870  *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)
29871  *
29872  */
29873 
29874   /* function exit code */
29875   __pyx_L1_error:;
29876   __Pyx_XDECREF(__pyx_t_1);
29877   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.updateColumnFT", __pyx_clineno, __pyx_lineno, __pyx_filename);
29878   __pyx_r = NULL;
29879   __pyx_L0:;
29880   __Pyx_XGIVEREF(__pyx_r);
29881   __Pyx_TraceReturn(__pyx_r, 0);
29882   __Pyx_RefNannyFinishContext();
29883   return __pyx_r;
29884 }
29885 
29886 /* "cylp/cy/CyClpSimplex.pyx":1857
29887  *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)
29888  *
29889  *     def updateColumnTranspose(self, CyCoinIndexedVector regionSparse1,             # <<<<<<<<<<<<<<
29890  *                                     CyCoinIndexedVector regionSparse2):
29891  *         return self.CppSelf.updateColumnTranspose(regionSparse1.CppSelf, regionSparse2.CppSelf)
29892  */
29893 
29894 /* Python wrapper */
29895 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_163updateColumnTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
29896 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_162updateColumnTranspose[] = "CyClpSimplex.updateColumnTranspose(self, CyCoinIndexedVector regionSparse1, CyCoinIndexedVector regionSparse2)";
29897 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_163updateColumnTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29898   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_regionSparse1 = 0;
29899   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_regionSparse2 = 0;
29900   int __pyx_lineno = 0;
29901   const char *__pyx_filename = NULL;
29902   int __pyx_clineno = 0;
29903   PyObject *__pyx_r = 0;
29904   __Pyx_RefNannyDeclarations
29905   __Pyx_RefNannySetupContext("updateColumnTranspose (wrapper)", 0);
29906   {
29907     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_regionSparse1,&__pyx_n_s_regionSparse2,0};
29908     PyObject* values[2] = {0,0};
29909     if (unlikely(__pyx_kwds)) {
29910       Py_ssize_t kw_args;
29911       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
29912       switch (pos_args) {
29913         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29914         CYTHON_FALLTHROUGH;
29915         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29916         CYTHON_FALLTHROUGH;
29917         case  0: break;
29918         default: goto __pyx_L5_argtuple_error;
29919       }
29920       kw_args = PyDict_Size(__pyx_kwds);
29921       switch (pos_args) {
29922         case  0:
29923         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_regionSparse1)) != 0)) kw_args--;
29924         else goto __pyx_L5_argtuple_error;
29925         CYTHON_FALLTHROUGH;
29926         case  1:
29927         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_regionSparse2)) != 0)) kw_args--;
29928         else {
29929           __Pyx_RaiseArgtupleInvalid("updateColumnTranspose", 1, 2, 2, 1); __PYX_ERR(0, 1857, __pyx_L3_error)
29930         }
29931       }
29932       if (unlikely(kw_args > 0)) {
29933         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateColumnTranspose") < 0)) __PYX_ERR(0, 1857, __pyx_L3_error)
29934       }
29935     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
29936       goto __pyx_L5_argtuple_error;
29937     } else {
29938       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29939       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29940     }
29941     __pyx_v_regionSparse1 = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[0]);
29942     __pyx_v_regionSparse2 = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
29943   }
29944   goto __pyx_L4_argument_unpacking_done;
29945   __pyx_L5_argtuple_error:;
29946   __Pyx_RaiseArgtupleInvalid("updateColumnTranspose", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1857, __pyx_L3_error)
29947   __pyx_L3_error:;
29948   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.updateColumnTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename);
29949   __Pyx_RefNannyFinishContext();
29950   return NULL;
29951   __pyx_L4_argument_unpacking_done:;
29952   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_regionSparse1), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "regionSparse1", 0))) __PYX_ERR(0, 1857, __pyx_L1_error)
29953   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_regionSparse2), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "regionSparse2", 0))) __PYX_ERR(0, 1858, __pyx_L1_error)
29954   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_162updateColumnTranspose(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_regionSparse1, __pyx_v_regionSparse2);
29955 
29956   /* function exit code */
29957   goto __pyx_L0;
29958   __pyx_L1_error:;
29959   __pyx_r = NULL;
29960   __pyx_L0:;
29961   __Pyx_RefNannyFinishContext();
29962   return __pyx_r;
29963 }
29964 
29965 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_162updateColumnTranspose(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_regionSparse1, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_regionSparse2) {
29966   PyObject *__pyx_r = NULL;
29967   __Pyx_TraceDeclarations
29968   __Pyx_RefNannyDeclarations
29969   PyObject *__pyx_t_1 = NULL;
29970   int __pyx_lineno = 0;
29971   const char *__pyx_filename = NULL;
29972   int __pyx_clineno = 0;
29973   __Pyx_RefNannySetupContext("updateColumnTranspose", 0);
29974   __Pyx_TraceCall("updateColumnTranspose", __pyx_f[0], 1857, 0, __PYX_ERR(0, 1857, __pyx_L1_error));
29975 
29976   /* "cylp/cy/CyClpSimplex.pyx":1859
29977  *     def updateColumnTranspose(self, CyCoinIndexedVector regionSparse1,
29978  *                                     CyCoinIndexedVector regionSparse2):
29979  *         return self.CppSelf.updateColumnTranspose(regionSparse1.CppSelf, regionSparse2.CppSelf)             # <<<<<<<<<<<<<<
29980  *
29981  *     #############################################
29982  */
29983   __Pyx_XDECREF(__pyx_r);
29984   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->updateColumnTranspose(__pyx_v_regionSparse1->CppSelf, __pyx_v_regionSparse2->CppSelf)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1859, __pyx_L1_error)
29985   __Pyx_GOTREF(__pyx_t_1);
29986   __pyx_r = __pyx_t_1;
29987   __pyx_t_1 = 0;
29988   goto __pyx_L0;
29989 
29990   /* "cylp/cy/CyClpSimplex.pyx":1857
29991  *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)
29992  *
29993  *     def updateColumnTranspose(self, CyCoinIndexedVector regionSparse1,             # <<<<<<<<<<<<<<
29994  *                                     CyCoinIndexedVector regionSparse2):
29995  *         return self.CppSelf.updateColumnTranspose(regionSparse1.CppSelf, regionSparse2.CppSelf)
29996  */
29997 
29998   /* function exit code */
29999   __pyx_L1_error:;
30000   __Pyx_XDECREF(__pyx_t_1);
30001   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.updateColumnTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename);
30002   __pyx_r = NULL;
30003   __pyx_L0:;
30004   __Pyx_XGIVEREF(__pyx_r);
30005   __Pyx_TraceReturn(__pyx_r, 0);
30006   __Pyx_RefNannyFinishContext();
30007   return __pyx_r;
30008 }
30009 
30010 /* "cylp/cy/CyClpSimplex.pyx":1865
30011  *     #############################################
30012  *
30013  *     def loadFromCyLPModel(self, cyLPModel):             # <<<<<<<<<<<<<<
30014  *         '''
30015  *         Set the coefficient matrix, constraint bounds, and variable
30016  */
30017 
30018 /* Python wrapper */
30019 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_165loadFromCyLPModel(PyObject *__pyx_v_self, PyObject *__pyx_v_cyLPModel); /*proto*/
30020 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_164loadFromCyLPModel[] = "CyClpSimplex.loadFromCyLPModel(self, cyLPModel)\n\n        Set the coefficient matrix, constraint bounds, and variable\n        bounds based on the data in *cyLPModel* which should be and object\n        of *CyLPModel* class.\n\n        This method is usually called from CyClpSimplex's constructor.\n        But in a case that the CyClpSimplex instance is created before\n        we have the CyLPModel we use this method to load the LP,\n        for example:\n\n        >>> import numpy as np\n        >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getModelExample\n        >>>\n        >>> s = CyClpSimplex()\n        >>> model = getModelExample()\n        >>> s.loadFromCyLPModel(model)\n        >>>\n        >>> s.primal()\n        'optimal'\n        >>> sol_x = s.primalVariableSolution['x']\n        >>> (abs(sol_x -\n        ...     np.array([0.2, 2, 1.1]) ) <= 10**-6).all()\n        True\n\n        ";
30021 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_165loadFromCyLPModel(PyObject *__pyx_v_self, PyObject *__pyx_v_cyLPModel) {
30022   PyObject *__pyx_r = 0;
30023   __Pyx_RefNannyDeclarations
30024   __Pyx_RefNannySetupContext("loadFromCyLPModel (wrapper)", 0);
30025   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_164loadFromCyLPModel(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_cyLPModel));
30026 
30027   /* function exit code */
30028   __Pyx_RefNannyFinishContext();
30029   return __pyx_r;
30030 }
30031 
30032 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_164loadFromCyLPModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyLPModel) {
30033   PyObject *__pyx_v_mat = NULL;
30034   PyObject *__pyx_v_constraintLower = NULL;
30035   PyObject *__pyx_v_constraintUpper = NULL;
30036   PyObject *__pyx_v_variableLower = NULL;
30037   PyObject *__pyx_v_variableUpper = NULL;
30038   Py_ssize_t __pyx_v_n;
30039   Py_ssize_t __pyx_v_m;
30040   struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_coinMat = NULL;
30041   PyObject *__pyx_v_i = NULL;
30042   PyObject *__pyx_v_variables = NULL;
30043   PyObject *__pyx_v_curVarInd = NULL;
30044   PyObject *__pyx_v_var = NULL;
30045   PyObject *__pyx_r = NULL;
30046   __Pyx_TraceDeclarations
30047   __Pyx_RefNannyDeclarations
30048   PyObject *__pyx_t_1 = NULL;
30049   PyObject *__pyx_t_2 = NULL;
30050   PyObject *__pyx_t_3 = NULL;
30051   PyObject *__pyx_t_4 = NULL;
30052   PyObject *__pyx_t_5 = NULL;
30053   PyObject *__pyx_t_6 = NULL;
30054   PyObject *__pyx_t_7 = NULL;
30055   PyObject *(*__pyx_t_8)(PyObject *);
30056   Py_ssize_t __pyx_t_9;
30057   int __pyx_t_10;
30058   int __pyx_t_11;
30059   int __pyx_t_12;
30060   PyObject *__pyx_t_13 = NULL;
30061   PyObject *(*__pyx_t_14)(PyObject *);
30062   Py_ssize_t __pyx_t_15;
30063   PyObject *(*__pyx_t_16)(PyObject *);
30064   int __pyx_lineno = 0;
30065   const char *__pyx_filename = NULL;
30066   int __pyx_clineno = 0;
30067   __Pyx_RefNannySetupContext("loadFromCyLPModel", 0);
30068   __Pyx_TraceCall("loadFromCyLPModel", __pyx_f[0], 1865, 0, __PYX_ERR(0, 1865, __pyx_L1_error));
30069 
30070   /* "cylp/cy/CyClpSimplex.pyx":1891
30071  *
30072  *         '''
30073  *         self.cyLPModel = cyLPModel             # <<<<<<<<<<<<<<
30074  *         (mat, constraintLower, constraintUpper,
30075  *                     variableLower, variableUpper) = cyLPModel.makeMatrices()
30076  */
30077   __Pyx_INCREF(__pyx_v_cyLPModel);
30078   __Pyx_GIVEREF(__pyx_v_cyLPModel);
30079   __Pyx_GOTREF(__pyx_v_self->cyLPModel);
30080   __Pyx_DECREF(__pyx_v_self->cyLPModel);
30081   __pyx_v_self->cyLPModel = __pyx_v_cyLPModel;
30082 
30083   /* "cylp/cy/CyClpSimplex.pyx":1893
30084  *         self.cyLPModel = cyLPModel
30085  *         (mat, constraintLower, constraintUpper,
30086  *                     variableLower, variableUpper) = cyLPModel.makeMatrices()             # <<<<<<<<<<<<<<
30087  *
30088  *         n = len(variableLower)
30089  */
30090   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cyLPModel, __pyx_n_s_makeMatrices); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1893, __pyx_L1_error)
30091   __Pyx_GOTREF(__pyx_t_2);
30092   __pyx_t_3 = NULL;
30093   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
30094     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
30095     if (likely(__pyx_t_3)) {
30096       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
30097       __Pyx_INCREF(__pyx_t_3);
30098       __Pyx_INCREF(function);
30099       __Pyx_DECREF_SET(__pyx_t_2, function);
30100     }
30101   }
30102   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
30103   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
30104   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1893, __pyx_L1_error)
30105   __Pyx_GOTREF(__pyx_t_1);
30106   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30107   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
30108     PyObject* sequence = __pyx_t_1;
30109     Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
30110     if (unlikely(size != 5)) {
30111       if (size > 5) __Pyx_RaiseTooManyValuesError(5);
30112       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
30113       __PYX_ERR(0, 1892, __pyx_L1_error)
30114     }
30115     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
30116     if (likely(PyTuple_CheckExact(sequence))) {
30117       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
30118       __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
30119       __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2);
30120       __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3);
30121       __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4);
30122     } else {
30123       __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
30124       __pyx_t_3 = PyList_GET_ITEM(sequence, 1);
30125       __pyx_t_4 = PyList_GET_ITEM(sequence, 2);
30126       __pyx_t_5 = PyList_GET_ITEM(sequence, 3);
30127       __pyx_t_6 = PyList_GET_ITEM(sequence, 4);
30128     }
30129     __Pyx_INCREF(__pyx_t_2);
30130     __Pyx_INCREF(__pyx_t_3);
30131     __Pyx_INCREF(__pyx_t_4);
30132     __Pyx_INCREF(__pyx_t_5);
30133     __Pyx_INCREF(__pyx_t_6);
30134     #else
30135     {
30136       Py_ssize_t i;
30137       PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6};
30138       for (i=0; i < 5; i++) {
30139         PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1892, __pyx_L1_error)
30140         __Pyx_GOTREF(item);
30141         *(temps[i]) = item;
30142       }
30143     }
30144     #endif
30145     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30146   } else {
30147     Py_ssize_t index = -1;
30148     PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6};
30149     __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1892, __pyx_L1_error)
30150     __Pyx_GOTREF(__pyx_t_7);
30151     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30152     __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
30153     for (index=0; index < 5; index++) {
30154       PyObject* item = __pyx_t_8(__pyx_t_7); if (unlikely(!item)) goto __pyx_L3_unpacking_failed;
30155       __Pyx_GOTREF(item);
30156       *(temps[index]) = item;
30157     }
30158     if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 5) < 0) __PYX_ERR(0, 1892, __pyx_L1_error)
30159     __pyx_t_8 = NULL;
30160     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30161     goto __pyx_L4_unpacking_done;
30162     __pyx_L3_unpacking_failed:;
30163     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30164     __pyx_t_8 = NULL;
30165     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
30166     __PYX_ERR(0, 1892, __pyx_L1_error)
30167     __pyx_L4_unpacking_done:;
30168   }
30169 
30170   /* "cylp/cy/CyClpSimplex.pyx":1892
30171  *         '''
30172  *         self.cyLPModel = cyLPModel
30173  *         (mat, constraintLower, constraintUpper,             # <<<<<<<<<<<<<<
30174  *                     variableLower, variableUpper) = cyLPModel.makeMatrices()
30175  *
30176  */
30177   __pyx_v_mat = __pyx_t_2;
30178   __pyx_t_2 = 0;
30179   __pyx_v_constraintLower = __pyx_t_3;
30180   __pyx_t_3 = 0;
30181   __pyx_v_constraintUpper = __pyx_t_4;
30182   __pyx_t_4 = 0;
30183   __pyx_v_variableLower = __pyx_t_5;
30184   __pyx_t_5 = 0;
30185   __pyx_v_variableUpper = __pyx_t_6;
30186   __pyx_t_6 = 0;
30187 
30188   /* "cylp/cy/CyClpSimplex.pyx":1895
30189  *                     variableLower, variableUpper) = cyLPModel.makeMatrices()
30190  *
30191  *         n = len(variableLower)             # <<<<<<<<<<<<<<
30192  *         m = len(constraintLower)
30193  *         if n == 0:# or m == 0:
30194  */
30195   __pyx_t_9 = PyObject_Length(__pyx_v_variableLower); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1895, __pyx_L1_error)
30196   __pyx_v_n = __pyx_t_9;
30197 
30198   /* "cylp/cy/CyClpSimplex.pyx":1896
30199  *
30200  *         n = len(variableLower)
30201  *         m = len(constraintLower)             # <<<<<<<<<<<<<<
30202  *         if n == 0:# or m == 0:
30203  *             return
30204  */
30205   __pyx_t_9 = PyObject_Length(__pyx_v_constraintLower); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1896, __pyx_L1_error)
30206   __pyx_v_m = __pyx_t_9;
30207 
30208   /* "cylp/cy/CyClpSimplex.pyx":1897
30209  *         n = len(variableLower)
30210  *         m = len(constraintLower)
30211  *         if n == 0:# or m == 0:             # <<<<<<<<<<<<<<
30212  *             return
30213  *
30214  */
30215   __pyx_t_10 = ((__pyx_v_n == 0) != 0);
30216   if (__pyx_t_10) {
30217 
30218     /* "cylp/cy/CyClpSimplex.pyx":1898
30219  *         m = len(constraintLower)
30220  *         if n == 0:# or m == 0:
30221  *             return             # <<<<<<<<<<<<<<
30222  *
30223  *         self.resize(m, n)
30224  */
30225     __Pyx_XDECREF(__pyx_r);
30226     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
30227     goto __pyx_L0;
30228 
30229     /* "cylp/cy/CyClpSimplex.pyx":1897
30230  *         n = len(variableLower)
30231  *         m = len(constraintLower)
30232  *         if n == 0:# or m == 0:             # <<<<<<<<<<<<<<
30233  *             return
30234  *
30235  */
30236   }
30237 
30238   /* "cylp/cy/CyClpSimplex.pyx":1900
30239  *             return
30240  *
30241  *         self.resize(m, n)             # <<<<<<<<<<<<<<
30242  *         if mat is not None:
30243  *             if not isinstance(mat, sparse.coo_matrix):
30244  */
30245   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1900, __pyx_L1_error)
30246   __Pyx_GOTREF(__pyx_t_6);
30247   __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_m); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1900, __pyx_L1_error)
30248   __Pyx_GOTREF(__pyx_t_5);
30249   __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1900, __pyx_L1_error)
30250   __Pyx_GOTREF(__pyx_t_4);
30251   __pyx_t_3 = NULL;
30252   __pyx_t_11 = 0;
30253   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
30254     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6);
30255     if (likely(__pyx_t_3)) {
30256       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
30257       __Pyx_INCREF(__pyx_t_3);
30258       __Pyx_INCREF(function);
30259       __Pyx_DECREF_SET(__pyx_t_6, function);
30260       __pyx_t_11 = 1;
30261     }
30262   }
30263   #if CYTHON_FAST_PYCALL
30264   if (PyFunction_Check(__pyx_t_6)) {
30265     PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_4};
30266     __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1900, __pyx_L1_error)
30267     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
30268     __Pyx_GOTREF(__pyx_t_1);
30269     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
30270     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30271   } else
30272   #endif
30273   #if CYTHON_FAST_PYCCALL
30274   if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
30275     PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_4};
30276     __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1900, __pyx_L1_error)
30277     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
30278     __Pyx_GOTREF(__pyx_t_1);
30279     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
30280     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30281   } else
30282   #endif
30283   {
30284     __pyx_t_2 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1900, __pyx_L1_error)
30285     __Pyx_GOTREF(__pyx_t_2);
30286     if (__pyx_t_3) {
30287       __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
30288     }
30289     __Pyx_GIVEREF(__pyx_t_5);
30290     PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_11, __pyx_t_5);
30291     __Pyx_GIVEREF(__pyx_t_4);
30292     PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_11, __pyx_t_4);
30293     __pyx_t_5 = 0;
30294     __pyx_t_4 = 0;
30295     __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1900, __pyx_L1_error)
30296     __Pyx_GOTREF(__pyx_t_1);
30297     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30298   }
30299   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30300   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30301 
30302   /* "cylp/cy/CyClpSimplex.pyx":1901
30303  *
30304  *         self.resize(m, n)
30305  *         if mat is not None:             # <<<<<<<<<<<<<<
30306  *             if not isinstance(mat, sparse.coo_matrix):
30307  *                 mat = mat.tocoo()
30308  */
30309   __pyx_t_10 = (__pyx_v_mat != Py_None);
30310   __pyx_t_12 = (__pyx_t_10 != 0);
30311   if (__pyx_t_12) {
30312 
30313     /* "cylp/cy/CyClpSimplex.pyx":1902
30314  *         self.resize(m, n)
30315  *         if mat is not None:
30316  *             if not isinstance(mat, sparse.coo_matrix):             # <<<<<<<<<<<<<<
30317  *                 mat = mat.tocoo()
30318  *
30319  */
30320     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sparse); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1902, __pyx_L1_error)
30321     __Pyx_GOTREF(__pyx_t_1);
30322     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_coo_matrix); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1902, __pyx_L1_error)
30323     __Pyx_GOTREF(__pyx_t_6);
30324     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30325     __pyx_t_12 = PyObject_IsInstance(__pyx_v_mat, __pyx_t_6); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 1902, __pyx_L1_error)
30326     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30327     __pyx_t_10 = ((!(__pyx_t_12 != 0)) != 0);
30328     if (__pyx_t_10) {
30329 
30330       /* "cylp/cy/CyClpSimplex.pyx":1903
30331  *         if mat is not None:
30332  *             if not isinstance(mat, sparse.coo_matrix):
30333  *                 mat = mat.tocoo()             # <<<<<<<<<<<<<<
30334  *
30335  *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),
30336  */
30337       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_tocoo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1903, __pyx_L1_error)
30338       __Pyx_GOTREF(__pyx_t_1);
30339       __pyx_t_2 = NULL;
30340       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
30341         __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
30342         if (likely(__pyx_t_2)) {
30343           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
30344           __Pyx_INCREF(__pyx_t_2);
30345           __Pyx_INCREF(function);
30346           __Pyx_DECREF_SET(__pyx_t_1, function);
30347         }
30348       }
30349       __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
30350       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
30351       if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1903, __pyx_L1_error)
30352       __Pyx_GOTREF(__pyx_t_6);
30353       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30354       __Pyx_DECREF_SET(__pyx_v_mat, __pyx_t_6);
30355       __pyx_t_6 = 0;
30356 
30357       /* "cylp/cy/CyClpSimplex.pyx":1902
30358  *         self.resize(m, n)
30359  *         if mat is not None:
30360  *             if not isinstance(mat, sparse.coo_matrix):             # <<<<<<<<<<<<<<
30361  *                 mat = mat.tocoo()
30362  *
30363  */
30364     }
30365 
30366     /* "cylp/cy/CyClpSimplex.pyx":1905
30367  *                 mat = mat.tocoo()
30368  *
30369  *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),             # <<<<<<<<<<<<<<
30370  *                                         np.array(mat.col, np.int32),
30371  *                                         np.array(mat.data, np.double))
30372  */
30373     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1905, __pyx_L1_error)
30374     __Pyx_GOTREF(__pyx_t_1);
30375     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1905, __pyx_L1_error)
30376     __Pyx_GOTREF(__pyx_t_2);
30377     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30378     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1905, __pyx_L1_error)
30379     __Pyx_GOTREF(__pyx_t_1);
30380     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1905, __pyx_L1_error)
30381     __Pyx_GOTREF(__pyx_t_4);
30382     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1905, __pyx_L1_error)
30383     __Pyx_GOTREF(__pyx_t_5);
30384     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30385     __pyx_t_4 = NULL;
30386     __pyx_t_11 = 0;
30387     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
30388       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
30389       if (likely(__pyx_t_4)) {
30390         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
30391         __Pyx_INCREF(__pyx_t_4);
30392         __Pyx_INCREF(function);
30393         __Pyx_DECREF_SET(__pyx_t_2, function);
30394         __pyx_t_11 = 1;
30395       }
30396     }
30397     #if CYTHON_FAST_PYCALL
30398     if (PyFunction_Check(__pyx_t_2)) {
30399       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_t_5};
30400       __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1905, __pyx_L1_error)
30401       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
30402       __Pyx_GOTREF(__pyx_t_6);
30403       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30404       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
30405     } else
30406     #endif
30407     #if CYTHON_FAST_PYCCALL
30408     if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
30409       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_t_5};
30410       __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1905, __pyx_L1_error)
30411       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
30412       __Pyx_GOTREF(__pyx_t_6);
30413       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30414       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
30415     } else
30416     #endif
30417     {
30418       __pyx_t_3 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1905, __pyx_L1_error)
30419       __Pyx_GOTREF(__pyx_t_3);
30420       if (__pyx_t_4) {
30421         __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
30422       }
30423       __Pyx_GIVEREF(__pyx_t_1);
30424       PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_11, __pyx_t_1);
30425       __Pyx_GIVEREF(__pyx_t_5);
30426       PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_11, __pyx_t_5);
30427       __pyx_t_1 = 0;
30428       __pyx_t_5 = 0;
30429       __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1905, __pyx_L1_error)
30430       __Pyx_GOTREF(__pyx_t_6);
30431       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
30432     }
30433     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30434 
30435     /* "cylp/cy/CyClpSimplex.pyx":1906
30436  *
30437  *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),
30438  *                                         np.array(mat.col, np.int32),             # <<<<<<<<<<<<<<
30439  *                                         np.array(mat.data, np.double))
30440  *         else:
30441  */
30442     __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1906, __pyx_L1_error)
30443     __Pyx_GOTREF(__pyx_t_3);
30444     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1906, __pyx_L1_error)
30445     __Pyx_GOTREF(__pyx_t_5);
30446     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
30447     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1906, __pyx_L1_error)
30448     __Pyx_GOTREF(__pyx_t_3);
30449     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1906, __pyx_L1_error)
30450     __Pyx_GOTREF(__pyx_t_1);
30451     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1906, __pyx_L1_error)
30452     __Pyx_GOTREF(__pyx_t_4);
30453     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30454     __pyx_t_1 = NULL;
30455     __pyx_t_11 = 0;
30456     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
30457       __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
30458       if (likely(__pyx_t_1)) {
30459         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
30460         __Pyx_INCREF(__pyx_t_1);
30461         __Pyx_INCREF(function);
30462         __Pyx_DECREF_SET(__pyx_t_5, function);
30463         __pyx_t_11 = 1;
30464       }
30465     }
30466     #if CYTHON_FAST_PYCALL
30467     if (PyFunction_Check(__pyx_t_5)) {
30468       PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_3, __pyx_t_4};
30469       __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1906, __pyx_L1_error)
30470       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
30471       __Pyx_GOTREF(__pyx_t_2);
30472       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
30473       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30474     } else
30475     #endif
30476     #if CYTHON_FAST_PYCCALL
30477     if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
30478       PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_3, __pyx_t_4};
30479       __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1906, __pyx_L1_error)
30480       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
30481       __Pyx_GOTREF(__pyx_t_2);
30482       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
30483       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30484     } else
30485     #endif
30486     {
30487       __pyx_t_7 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1906, __pyx_L1_error)
30488       __Pyx_GOTREF(__pyx_t_7);
30489       if (__pyx_t_1) {
30490         __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL;
30491       }
30492       __Pyx_GIVEREF(__pyx_t_3);
30493       PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_11, __pyx_t_3);
30494       __Pyx_GIVEREF(__pyx_t_4);
30495       PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_11, __pyx_t_4);
30496       __pyx_t_3 = 0;
30497       __pyx_t_4 = 0;
30498       __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1906, __pyx_L1_error)
30499       __Pyx_GOTREF(__pyx_t_2);
30500       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30501     }
30502     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
30503 
30504     /* "cylp/cy/CyClpSimplex.pyx":1907
30505  *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),
30506  *                                         np.array(mat.col, np.int32),
30507  *                                         np.array(mat.data, np.double))             # <<<<<<<<<<<<<<
30508  *         else:
30509  *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),
30510  */
30511     __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1907, __pyx_L1_error)
30512     __Pyx_GOTREF(__pyx_t_7);
30513     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1907, __pyx_L1_error)
30514     __Pyx_GOTREF(__pyx_t_4);
30515     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30516     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_mat, __pyx_n_s_data); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1907, __pyx_L1_error)
30517     __Pyx_GOTREF(__pyx_t_7);
30518     __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1907, __pyx_L1_error)
30519     __Pyx_GOTREF(__pyx_t_3);
30520     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1907, __pyx_L1_error)
30521     __Pyx_GOTREF(__pyx_t_1);
30522     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
30523     __pyx_t_3 = NULL;
30524     __pyx_t_11 = 0;
30525     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
30526       __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
30527       if (likely(__pyx_t_3)) {
30528         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
30529         __Pyx_INCREF(__pyx_t_3);
30530         __Pyx_INCREF(function);
30531         __Pyx_DECREF_SET(__pyx_t_4, function);
30532         __pyx_t_11 = 1;
30533       }
30534     }
30535     #if CYTHON_FAST_PYCALL
30536     if (PyFunction_Check(__pyx_t_4)) {
30537       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_7, __pyx_t_1};
30538       __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1907, __pyx_L1_error)
30539       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
30540       __Pyx_GOTREF(__pyx_t_5);
30541       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30542       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30543     } else
30544     #endif
30545     #if CYTHON_FAST_PYCCALL
30546     if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
30547       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_7, __pyx_t_1};
30548       __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1907, __pyx_L1_error)
30549       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
30550       __Pyx_GOTREF(__pyx_t_5);
30551       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30552       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30553     } else
30554     #endif
30555     {
30556       __pyx_t_13 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1907, __pyx_L1_error)
30557       __Pyx_GOTREF(__pyx_t_13);
30558       if (__pyx_t_3) {
30559         __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_3); __pyx_t_3 = NULL;
30560       }
30561       __Pyx_GIVEREF(__pyx_t_7);
30562       PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_11, __pyx_t_7);
30563       __Pyx_GIVEREF(__pyx_t_1);
30564       PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_11, __pyx_t_1);
30565       __pyx_t_7 = 0;
30566       __pyx_t_1 = 0;
30567       __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1907, __pyx_L1_error)
30568       __Pyx_GOTREF(__pyx_t_5);
30569       __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
30570     }
30571     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30572 
30573     /* "cylp/cy/CyClpSimplex.pyx":1905
30574  *                 mat = mat.tocoo()
30575  *
30576  *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),             # <<<<<<<<<<<<<<
30577  *                                         np.array(mat.col, np.int32),
30578  *                                         np.array(mat.data, np.double))
30579  */
30580     __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1905, __pyx_L1_error)
30581     __Pyx_GOTREF(__pyx_t_4);
30582     __Pyx_INCREF(Py_True);
30583     __Pyx_GIVEREF(Py_True);
30584     PyTuple_SET_ITEM(__pyx_t_4, 0, Py_True);
30585     __Pyx_GIVEREF(__pyx_t_6);
30586     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6);
30587     __Pyx_GIVEREF(__pyx_t_2);
30588     PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2);
30589     __Pyx_GIVEREF(__pyx_t_5);
30590     PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_5);
30591     __pyx_t_6 = 0;
30592     __pyx_t_2 = 0;
30593     __pyx_t_5 = 0;
30594     __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1905, __pyx_L1_error)
30595     __Pyx_GOTREF(__pyx_t_5);
30596     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30597     __pyx_v_coinMat = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)__pyx_t_5);
30598     __pyx_t_5 = 0;
30599 
30600     /* "cylp/cy/CyClpSimplex.pyx":1901
30601  *
30602  *         self.resize(m, n)
30603  *         if mat is not None:             # <<<<<<<<<<<<<<
30604  *             if not isinstance(mat, sparse.coo_matrix):
30605  *                 mat = mat.tocoo()
30606  */
30607     goto __pyx_L6;
30608   }
30609 
30610   /* "cylp/cy/CyClpSimplex.pyx":1909
30611  *                                         np.array(mat.data, np.double))
30612  *         else:
30613  *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),             # <<<<<<<<<<<<<<
30614  *                                         np.array([], np.int32),
30615  *                                         np.array([], np.double))
30616  */
30617   /*else*/ {
30618     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1909, __pyx_L1_error)
30619     __Pyx_GOTREF(__pyx_t_4);
30620     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1909, __pyx_L1_error)
30621     __Pyx_GOTREF(__pyx_t_2);
30622     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30623     __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1909, __pyx_L1_error)
30624     __Pyx_GOTREF(__pyx_t_4);
30625     __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1909, __pyx_L1_error)
30626     __Pyx_GOTREF(__pyx_t_6);
30627     __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int32); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1909, __pyx_L1_error)
30628     __Pyx_GOTREF(__pyx_t_13);
30629     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30630     __pyx_t_6 = NULL;
30631     __pyx_t_11 = 0;
30632     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
30633       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
30634       if (likely(__pyx_t_6)) {
30635         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
30636         __Pyx_INCREF(__pyx_t_6);
30637         __Pyx_INCREF(function);
30638         __Pyx_DECREF_SET(__pyx_t_2, function);
30639         __pyx_t_11 = 1;
30640       }
30641     }
30642     #if CYTHON_FAST_PYCALL
30643     if (PyFunction_Check(__pyx_t_2)) {
30644       PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_13};
30645       __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1909, __pyx_L1_error)
30646       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
30647       __Pyx_GOTREF(__pyx_t_5);
30648       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30649       __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
30650     } else
30651     #endif
30652     #if CYTHON_FAST_PYCCALL
30653     if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
30654       PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_13};
30655       __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1909, __pyx_L1_error)
30656       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
30657       __Pyx_GOTREF(__pyx_t_5);
30658       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30659       __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
30660     } else
30661     #endif
30662     {
30663       __pyx_t_1 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1909, __pyx_L1_error)
30664       __Pyx_GOTREF(__pyx_t_1);
30665       if (__pyx_t_6) {
30666         __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL;
30667       }
30668       __Pyx_GIVEREF(__pyx_t_4);
30669       PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_11, __pyx_t_4);
30670       __Pyx_GIVEREF(__pyx_t_13);
30671       PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_11, __pyx_t_13);
30672       __pyx_t_4 = 0;
30673       __pyx_t_13 = 0;
30674       __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1909, __pyx_L1_error)
30675       __Pyx_GOTREF(__pyx_t_5);
30676       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30677     }
30678     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30679 
30680     /* "cylp/cy/CyClpSimplex.pyx":1910
30681  *         else:
30682  *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),
30683  *                                         np.array([], np.int32),             # <<<<<<<<<<<<<<
30684  *                                         np.array([], np.double))
30685  *         self.replaceMatrix(coinMat, True)
30686  */
30687     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1910, __pyx_L1_error)
30688     __Pyx_GOTREF(__pyx_t_1);
30689     __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1910, __pyx_L1_error)
30690     __Pyx_GOTREF(__pyx_t_13);
30691     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30692     __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1910, __pyx_L1_error)
30693     __Pyx_GOTREF(__pyx_t_1);
30694     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1910, __pyx_L1_error)
30695     __Pyx_GOTREF(__pyx_t_4);
30696     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int32); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1910, __pyx_L1_error)
30697     __Pyx_GOTREF(__pyx_t_6);
30698     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30699     __pyx_t_4 = NULL;
30700     __pyx_t_11 = 0;
30701     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
30702       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
30703       if (likely(__pyx_t_4)) {
30704         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
30705         __Pyx_INCREF(__pyx_t_4);
30706         __Pyx_INCREF(function);
30707         __Pyx_DECREF_SET(__pyx_t_13, function);
30708         __pyx_t_11 = 1;
30709       }
30710     }
30711     #if CYTHON_FAST_PYCALL
30712     if (PyFunction_Check(__pyx_t_13)) {
30713       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_t_6};
30714       __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1910, __pyx_L1_error)
30715       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
30716       __Pyx_GOTREF(__pyx_t_2);
30717       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30718       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30719     } else
30720     #endif
30721     #if CYTHON_FAST_PYCCALL
30722     if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
30723       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_t_6};
30724       __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1910, __pyx_L1_error)
30725       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
30726       __Pyx_GOTREF(__pyx_t_2);
30727       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30728       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30729     } else
30730     #endif
30731     {
30732       __pyx_t_7 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1910, __pyx_L1_error)
30733       __Pyx_GOTREF(__pyx_t_7);
30734       if (__pyx_t_4) {
30735         __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
30736       }
30737       __Pyx_GIVEREF(__pyx_t_1);
30738       PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_11, __pyx_t_1);
30739       __Pyx_GIVEREF(__pyx_t_6);
30740       PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_11, __pyx_t_6);
30741       __pyx_t_1 = 0;
30742       __pyx_t_6 = 0;
30743       __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1910, __pyx_L1_error)
30744       __Pyx_GOTREF(__pyx_t_2);
30745       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30746     }
30747     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
30748 
30749     /* "cylp/cy/CyClpSimplex.pyx":1911
30750  *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),
30751  *                                         np.array([], np.int32),
30752  *                                         np.array([], np.double))             # <<<<<<<<<<<<<<
30753  *         self.replaceMatrix(coinMat, True)
30754  *
30755  */
30756     __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1911, __pyx_L1_error)
30757     __Pyx_GOTREF(__pyx_t_7);
30758     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1911, __pyx_L1_error)
30759     __Pyx_GOTREF(__pyx_t_6);
30760     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30761     __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1911, __pyx_L1_error)
30762     __Pyx_GOTREF(__pyx_t_7);
30763     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1911, __pyx_L1_error)
30764     __Pyx_GOTREF(__pyx_t_1);
30765     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_double); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1911, __pyx_L1_error)
30766     __Pyx_GOTREF(__pyx_t_4);
30767     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30768     __pyx_t_1 = NULL;
30769     __pyx_t_11 = 0;
30770     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
30771       __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6);
30772       if (likely(__pyx_t_1)) {
30773         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
30774         __Pyx_INCREF(__pyx_t_1);
30775         __Pyx_INCREF(function);
30776         __Pyx_DECREF_SET(__pyx_t_6, function);
30777         __pyx_t_11 = 1;
30778       }
30779     }
30780     #if CYTHON_FAST_PYCALL
30781     if (PyFunction_Check(__pyx_t_6)) {
30782       PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_7, __pyx_t_4};
30783       __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1911, __pyx_L1_error)
30784       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
30785       __Pyx_GOTREF(__pyx_t_13);
30786       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30787       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30788     } else
30789     #endif
30790     #if CYTHON_FAST_PYCCALL
30791     if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
30792       PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_7, __pyx_t_4};
30793       __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1911, __pyx_L1_error)
30794       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
30795       __Pyx_GOTREF(__pyx_t_13);
30796       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30797       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30798     } else
30799     #endif
30800     {
30801       __pyx_t_3 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1911, __pyx_L1_error)
30802       __Pyx_GOTREF(__pyx_t_3);
30803       if (__pyx_t_1) {
30804         __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL;
30805       }
30806       __Pyx_GIVEREF(__pyx_t_7);
30807       PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_11, __pyx_t_7);
30808       __Pyx_GIVEREF(__pyx_t_4);
30809       PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_11, __pyx_t_4);
30810       __pyx_t_7 = 0;
30811       __pyx_t_4 = 0;
30812       __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1911, __pyx_L1_error)
30813       __Pyx_GOTREF(__pyx_t_13);
30814       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
30815     }
30816     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30817 
30818     /* "cylp/cy/CyClpSimplex.pyx":1909
30819  *                                         np.array(mat.data, np.double))
30820  *         else:
30821  *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),             # <<<<<<<<<<<<<<
30822  *                                         np.array([], np.int32),
30823  *                                         np.array([], np.double))
30824  */
30825     __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1909, __pyx_L1_error)
30826     __Pyx_GOTREF(__pyx_t_6);
30827     __Pyx_INCREF(Py_True);
30828     __Pyx_GIVEREF(Py_True);
30829     PyTuple_SET_ITEM(__pyx_t_6, 0, Py_True);
30830     __Pyx_GIVEREF(__pyx_t_5);
30831     PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
30832     __Pyx_GIVEREF(__pyx_t_2);
30833     PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2);
30834     __Pyx_GIVEREF(__pyx_t_13);
30835     PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_13);
30836     __pyx_t_5 = 0;
30837     __pyx_t_2 = 0;
30838     __pyx_t_13 = 0;
30839     __pyx_t_13 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix), __pyx_t_6, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1909, __pyx_L1_error)
30840     __Pyx_GOTREF(__pyx_t_13);
30841     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30842     __pyx_v_coinMat = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)__pyx_t_13);
30843     __pyx_t_13 = 0;
30844   }
30845   __pyx_L6:;
30846 
30847   /* "cylp/cy/CyClpSimplex.pyx":1912
30848  *                                         np.array([], np.int32),
30849  *                                         np.array([], np.double))
30850  *         self.replaceMatrix(coinMat, True)             # <<<<<<<<<<<<<<
30851  *
30852  *         #start adding the arrays and the matrix to the problem
30853  */
30854   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_replaceMatrix); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1912, __pyx_L1_error)
30855   __Pyx_GOTREF(__pyx_t_6);
30856   __pyx_t_2 = NULL;
30857   __pyx_t_11 = 0;
30858   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
30859     __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
30860     if (likely(__pyx_t_2)) {
30861       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
30862       __Pyx_INCREF(__pyx_t_2);
30863       __Pyx_INCREF(function);
30864       __Pyx_DECREF_SET(__pyx_t_6, function);
30865       __pyx_t_11 = 1;
30866     }
30867   }
30868   #if CYTHON_FAST_PYCALL
30869   if (PyFunction_Check(__pyx_t_6)) {
30870     PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_coinMat), Py_True};
30871     __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1912, __pyx_L1_error)
30872     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
30873     __Pyx_GOTREF(__pyx_t_13);
30874   } else
30875   #endif
30876   #if CYTHON_FAST_PYCCALL
30877   if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
30878     PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_coinMat), Py_True};
30879     __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1912, __pyx_L1_error)
30880     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
30881     __Pyx_GOTREF(__pyx_t_13);
30882   } else
30883   #endif
30884   {
30885     __pyx_t_5 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1912, __pyx_L1_error)
30886     __Pyx_GOTREF(__pyx_t_5);
30887     if (__pyx_t_2) {
30888       __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
30889     }
30890     __Pyx_INCREF(((PyObject *)__pyx_v_coinMat));
30891     __Pyx_GIVEREF(((PyObject *)__pyx_v_coinMat));
30892     PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_11, ((PyObject *)__pyx_v_coinMat));
30893     __Pyx_INCREF(Py_True);
30894     __Pyx_GIVEREF(Py_True);
30895     PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_11, Py_True);
30896     __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1912, __pyx_L1_error)
30897     __Pyx_GOTREF(__pyx_t_13);
30898     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
30899   }
30900   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30901   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
30902 
30903   /* "cylp/cy/CyClpSimplex.pyx":1916
30904  *         #start adding the arrays and the matrix to the problem
30905  *
30906  *         for i in xrange(n):             # <<<<<<<<<<<<<<
30907  *             self.setColumnLower(i, variableLower[i])
30908  *             self.setColumnUpper(i, variableUpper[i])
30909  */
30910   __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1916, __pyx_L1_error)
30911   __Pyx_GOTREF(__pyx_t_13);
30912   __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1916, __pyx_L1_error)
30913   __Pyx_GOTREF(__pyx_t_6);
30914   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
30915   if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
30916     __pyx_t_13 = __pyx_t_6; __Pyx_INCREF(__pyx_t_13); __pyx_t_9 = 0;
30917     __pyx_t_14 = NULL;
30918   } else {
30919     __pyx_t_9 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1916, __pyx_L1_error)
30920     __Pyx_GOTREF(__pyx_t_13);
30921     __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1916, __pyx_L1_error)
30922   }
30923   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30924   for (;;) {
30925     if (likely(!__pyx_t_14)) {
30926       if (likely(PyList_CheckExact(__pyx_t_13))) {
30927         if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_13)) break;
30928         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
30929         __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1916, __pyx_L1_error)
30930         #else
30931         __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1916, __pyx_L1_error)
30932         __Pyx_GOTREF(__pyx_t_6);
30933         #endif
30934       } else {
30935         if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
30936         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
30937         __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1916, __pyx_L1_error)
30938         #else
30939         __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1916, __pyx_L1_error)
30940         __Pyx_GOTREF(__pyx_t_6);
30941         #endif
30942       }
30943     } else {
30944       __pyx_t_6 = __pyx_t_14(__pyx_t_13);
30945       if (unlikely(!__pyx_t_6)) {
30946         PyObject* exc_type = PyErr_Occurred();
30947         if (exc_type) {
30948           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
30949           else __PYX_ERR(0, 1916, __pyx_L1_error)
30950         }
30951         break;
30952       }
30953       __Pyx_GOTREF(__pyx_t_6);
30954     }
30955     __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
30956     __pyx_t_6 = 0;
30957 
30958     /* "cylp/cy/CyClpSimplex.pyx":1917
30959  *
30960  *         for i in xrange(n):
30961  *             self.setColumnLower(i, variableLower[i])             # <<<<<<<<<<<<<<
30962  *             self.setColumnUpper(i, variableUpper[i])
30963  *
30964  */
30965     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setColumnLower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1917, __pyx_L1_error)
30966     __Pyx_GOTREF(__pyx_t_5);
30967     __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_variableLower, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1917, __pyx_L1_error)
30968     __Pyx_GOTREF(__pyx_t_2);
30969     __pyx_t_3 = NULL;
30970     __pyx_t_11 = 0;
30971     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
30972       __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
30973       if (likely(__pyx_t_3)) {
30974         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
30975         __Pyx_INCREF(__pyx_t_3);
30976         __Pyx_INCREF(function);
30977         __Pyx_DECREF_SET(__pyx_t_5, function);
30978         __pyx_t_11 = 1;
30979       }
30980     }
30981     #if CYTHON_FAST_PYCALL
30982     if (PyFunction_Check(__pyx_t_5)) {
30983       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_i, __pyx_t_2};
30984       __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1917, __pyx_L1_error)
30985       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
30986       __Pyx_GOTREF(__pyx_t_6);
30987       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30988     } else
30989     #endif
30990     #if CYTHON_FAST_PYCCALL
30991     if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
30992       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_i, __pyx_t_2};
30993       __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1917, __pyx_L1_error)
30994       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
30995       __Pyx_GOTREF(__pyx_t_6);
30996       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30997     } else
30998     #endif
30999     {
31000       __pyx_t_4 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1917, __pyx_L1_error)
31001       __Pyx_GOTREF(__pyx_t_4);
31002       if (__pyx_t_3) {
31003         __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
31004       }
31005       __Pyx_INCREF(__pyx_v_i);
31006       __Pyx_GIVEREF(__pyx_v_i);
31007       PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_11, __pyx_v_i);
31008       __Pyx_GIVEREF(__pyx_t_2);
31009       PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_11, __pyx_t_2);
31010       __pyx_t_2 = 0;
31011       __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1917, __pyx_L1_error)
31012       __Pyx_GOTREF(__pyx_t_6);
31013       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31014     }
31015     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31016     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31017 
31018     /* "cylp/cy/CyClpSimplex.pyx":1918
31019  *         for i in xrange(n):
31020  *             self.setColumnLower(i, variableLower[i])
31021  *             self.setColumnUpper(i, variableUpper[i])             # <<<<<<<<<<<<<<
31022  *
31023  *         for i in xrange(m):
31024  */
31025     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setColumnUpper); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1918, __pyx_L1_error)
31026     __Pyx_GOTREF(__pyx_t_5);
31027     __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_variableUpper, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1918, __pyx_L1_error)
31028     __Pyx_GOTREF(__pyx_t_4);
31029     __pyx_t_2 = NULL;
31030     __pyx_t_11 = 0;
31031     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
31032       __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
31033       if (likely(__pyx_t_2)) {
31034         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
31035         __Pyx_INCREF(__pyx_t_2);
31036         __Pyx_INCREF(function);
31037         __Pyx_DECREF_SET(__pyx_t_5, function);
31038         __pyx_t_11 = 1;
31039       }
31040     }
31041     #if CYTHON_FAST_PYCALL
31042     if (PyFunction_Check(__pyx_t_5)) {
31043       PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_i, __pyx_t_4};
31044       __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1918, __pyx_L1_error)
31045       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
31046       __Pyx_GOTREF(__pyx_t_6);
31047       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31048     } else
31049     #endif
31050     #if CYTHON_FAST_PYCCALL
31051     if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
31052       PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_i, __pyx_t_4};
31053       __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1918, __pyx_L1_error)
31054       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
31055       __Pyx_GOTREF(__pyx_t_6);
31056       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31057     } else
31058     #endif
31059     {
31060       __pyx_t_3 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1918, __pyx_L1_error)
31061       __Pyx_GOTREF(__pyx_t_3);
31062       if (__pyx_t_2) {
31063         __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL;
31064       }
31065       __Pyx_INCREF(__pyx_v_i);
31066       __Pyx_GIVEREF(__pyx_v_i);
31067       PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_11, __pyx_v_i);
31068       __Pyx_GIVEREF(__pyx_t_4);
31069       PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_11, __pyx_t_4);
31070       __pyx_t_4 = 0;
31071       __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1918, __pyx_L1_error)
31072       __Pyx_GOTREF(__pyx_t_6);
31073       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
31074     }
31075     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31076     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31077 
31078     /* "cylp/cy/CyClpSimplex.pyx":1916
31079  *         #start adding the arrays and the matrix to the problem
31080  *
31081  *         for i in xrange(n):             # <<<<<<<<<<<<<<
31082  *             self.setColumnLower(i, variableLower[i])
31083  *             self.setColumnUpper(i, variableUpper[i])
31084  */
31085   }
31086   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
31087 
31088   /* "cylp/cy/CyClpSimplex.pyx":1920
31089  *             self.setColumnUpper(i, variableUpper[i])
31090  *
31091  *         for i in xrange(m):             # <<<<<<<<<<<<<<
31092  *             self.setRowLower(i, constraintLower[i])
31093  *             self.setRowUpper(i, constraintUpper[i])
31094  */
31095   __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_m); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1920, __pyx_L1_error)
31096   __Pyx_GOTREF(__pyx_t_13);
31097   __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1920, __pyx_L1_error)
31098   __Pyx_GOTREF(__pyx_t_6);
31099   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
31100   if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
31101     __pyx_t_13 = __pyx_t_6; __Pyx_INCREF(__pyx_t_13); __pyx_t_9 = 0;
31102     __pyx_t_14 = NULL;
31103   } else {
31104     __pyx_t_9 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1920, __pyx_L1_error)
31105     __Pyx_GOTREF(__pyx_t_13);
31106     __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1920, __pyx_L1_error)
31107   }
31108   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31109   for (;;) {
31110     if (likely(!__pyx_t_14)) {
31111       if (likely(PyList_CheckExact(__pyx_t_13))) {
31112         if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_13)) break;
31113         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
31114         __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1920, __pyx_L1_error)
31115         #else
31116         __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1920, __pyx_L1_error)
31117         __Pyx_GOTREF(__pyx_t_6);
31118         #endif
31119       } else {
31120         if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
31121         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
31122         __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1920, __pyx_L1_error)
31123         #else
31124         __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1920, __pyx_L1_error)
31125         __Pyx_GOTREF(__pyx_t_6);
31126         #endif
31127       }
31128     } else {
31129       __pyx_t_6 = __pyx_t_14(__pyx_t_13);
31130       if (unlikely(!__pyx_t_6)) {
31131         PyObject* exc_type = PyErr_Occurred();
31132         if (exc_type) {
31133           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
31134           else __PYX_ERR(0, 1920, __pyx_L1_error)
31135         }
31136         break;
31137       }
31138       __Pyx_GOTREF(__pyx_t_6);
31139     }
31140     __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
31141     __pyx_t_6 = 0;
31142 
31143     /* "cylp/cy/CyClpSimplex.pyx":1921
31144  *
31145  *         for i in xrange(m):
31146  *             self.setRowLower(i, constraintLower[i])             # <<<<<<<<<<<<<<
31147  *             self.setRowUpper(i, constraintUpper[i])
31148  *
31149  */
31150     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setRowLower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1921, __pyx_L1_error)
31151     __Pyx_GOTREF(__pyx_t_5);
31152     __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_constraintLower, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1921, __pyx_L1_error)
31153     __Pyx_GOTREF(__pyx_t_3);
31154     __pyx_t_4 = NULL;
31155     __pyx_t_11 = 0;
31156     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
31157       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
31158       if (likely(__pyx_t_4)) {
31159         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
31160         __Pyx_INCREF(__pyx_t_4);
31161         __Pyx_INCREF(function);
31162         __Pyx_DECREF_SET(__pyx_t_5, function);
31163         __pyx_t_11 = 1;
31164       }
31165     }
31166     #if CYTHON_FAST_PYCALL
31167     if (PyFunction_Check(__pyx_t_5)) {
31168       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_i, __pyx_t_3};
31169       __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1921, __pyx_L1_error)
31170       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
31171       __Pyx_GOTREF(__pyx_t_6);
31172       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
31173     } else
31174     #endif
31175     #if CYTHON_FAST_PYCCALL
31176     if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
31177       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_i, __pyx_t_3};
31178       __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1921, __pyx_L1_error)
31179       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
31180       __Pyx_GOTREF(__pyx_t_6);
31181       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
31182     } else
31183     #endif
31184     {
31185       __pyx_t_2 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1921, __pyx_L1_error)
31186       __Pyx_GOTREF(__pyx_t_2);
31187       if (__pyx_t_4) {
31188         __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
31189       }
31190       __Pyx_INCREF(__pyx_v_i);
31191       __Pyx_GIVEREF(__pyx_v_i);
31192       PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_11, __pyx_v_i);
31193       __Pyx_GIVEREF(__pyx_t_3);
31194       PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_11, __pyx_t_3);
31195       __pyx_t_3 = 0;
31196       __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1921, __pyx_L1_error)
31197       __Pyx_GOTREF(__pyx_t_6);
31198       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
31199     }
31200     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31201     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31202 
31203     /* "cylp/cy/CyClpSimplex.pyx":1922
31204  *         for i in xrange(m):
31205  *             self.setRowLower(i, constraintLower[i])
31206  *             self.setRowUpper(i, constraintUpper[i])             # <<<<<<<<<<<<<<
31207  *
31208  *         #setting integer informations
31209  */
31210     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setRowUpper); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1922, __pyx_L1_error)
31211     __Pyx_GOTREF(__pyx_t_5);
31212     __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_constraintUpper, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1922, __pyx_L1_error)
31213     __Pyx_GOTREF(__pyx_t_2);
31214     __pyx_t_3 = NULL;
31215     __pyx_t_11 = 0;
31216     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
31217       __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
31218       if (likely(__pyx_t_3)) {
31219         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
31220         __Pyx_INCREF(__pyx_t_3);
31221         __Pyx_INCREF(function);
31222         __Pyx_DECREF_SET(__pyx_t_5, function);
31223         __pyx_t_11 = 1;
31224       }
31225     }
31226     #if CYTHON_FAST_PYCALL
31227     if (PyFunction_Check(__pyx_t_5)) {
31228       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_i, __pyx_t_2};
31229       __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1922, __pyx_L1_error)
31230       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
31231       __Pyx_GOTREF(__pyx_t_6);
31232       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
31233     } else
31234     #endif
31235     #if CYTHON_FAST_PYCCALL
31236     if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
31237       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_i, __pyx_t_2};
31238       __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1922, __pyx_L1_error)
31239       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
31240       __Pyx_GOTREF(__pyx_t_6);
31241       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
31242     } else
31243     #endif
31244     {
31245       __pyx_t_4 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1922, __pyx_L1_error)
31246       __Pyx_GOTREF(__pyx_t_4);
31247       if (__pyx_t_3) {
31248         __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
31249       }
31250       __Pyx_INCREF(__pyx_v_i);
31251       __Pyx_GIVEREF(__pyx_v_i);
31252       PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_11, __pyx_v_i);
31253       __Pyx_GIVEREF(__pyx_t_2);
31254       PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_11, __pyx_t_2);
31255       __pyx_t_2 = 0;
31256       __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1922, __pyx_L1_error)
31257       __Pyx_GOTREF(__pyx_t_6);
31258       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31259     }
31260     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31261     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31262 
31263     /* "cylp/cy/CyClpSimplex.pyx":1920
31264  *             self.setColumnUpper(i, variableUpper[i])
31265  *
31266  *         for i in xrange(m):             # <<<<<<<<<<<<<<
31267  *             self.setRowLower(i, constraintLower[i])
31268  *             self.setRowUpper(i, constraintUpper[i])
31269  */
31270   }
31271   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
31272 
31273   /* "cylp/cy/CyClpSimplex.pyx":1925
31274  *
31275  *         #setting integer informations
31276  *         variables = cyLPModel.variables             # <<<<<<<<<<<<<<
31277  *         curVarInd = 0
31278  *         for var in variables:
31279  */
31280   __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_cyLPModel, __pyx_n_s_variables); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1925, __pyx_L1_error)
31281   __Pyx_GOTREF(__pyx_t_13);
31282   __pyx_v_variables = __pyx_t_13;
31283   __pyx_t_13 = 0;
31284 
31285   /* "cylp/cy/CyClpSimplex.pyx":1926
31286  *         #setting integer informations
31287  *         variables = cyLPModel.variables
31288  *         curVarInd = 0             # <<<<<<<<<<<<<<
31289  *         for var in variables:
31290  *             if var.isInt:
31291  */
31292   __Pyx_INCREF(__pyx_int_0);
31293   __pyx_v_curVarInd = __pyx_int_0;
31294 
31295   /* "cylp/cy/CyClpSimplex.pyx":1927
31296  *         variables = cyLPModel.variables
31297  *         curVarInd = 0
31298  *         for var in variables:             # <<<<<<<<<<<<<<
31299  *             if var.isInt:
31300  *                 for i in xrange(curVarInd, curVarInd + var.dim):
31301  */
31302   if (likely(PyList_CheckExact(__pyx_v_variables)) || PyTuple_CheckExact(__pyx_v_variables)) {
31303     __pyx_t_13 = __pyx_v_variables; __Pyx_INCREF(__pyx_t_13); __pyx_t_9 = 0;
31304     __pyx_t_14 = NULL;
31305   } else {
31306     __pyx_t_9 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_v_variables); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1927, __pyx_L1_error)
31307     __Pyx_GOTREF(__pyx_t_13);
31308     __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1927, __pyx_L1_error)
31309   }
31310   for (;;) {
31311     if (likely(!__pyx_t_14)) {
31312       if (likely(PyList_CheckExact(__pyx_t_13))) {
31313         if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_13)) break;
31314         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
31315         __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1927, __pyx_L1_error)
31316         #else
31317         __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1927, __pyx_L1_error)
31318         __Pyx_GOTREF(__pyx_t_6);
31319         #endif
31320       } else {
31321         if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
31322         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
31323         __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1927, __pyx_L1_error)
31324         #else
31325         __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1927, __pyx_L1_error)
31326         __Pyx_GOTREF(__pyx_t_6);
31327         #endif
31328       }
31329     } else {
31330       __pyx_t_6 = __pyx_t_14(__pyx_t_13);
31331       if (unlikely(!__pyx_t_6)) {
31332         PyObject* exc_type = PyErr_Occurred();
31333         if (exc_type) {
31334           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
31335           else __PYX_ERR(0, 1927, __pyx_L1_error)
31336         }
31337         break;
31338       }
31339       __Pyx_GOTREF(__pyx_t_6);
31340     }
31341     __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_6);
31342     __pyx_t_6 = 0;
31343 
31344     /* "cylp/cy/CyClpSimplex.pyx":1928
31345  *         curVarInd = 0
31346  *         for var in variables:
31347  *             if var.isInt:             # <<<<<<<<<<<<<<
31348  *                 for i in xrange(curVarInd, curVarInd + var.dim):
31349  *                     self.setInteger(i)
31350  */
31351     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_isInt); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1928, __pyx_L1_error)
31352     __Pyx_GOTREF(__pyx_t_6);
31353     __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1928, __pyx_L1_error)
31354     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31355     if (__pyx_t_10) {
31356 
31357       /* "cylp/cy/CyClpSimplex.pyx":1929
31358  *         for var in variables:
31359  *             if var.isInt:
31360  *                 for i in xrange(curVarInd, curVarInd + var.dim):             # <<<<<<<<<<<<<<
31361  *                     self.setInteger(i)
31362  *             curVarInd += var.dim
31363  */
31364       __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1929, __pyx_L1_error)
31365       __Pyx_GOTREF(__pyx_t_6);
31366       __pyx_t_5 = PyNumber_Add(__pyx_v_curVarInd, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1929, __pyx_L1_error)
31367       __Pyx_GOTREF(__pyx_t_5);
31368       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31369       __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1929, __pyx_L1_error)
31370       __Pyx_GOTREF(__pyx_t_6);
31371       __Pyx_INCREF(__pyx_v_curVarInd);
31372       __Pyx_GIVEREF(__pyx_v_curVarInd);
31373       PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_curVarInd);
31374       __Pyx_GIVEREF(__pyx_t_5);
31375       PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
31376       __pyx_t_5 = 0;
31377       __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_xrange, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1929, __pyx_L1_error)
31378       __Pyx_GOTREF(__pyx_t_5);
31379       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31380       if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
31381         __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_15 = 0;
31382         __pyx_t_16 = NULL;
31383       } else {
31384         __pyx_t_15 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1929, __pyx_L1_error)
31385         __Pyx_GOTREF(__pyx_t_6);
31386         __pyx_t_16 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1929, __pyx_L1_error)
31387       }
31388       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31389       for (;;) {
31390         if (likely(!__pyx_t_16)) {
31391           if (likely(PyList_CheckExact(__pyx_t_6))) {
31392             if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_6)) break;
31393             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
31394             __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 1929, __pyx_L1_error)
31395             #else
31396             __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1929, __pyx_L1_error)
31397             __Pyx_GOTREF(__pyx_t_5);
31398             #endif
31399           } else {
31400             if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
31401             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
31402             __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 1929, __pyx_L1_error)
31403             #else
31404             __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1929, __pyx_L1_error)
31405             __Pyx_GOTREF(__pyx_t_5);
31406             #endif
31407           }
31408         } else {
31409           __pyx_t_5 = __pyx_t_16(__pyx_t_6);
31410           if (unlikely(!__pyx_t_5)) {
31411             PyObject* exc_type = PyErr_Occurred();
31412             if (exc_type) {
31413               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
31414               else __PYX_ERR(0, 1929, __pyx_L1_error)
31415             }
31416             break;
31417           }
31418           __Pyx_GOTREF(__pyx_t_5);
31419         }
31420         __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
31421         __pyx_t_5 = 0;
31422 
31423         /* "cylp/cy/CyClpSimplex.pyx":1930
31424  *             if var.isInt:
31425  *                 for i in xrange(curVarInd, curVarInd + var.dim):
31426  *                     self.setInteger(i)             # <<<<<<<<<<<<<<
31427  *             curVarInd += var.dim
31428  *
31429  */
31430         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setInteger); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1930, __pyx_L1_error)
31431         __Pyx_GOTREF(__pyx_t_4);
31432         __pyx_t_2 = NULL;
31433         if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
31434           __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
31435           if (likely(__pyx_t_2)) {
31436             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
31437             __Pyx_INCREF(__pyx_t_2);
31438             __Pyx_INCREF(function);
31439             __Pyx_DECREF_SET(__pyx_t_4, function);
31440           }
31441         }
31442         __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_i);
31443         __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
31444         if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1930, __pyx_L1_error)
31445         __Pyx_GOTREF(__pyx_t_5);
31446         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31447         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31448 
31449         /* "cylp/cy/CyClpSimplex.pyx":1929
31450  *         for var in variables:
31451  *             if var.isInt:
31452  *                 for i in xrange(curVarInd, curVarInd + var.dim):             # <<<<<<<<<<<<<<
31453  *                     self.setInteger(i)
31454  *             curVarInd += var.dim
31455  */
31456       }
31457       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31458 
31459       /* "cylp/cy/CyClpSimplex.pyx":1928
31460  *         curVarInd = 0
31461  *         for var in variables:
31462  *             if var.isInt:             # <<<<<<<<<<<<<<
31463  *                 for i in xrange(curVarInd, curVarInd + var.dim):
31464  *                     self.setInteger(i)
31465  */
31466     }
31467 
31468     /* "cylp/cy/CyClpSimplex.pyx":1931
31469  *                 for i in xrange(curVarInd, curVarInd + var.dim):
31470  *                     self.setInteger(i)
31471  *             curVarInd += var.dim             # <<<<<<<<<<<<<<
31472  *
31473  *
31474  */
31475     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1931, __pyx_L1_error)
31476     __Pyx_GOTREF(__pyx_t_6);
31477     __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_curVarInd, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1931, __pyx_L1_error)
31478     __Pyx_GOTREF(__pyx_t_5);
31479     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31480     __Pyx_DECREF_SET(__pyx_v_curVarInd, __pyx_t_5);
31481     __pyx_t_5 = 0;
31482 
31483     /* "cylp/cy/CyClpSimplex.pyx":1927
31484  *         variables = cyLPModel.variables
31485  *         curVarInd = 0
31486  *         for var in variables:             # <<<<<<<<<<<<<<
31487  *             if var.isInt:
31488  *                 for i in xrange(curVarInd, curVarInd + var.dim):
31489  */
31490   }
31491   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
31492 
31493   /* "cylp/cy/CyClpSimplex.pyx":1934
31494  *
31495  *
31496  *         if cyLPModel.objective is not None:             # <<<<<<<<<<<<<<
31497  *             self.objective = cyLPModel.objective
31498  *
31499  */
31500   __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_cyLPModel, __pyx_n_s_objective); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1934, __pyx_L1_error)
31501   __Pyx_GOTREF(__pyx_t_13);
31502   __pyx_t_10 = (__pyx_t_13 != Py_None);
31503   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
31504   __pyx_t_12 = (__pyx_t_10 != 0);
31505   if (__pyx_t_12) {
31506 
31507     /* "cylp/cy/CyClpSimplex.pyx":1935
31508  *
31509  *         if cyLPModel.objective is not None:
31510  *             self.objective = cyLPModel.objective             # <<<<<<<<<<<<<<
31511  *
31512  *     def evaluateAt(self, x0):
31513  */
31514     __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_cyLPModel, __pyx_n_s_objective); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1935, __pyx_L1_error)
31515     __Pyx_GOTREF(__pyx_t_13);
31516     if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objective, __pyx_t_13) < 0) __PYX_ERR(0, 1935, __pyx_L1_error)
31517     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
31518 
31519     /* "cylp/cy/CyClpSimplex.pyx":1934
31520  *
31521  *
31522  *         if cyLPModel.objective is not None:             # <<<<<<<<<<<<<<
31523  *             self.objective = cyLPModel.objective
31524  *
31525  */
31526   }
31527 
31528   /* "cylp/cy/CyClpSimplex.pyx":1865
31529  *     #############################################
31530  *
31531  *     def loadFromCyLPModel(self, cyLPModel):             # <<<<<<<<<<<<<<
31532  *         '''
31533  *         Set the coefficient matrix, constraint bounds, and variable
31534  */
31535 
31536   /* function exit code */
31537   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31538   goto __pyx_L0;
31539   __pyx_L1_error:;
31540   __Pyx_XDECREF(__pyx_t_1);
31541   __Pyx_XDECREF(__pyx_t_2);
31542   __Pyx_XDECREF(__pyx_t_3);
31543   __Pyx_XDECREF(__pyx_t_4);
31544   __Pyx_XDECREF(__pyx_t_5);
31545   __Pyx_XDECREF(__pyx_t_6);
31546   __Pyx_XDECREF(__pyx_t_7);
31547   __Pyx_XDECREF(__pyx_t_13);
31548   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadFromCyLPModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
31549   __pyx_r = NULL;
31550   __pyx_L0:;
31551   __Pyx_XDECREF(__pyx_v_mat);
31552   __Pyx_XDECREF(__pyx_v_constraintLower);
31553   __Pyx_XDECREF(__pyx_v_constraintUpper);
31554   __Pyx_XDECREF(__pyx_v_variableLower);
31555   __Pyx_XDECREF(__pyx_v_variableUpper);
31556   __Pyx_XDECREF((PyObject *)__pyx_v_coinMat);
31557   __Pyx_XDECREF(__pyx_v_i);
31558   __Pyx_XDECREF(__pyx_v_variables);
31559   __Pyx_XDECREF(__pyx_v_curVarInd);
31560   __Pyx_XDECREF(__pyx_v_var);
31561   __Pyx_XGIVEREF(__pyx_r);
31562   __Pyx_TraceReturn(__pyx_r, 0);
31563   __Pyx_RefNannyFinishContext();
31564   return __pyx_r;
31565 }
31566 
31567 /* "cylp/cy/CyClpSimplex.pyx":1937
31568  *             self.objective = cyLPModel.objective
31569  *
31570  *     def evaluateAt(self, x0):             # <<<<<<<<<<<<<<
31571  *         '''
31572  *         Evaluate the objective function at x0
31573  */
31574 
31575 /* Python wrapper */
31576 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_167evaluateAt(PyObject *__pyx_v_self, PyObject *__pyx_v_x0); /*proto*/
31577 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt[] = "CyClpSimplex.evaluateAt(self, x0)\n\n        Evaluate the objective function at x0\n        ";
31578 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_167evaluateAt(PyObject *__pyx_v_self, PyObject *__pyx_v_x0) {
31579   PyObject *__pyx_r = 0;
31580   __Pyx_RefNannyDeclarations
31581   __Pyx_RefNannySetupContext("evaluateAt (wrapper)", 0);
31582   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_x0));
31583 
31584   /* function exit code */
31585   __Pyx_RefNannyFinishContext();
31586   return __pyx_r;
31587 }
31588 
31589 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_x0) {
31590   PyObject *__pyx_r = NULL;
31591   __Pyx_TraceDeclarations
31592   __Pyx_RefNannyDeclarations
31593   PyObject *__pyx_t_1 = NULL;
31594   int __pyx_t_2;
31595   int __pyx_t_3;
31596   PyObject *__pyx_t_4 = NULL;
31597   PyObject *__pyx_t_5 = NULL;
31598   PyObject *__pyx_t_6 = NULL;
31599   int __pyx_t_7;
31600   PyObject *__pyx_t_8 = NULL;
31601   PyObject *__pyx_t_9 = NULL;
31602   int __pyx_lineno = 0;
31603   const char *__pyx_filename = NULL;
31604   int __pyx_clineno = 0;
31605   __Pyx_RefNannySetupContext("evaluateAt", 0);
31606   __Pyx_TraceCall("evaluateAt", __pyx_f[0], 1937, 0, __PYX_ERR(0, 1937, __pyx_L1_error));
31607 
31608   /* "cylp/cy/CyClpSimplex.pyx":1941
31609  *         Evaluate the objective function at x0
31610  *         '''
31611  *         if self.Hessian is not None:             # <<<<<<<<<<<<<<
31612  *             return (np.dot(self.objectiveCoefficients, x0) +
31613  *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
31614  */
31615   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Hessian); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1941, __pyx_L1_error)
31616   __Pyx_GOTREF(__pyx_t_1);
31617   __pyx_t_2 = (__pyx_t_1 != Py_None);
31618   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
31619   __pyx_t_3 = (__pyx_t_2 != 0);
31620   if (__pyx_t_3) {
31621 
31622     /* "cylp/cy/CyClpSimplex.pyx":1942
31623  *         '''
31624  *         if self.Hessian is not None:
31625  *             return (np.dot(self.objectiveCoefficients, x0) +             # <<<<<<<<<<<<<<
31626  *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
31627  *         else:
31628  */
31629     __Pyx_XDECREF(__pyx_r);
31630     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1942, __pyx_L1_error)
31631     __Pyx_GOTREF(__pyx_t_4);
31632     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1942, __pyx_L1_error)
31633     __Pyx_GOTREF(__pyx_t_5);
31634     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31635     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objectiveCoefficients); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1942, __pyx_L1_error)
31636     __Pyx_GOTREF(__pyx_t_4);
31637     __pyx_t_6 = NULL;
31638     __pyx_t_7 = 0;
31639     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
31640       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
31641       if (likely(__pyx_t_6)) {
31642         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
31643         __Pyx_INCREF(__pyx_t_6);
31644         __Pyx_INCREF(function);
31645         __Pyx_DECREF_SET(__pyx_t_5, function);
31646         __pyx_t_7 = 1;
31647       }
31648     }
31649     #if CYTHON_FAST_PYCALL
31650     if (PyFunction_Check(__pyx_t_5)) {
31651       PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_x0};
31652       __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1942, __pyx_L1_error)
31653       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
31654       __Pyx_GOTREF(__pyx_t_1);
31655       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31656     } else
31657     #endif
31658     #if CYTHON_FAST_PYCCALL
31659     if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
31660       PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_x0};
31661       __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1942, __pyx_L1_error)
31662       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
31663       __Pyx_GOTREF(__pyx_t_1);
31664       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31665     } else
31666     #endif
31667     {
31668       __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1942, __pyx_L1_error)
31669       __Pyx_GOTREF(__pyx_t_8);
31670       if (__pyx_t_6) {
31671         __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
31672       }
31673       __Pyx_GIVEREF(__pyx_t_4);
31674       PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4);
31675       __Pyx_INCREF(__pyx_v_x0);
31676       __Pyx_GIVEREF(__pyx_v_x0);
31677       PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_x0);
31678       __pyx_t_4 = 0;
31679       __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1942, __pyx_L1_error)
31680       __Pyx_GOTREF(__pyx_t_1);
31681       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
31682     }
31683     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31684 
31685     /* "cylp/cy/CyClpSimplex.pyx":1943
31686  *         if self.Hessian is not None:
31687  *             return (np.dot(self.objectiveCoefficients, x0) +
31688  *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)             # <<<<<<<<<<<<<<
31689  *         else:
31690  *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset
31691  */
31692     __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1943, __pyx_L1_error)
31693     __Pyx_GOTREF(__pyx_t_8);
31694     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_dot); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error)
31695     __Pyx_GOTREF(__pyx_t_4);
31696     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
31697     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Hessian); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1943, __pyx_L1_error)
31698     __Pyx_GOTREF(__pyx_t_6);
31699     __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_dot); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1943, __pyx_L1_error)
31700     __Pyx_GOTREF(__pyx_t_9);
31701     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31702     __pyx_t_6 = NULL;
31703     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
31704       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9);
31705       if (likely(__pyx_t_6)) {
31706         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
31707         __Pyx_INCREF(__pyx_t_6);
31708         __Pyx_INCREF(function);
31709         __Pyx_DECREF_SET(__pyx_t_9, function);
31710       }
31711     }
31712     __pyx_t_8 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_6, __pyx_v_x0) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_x0);
31713     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
31714     if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1943, __pyx_L1_error)
31715     __Pyx_GOTREF(__pyx_t_8);
31716     __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
31717     __pyx_t_9 = NULL;
31718     __pyx_t_7 = 0;
31719     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
31720       __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
31721       if (likely(__pyx_t_9)) {
31722         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
31723         __Pyx_INCREF(__pyx_t_9);
31724         __Pyx_INCREF(function);
31725         __Pyx_DECREF_SET(__pyx_t_4, function);
31726         __pyx_t_7 = 1;
31727       }
31728     }
31729     #if CYTHON_FAST_PYCALL
31730     if (PyFunction_Check(__pyx_t_4)) {
31731       PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_x0, __pyx_t_8};
31732       __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1943, __pyx_L1_error)
31733       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
31734       __Pyx_GOTREF(__pyx_t_5);
31735       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
31736     } else
31737     #endif
31738     #if CYTHON_FAST_PYCCALL
31739     if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
31740       PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_x0, __pyx_t_8};
31741       __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1943, __pyx_L1_error)
31742       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
31743       __Pyx_GOTREF(__pyx_t_5);
31744       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
31745     } else
31746     #endif
31747     {
31748       __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1943, __pyx_L1_error)
31749       __Pyx_GOTREF(__pyx_t_6);
31750       if (__pyx_t_9) {
31751         __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL;
31752       }
31753       __Pyx_INCREF(__pyx_v_x0);
31754       __Pyx_GIVEREF(__pyx_v_x0);
31755       PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_x0);
31756       __Pyx_GIVEREF(__pyx_t_8);
31757       PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_t_8);
31758       __pyx_t_8 = 0;
31759       __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1943, __pyx_L1_error)
31760       __Pyx_GOTREF(__pyx_t_5);
31761       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31762     }
31763     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31764     __pyx_t_4 = PyNumber_Multiply(__pyx_float_0_5, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error)
31765     __Pyx_GOTREF(__pyx_t_4);
31766     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31767 
31768     /* "cylp/cy/CyClpSimplex.pyx":1942
31769  *         '''
31770  *         if self.Hessian is not None:
31771  *             return (np.dot(self.objectiveCoefficients, x0) +             # <<<<<<<<<<<<<<
31772  *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
31773  *         else:
31774  */
31775     __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1942, __pyx_L1_error)
31776     __Pyx_GOTREF(__pyx_t_5);
31777     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
31778     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31779 
31780     /* "cylp/cy/CyClpSimplex.pyx":1943
31781  *         if self.Hessian is not None:
31782  *             return (np.dot(self.objectiveCoefficients, x0) +
31783  *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)             # <<<<<<<<<<<<<<
31784  *         else:
31785  *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset
31786  */
31787     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objectiveOffset); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error)
31788     __Pyx_GOTREF(__pyx_t_4);
31789     __pyx_t_1 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1943, __pyx_L1_error)
31790     __Pyx_GOTREF(__pyx_t_1);
31791     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31792     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31793     __pyx_r = __pyx_t_1;
31794     __pyx_t_1 = 0;
31795     goto __pyx_L0;
31796 
31797     /* "cylp/cy/CyClpSimplex.pyx":1941
31798  *         Evaluate the objective function at x0
31799  *         '''
31800  *         if self.Hessian is not None:             # <<<<<<<<<<<<<<
31801  *             return (np.dot(self.objectiveCoefficients, x0) +
31802  *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
31803  */
31804   }
31805 
31806   /* "cylp/cy/CyClpSimplex.pyx":1945
31807  *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
31808  *         else:
31809  *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset             # <<<<<<<<<<<<<<
31810  *
31811  *     def gradientAt(self, x0):
31812  */
31813   /*else*/ {
31814     __Pyx_XDECREF(__pyx_r);
31815     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1945, __pyx_L1_error)
31816     __Pyx_GOTREF(__pyx_t_4);
31817     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1945, __pyx_L1_error)
31818     __Pyx_GOTREF(__pyx_t_5);
31819     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31820     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objectiveCoefficients); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1945, __pyx_L1_error)
31821     __Pyx_GOTREF(__pyx_t_4);
31822     __pyx_t_6 = NULL;
31823     __pyx_t_7 = 0;
31824     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
31825       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
31826       if (likely(__pyx_t_6)) {
31827         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
31828         __Pyx_INCREF(__pyx_t_6);
31829         __Pyx_INCREF(function);
31830         __Pyx_DECREF_SET(__pyx_t_5, function);
31831         __pyx_t_7 = 1;
31832       }
31833     }
31834     #if CYTHON_FAST_PYCALL
31835     if (PyFunction_Check(__pyx_t_5)) {
31836       PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_x0};
31837       __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1945, __pyx_L1_error)
31838       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
31839       __Pyx_GOTREF(__pyx_t_1);
31840       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31841     } else
31842     #endif
31843     #if CYTHON_FAST_PYCCALL
31844     if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
31845       PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_x0};
31846       __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1945, __pyx_L1_error)
31847       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
31848       __Pyx_GOTREF(__pyx_t_1);
31849       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31850     } else
31851     #endif
31852     {
31853       __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1945, __pyx_L1_error)
31854       __Pyx_GOTREF(__pyx_t_8);
31855       if (__pyx_t_6) {
31856         __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
31857       }
31858       __Pyx_GIVEREF(__pyx_t_4);
31859       PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4);
31860       __Pyx_INCREF(__pyx_v_x0);
31861       __Pyx_GIVEREF(__pyx_v_x0);
31862       PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_x0);
31863       __pyx_t_4 = 0;
31864       __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1945, __pyx_L1_error)
31865       __Pyx_GOTREF(__pyx_t_1);
31866       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
31867     }
31868     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31869     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objectiveOffset); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1945, __pyx_L1_error)
31870     __Pyx_GOTREF(__pyx_t_5);
31871     __pyx_t_8 = PyNumber_Subtract(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1945, __pyx_L1_error)
31872     __Pyx_GOTREF(__pyx_t_8);
31873     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
31874     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31875     __pyx_r = __pyx_t_8;
31876     __pyx_t_8 = 0;
31877     goto __pyx_L0;
31878   }
31879 
31880   /* "cylp/cy/CyClpSimplex.pyx":1937
31881  *             self.objective = cyLPModel.objective
31882  *
31883  *     def evaluateAt(self, x0):             # <<<<<<<<<<<<<<
31884  *         '''
31885  *         Evaluate the objective function at x0
31886  */
31887 
31888   /* function exit code */
31889   __pyx_L1_error:;
31890   __Pyx_XDECREF(__pyx_t_1);
31891   __Pyx_XDECREF(__pyx_t_4);
31892   __Pyx_XDECREF(__pyx_t_5);
31893   __Pyx_XDECREF(__pyx_t_6);
31894   __Pyx_XDECREF(__pyx_t_8);
31895   __Pyx_XDECREF(__pyx_t_9);
31896   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.evaluateAt", __pyx_clineno, __pyx_lineno, __pyx_filename);
31897   __pyx_r = NULL;
31898   __pyx_L0:;
31899   __Pyx_XGIVEREF(__pyx_r);
31900   __Pyx_TraceReturn(__pyx_r, 0);
31901   __Pyx_RefNannyFinishContext();
31902   return __pyx_r;
31903 }
31904 
31905 /* "cylp/cy/CyClpSimplex.pyx":1947
31906  *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset
31907  *
31908  *     def gradientAt(self, x0):             # <<<<<<<<<<<<<<
31909  *         if self.Hessian is not None:
31910  *             return self.objectiveCoefficients + self.Hessian * x0
31911  */
31912 
31913 /* Python wrapper */
31914 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_169gradientAt(PyObject *__pyx_v_self, PyObject *__pyx_v_x0); /*proto*/
31915 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt[] = "CyClpSimplex.gradientAt(self, x0)";
31916 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_169gradientAt(PyObject *__pyx_v_self, PyObject *__pyx_v_x0) {
31917   PyObject *__pyx_r = 0;
31918   __Pyx_RefNannyDeclarations
31919   __Pyx_RefNannySetupContext("gradientAt (wrapper)", 0);
31920   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_x0));
31921 
31922   /* function exit code */
31923   __Pyx_RefNannyFinishContext();
31924   return __pyx_r;
31925 }
31926 
31927 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_x0) {
31928   PyObject *__pyx_r = NULL;
31929   __Pyx_TraceDeclarations
31930   __Pyx_RefNannyDeclarations
31931   PyObject *__pyx_t_1 = NULL;
31932   int __pyx_t_2;
31933   int __pyx_t_3;
31934   PyObject *__pyx_t_4 = NULL;
31935   PyObject *__pyx_t_5 = NULL;
31936   int __pyx_lineno = 0;
31937   const char *__pyx_filename = NULL;
31938   int __pyx_clineno = 0;
31939   __Pyx_RefNannySetupContext("gradientAt", 0);
31940   __Pyx_TraceCall("gradientAt", __pyx_f[0], 1947, 0, __PYX_ERR(0, 1947, __pyx_L1_error));
31941 
31942   /* "cylp/cy/CyClpSimplex.pyx":1948
31943  *
31944  *     def gradientAt(self, x0):
31945  *         if self.Hessian is not None:             # <<<<<<<<<<<<<<
31946  *             return self.objectiveCoefficients + self.Hessian * x0
31947  *         else:
31948  */
31949   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Hessian); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1948, __pyx_L1_error)
31950   __Pyx_GOTREF(__pyx_t_1);
31951   __pyx_t_2 = (__pyx_t_1 != Py_None);
31952   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
31953   __pyx_t_3 = (__pyx_t_2 != 0);
31954   if (__pyx_t_3) {
31955 
31956     /* "cylp/cy/CyClpSimplex.pyx":1949
31957  *     def gradientAt(self, x0):
31958  *         if self.Hessian is not None:
31959  *             return self.objectiveCoefficients + self.Hessian * x0             # <<<<<<<<<<<<<<
31960  *         else:
31961  *             return self.objectiveCoefficients
31962  */
31963     __Pyx_XDECREF(__pyx_r);
31964     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objectiveCoefficients); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1949, __pyx_L1_error)
31965     __Pyx_GOTREF(__pyx_t_1);
31966     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Hessian); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1949, __pyx_L1_error)
31967     __Pyx_GOTREF(__pyx_t_4);
31968     __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1949, __pyx_L1_error)
31969     __Pyx_GOTREF(__pyx_t_5);
31970     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31971     __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1949, __pyx_L1_error)
31972     __Pyx_GOTREF(__pyx_t_4);
31973     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
31974     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31975     __pyx_r = __pyx_t_4;
31976     __pyx_t_4 = 0;
31977     goto __pyx_L0;
31978 
31979     /* "cylp/cy/CyClpSimplex.pyx":1948
31980  *
31981  *     def gradientAt(self, x0):
31982  *         if self.Hessian is not None:             # <<<<<<<<<<<<<<
31983  *             return self.objectiveCoefficients + self.Hessian * x0
31984  *         else:
31985  */
31986   }
31987 
31988   /* "cylp/cy/CyClpSimplex.pyx":1951
31989  *             return self.objectiveCoefficients + self.Hessian * x0
31990  *         else:
31991  *             return self.objectiveCoefficients             # <<<<<<<<<<<<<<
31992  *
31993  *
31994  */
31995   /*else*/ {
31996     __Pyx_XDECREF(__pyx_r);
31997     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objectiveCoefficients); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1951, __pyx_L1_error)
31998     __Pyx_GOTREF(__pyx_t_4);
31999     __pyx_r = __pyx_t_4;
32000     __pyx_t_4 = 0;
32001     goto __pyx_L0;
32002   }
32003 
32004   /* "cylp/cy/CyClpSimplex.pyx":1947
32005  *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset
32006  *
32007  *     def gradientAt(self, x0):             # <<<<<<<<<<<<<<
32008  *         if self.Hessian is not None:
32009  *             return self.objectiveCoefficients + self.Hessian * x0
32010  */
32011 
32012   /* function exit code */
32013   __pyx_L1_error:;
32014   __Pyx_XDECREF(__pyx_t_1);
32015   __Pyx_XDECREF(__pyx_t_4);
32016   __Pyx_XDECREF(__pyx_t_5);
32017   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.gradientAt", __pyx_clineno, __pyx_lineno, __pyx_filename);
32018   __pyx_r = NULL;
32019   __pyx_L0:;
32020   __Pyx_XGIVEREF(__pyx_r);
32021   __Pyx_TraceReturn(__pyx_r, 0);
32022   __Pyx_RefNannyFinishContext();
32023   return __pyx_r;
32024 }
32025 
32026 /* "cylp/cy/CyClpSimplex.pyx":1958
32027  *     #############################################
32028  *
32029  *     def getCbcModel(self):             # <<<<<<<<<<<<<<
32030  *         '''
32031  *         Run initialSolve, return a :class:`CyCbcModel` object that can be
32032  */
32033 
32034 /* Python wrapper */
32035 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_171getCbcModel(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
32036 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_170getCbcModel[] = "CyClpSimplex.getCbcModel(self)\n\n        Run initialSolve, return a :class:`CyCbcModel` object that can be\n        used to add cuts, run B&B and ...\n        ";
32037 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_171getCbcModel(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
32038   PyObject *__pyx_r = 0;
32039   __Pyx_RefNannyDeclarations
32040   __Pyx_RefNannySetupContext("getCbcModel (wrapper)", 0);
32041   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_170getCbcModel(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
32042 
32043   /* function exit code */
32044   __Pyx_RefNannyFinishContext();
32045   return __pyx_r;
32046 }
32047 
32048 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_170getCbcModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
32049   ICbcModel *__pyx_v_model;
32050   struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_cm = NULL;
32051   PyObject *__pyx_r = NULL;
32052   __Pyx_TraceDeclarations
32053   __Pyx_RefNannyDeclarations
32054   PyObject *__pyx_t_1 = NULL;
32055   int __pyx_t_2;
32056   int __pyx_lineno = 0;
32057   const char *__pyx_filename = NULL;
32058   int __pyx_clineno = 0;
32059   __Pyx_RefNannySetupContext("getCbcModel", 0);
32060   __Pyx_TraceCall("getCbcModel", __pyx_f[0], 1958, 0, __PYX_ERR(0, 1958, __pyx_L1_error));
32061 
32062   /* "cylp/cy/CyClpSimplex.pyx":1963
32063  *         used to add cuts, run B&B and ...
32064  *         '''
32065  *         cdef CppICbcModel* model = self.CppSelf.getICbcModel()             # <<<<<<<<<<<<<<
32066  *         cm =  CyCbcModel()
32067  *         cm.setCppSelf(model)
32068  */
32069   __pyx_v_model = __pyx_v_self->CppSelf->getICbcModel();
32070 
32071   /* "cylp/cy/CyClpSimplex.pyx":1964
32072  *         '''
32073  *         cdef CppICbcModel* model = self.CppSelf.getICbcModel()
32074  *         cm =  CyCbcModel()             # <<<<<<<<<<<<<<
32075  *         cm.setCppSelf(model)
32076  *         cm.setClpModel(self)
32077  */
32078   __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_10CyCbcModel_CyCbcModel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1964, __pyx_L1_error)
32079   __Pyx_GOTREF(__pyx_t_1);
32080   __pyx_v_cm = ((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)__pyx_t_1);
32081   __pyx_t_1 = 0;
32082 
32083   /* "cylp/cy/CyClpSimplex.pyx":1965
32084  *         cdef CppICbcModel* model = self.CppSelf.getICbcModel()
32085  *         cm =  CyCbcModel()
32086  *         cm.setCppSelf(model)             # <<<<<<<<<<<<<<
32087  *         cm.setClpModel(self)
32088  *         if self.cyLPModel:
32089  */
32090   __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel *)__pyx_v_cm->__pyx_vtab)->setCppSelf(__pyx_v_cm, __pyx_v_model); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1965, __pyx_L1_error)
32091   __Pyx_GOTREF(__pyx_t_1);
32092   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32093 
32094   /* "cylp/cy/CyClpSimplex.pyx":1966
32095  *         cm =  CyCbcModel()
32096  *         cm.setCppSelf(model)
32097  *         cm.setClpModel(self)             # <<<<<<<<<<<<<<
32098  *         if self.cyLPModel:
32099  *             cm.cyLPModel = self.cyLPModel
32100  */
32101   __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel *)__pyx_v_cm->__pyx_vtab)->setClpModel(__pyx_v_cm, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1966, __pyx_L1_error)
32102   __Pyx_GOTREF(__pyx_t_1);
32103   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32104 
32105   /* "cylp/cy/CyClpSimplex.pyx":1967
32106  *         cm.setCppSelf(model)
32107  *         cm.setClpModel(self)
32108  *         if self.cyLPModel:             # <<<<<<<<<<<<<<
32109  *             cm.cyLPModel = self.cyLPModel
32110  *         return cm
32111  */
32112   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1967, __pyx_L1_error)
32113   if (__pyx_t_2) {
32114 
32115     /* "cylp/cy/CyClpSimplex.pyx":1968
32116  *         cm.setClpModel(self)
32117  *         if self.cyLPModel:
32118  *             cm.cyLPModel = self.cyLPModel             # <<<<<<<<<<<<<<
32119  *         return cm
32120  *
32121  */
32122     __pyx_t_1 = __pyx_v_self->cyLPModel;
32123     __Pyx_INCREF(__pyx_t_1);
32124     __Pyx_GIVEREF(__pyx_t_1);
32125     __Pyx_GOTREF(__pyx_v_cm->cyLPModel);
32126     __Pyx_DECREF(__pyx_v_cm->cyLPModel);
32127     __pyx_v_cm->cyLPModel = __pyx_t_1;
32128     __pyx_t_1 = 0;
32129 
32130     /* "cylp/cy/CyClpSimplex.pyx":1967
32131  *         cm.setCppSelf(model)
32132  *         cm.setClpModel(self)
32133  *         if self.cyLPModel:             # <<<<<<<<<<<<<<
32134  *             cm.cyLPModel = self.cyLPModel
32135  *         return cm
32136  */
32137   }
32138 
32139   /* "cylp/cy/CyClpSimplex.pyx":1969
32140  *         if self.cyLPModel:
32141  *             cm.cyLPModel = self.cyLPModel
32142  *         return cm             # <<<<<<<<<<<<<<
32143  *
32144  *     #############################################
32145  */
32146   __Pyx_XDECREF(__pyx_r);
32147   __Pyx_INCREF(((PyObject *)__pyx_v_cm));
32148   __pyx_r = ((PyObject *)__pyx_v_cm);
32149   goto __pyx_L0;
32150 
32151   /* "cylp/cy/CyClpSimplex.pyx":1958
32152  *     #############################################
32153  *
32154  *     def getCbcModel(self):             # <<<<<<<<<<<<<<
32155  *         '''
32156  *         Run initialSolve, return a :class:`CyCbcModel` object that can be
32157  */
32158 
32159   /* function exit code */
32160   __pyx_L1_error:;
32161   __Pyx_XDECREF(__pyx_t_1);
32162   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getCbcModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
32163   __pyx_r = NULL;
32164   __pyx_L0:;
32165   __Pyx_XDECREF((PyObject *)__pyx_v_cm);
32166   __Pyx_XGIVEREF(__pyx_r);
32167   __Pyx_TraceReturn(__pyx_r, 0);
32168   __Pyx_RefNannyFinishContext();
32169   return __pyx_r;
32170 }
32171 
32172 /* "cylp/cy/CyClpSimplex.pyx":1975
32173  *     #############################################
32174  *
32175  *     def isPivotAcceptable(self):             # <<<<<<<<<<<<<<
32176  *         return (<CyPivotPythonBase>
32177  *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
32178  */
32179 
32180 /* Python wrapper */
32181 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_173isPivotAcceptable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
32182 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable[] = "CyClpSimplex.isPivotAcceptable(self)";
32183 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_173isPivotAcceptable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
32184   PyObject *__pyx_r = 0;
32185   __Pyx_RefNannyDeclarations
32186   __Pyx_RefNannySetupContext("isPivotAcceptable (wrapper)", 0);
32187   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
32188 
32189   /* function exit code */
32190   __Pyx_RefNannyFinishContext();
32191   return __pyx_r;
32192 }
32193 
32194 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
32195   PyObject *__pyx_r = NULL;
32196   __Pyx_TraceDeclarations
32197   __Pyx_RefNannyDeclarations
32198   PyObject *__pyx_t_1 = NULL;
32199   PyObject *__pyx_t_2 = NULL;
32200   PyObject *__pyx_t_3 = NULL;
32201   int __pyx_lineno = 0;
32202   const char *__pyx_filename = NULL;
32203   int __pyx_clineno = 0;
32204   __Pyx_RefNannySetupContext("isPivotAcceptable", 0);
32205   __Pyx_TraceCall("isPivotAcceptable", __pyx_f[0], 1975, 0, __PYX_ERR(0, 1975, __pyx_L1_error));
32206 
32207   /* "cylp/cy/CyClpSimplex.pyx":1976
32208  *
32209  *     def isPivotAcceptable(self):
32210  *         return (<CyPivotPythonBase>             # <<<<<<<<<<<<<<
32211  *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
32212  *
32213  */
32214   __Pyx_XDECREF(__pyx_r);
32215 
32216   /* "cylp/cy/CyClpSimplex.pyx":1977
32217  *     def isPivotAcceptable(self):
32218  *         return (<CyPivotPythonBase>
32219  *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()             # <<<<<<<<<<<<<<
32220  *
32221  *     def checkVar(self, i):
32222  */
32223   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *)__pyx_v_self->cyPivot)->pivotMethodObject, __pyx_n_s_isPivotAcceptable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1977, __pyx_L1_error)
32224   __Pyx_GOTREF(__pyx_t_2);
32225   __pyx_t_3 = NULL;
32226   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
32227     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
32228     if (likely(__pyx_t_3)) {
32229       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
32230       __Pyx_INCREF(__pyx_t_3);
32231       __Pyx_INCREF(function);
32232       __Pyx_DECREF_SET(__pyx_t_2, function);
32233     }
32234   }
32235   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
32236   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
32237   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1977, __pyx_L1_error)
32238   __Pyx_GOTREF(__pyx_t_1);
32239   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32240   __pyx_r = __pyx_t_1;
32241   __pyx_t_1 = 0;
32242   goto __pyx_L0;
32243 
32244   /* "cylp/cy/CyClpSimplex.pyx":1975
32245  *     #############################################
32246  *
32247  *     def isPivotAcceptable(self):             # <<<<<<<<<<<<<<
32248  *         return (<CyPivotPythonBase>
32249  *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
32250  */
32251 
32252   /* function exit code */
32253   __pyx_L1_error:;
32254   __Pyx_XDECREF(__pyx_t_1);
32255   __Pyx_XDECREF(__pyx_t_2);
32256   __Pyx_XDECREF(__pyx_t_3);
32257   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.isPivotAcceptable", __pyx_clineno, __pyx_lineno, __pyx_filename);
32258   __pyx_r = NULL;
32259   __pyx_L0:;
32260   __Pyx_XGIVEREF(__pyx_r);
32261   __Pyx_TraceReturn(__pyx_r, 0);
32262   __Pyx_RefNannyFinishContext();
32263   return __pyx_r;
32264 }
32265 
32266 /* "cylp/cy/CyClpSimplex.pyx":1979
32267  *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
32268  *
32269  *     def checkVar(self, i):             # <<<<<<<<<<<<<<
32270  *         (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
32271  *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
32272  */
32273 
32274 /* Python wrapper */
32275 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_175checkVar(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/
32276 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar[] = "CyClpSimplex.checkVar(self, i)";
32277 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_175checkVar(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {
32278   PyObject *__pyx_r = 0;
32279   __Pyx_RefNannyDeclarations
32280   __Pyx_RefNannySetupContext("checkVar (wrapper)", 0);
32281   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_i));
32282 
32283   /* function exit code */
32284   __Pyx_RefNannyFinishContext();
32285   return __pyx_r;
32286 }
32287 
32288 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_i) {
32289   PyObject *__pyx_r = NULL;
32290   __Pyx_TraceDeclarations
32291   __Pyx_RefNannyDeclarations
32292   PyObject *__pyx_t_1 = NULL;
32293   PyObject *__pyx_t_2 = NULL;
32294   PyObject *__pyx_t_3 = NULL;
32295   int __pyx_lineno = 0;
32296   const char *__pyx_filename = NULL;
32297   int __pyx_clineno = 0;
32298   __Pyx_RefNannySetupContext("checkVar", 0);
32299   __Pyx_TraceCall("checkVar", __pyx_f[0], 1979, 0, __PYX_ERR(0, 1979, __pyx_L1_error));
32300 
32301   /* "cylp/cy/CyClpSimplex.pyx":1980
32302  *
32303  *     def checkVar(self, i):
32304  *         (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)             # <<<<<<<<<<<<<<
32305  *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
32306  *
32307  */
32308   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *)__pyx_v_self->cyPivot)->pivotMethodObject, __pyx_n_s_checkVar); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1980, __pyx_L1_error)
32309   __Pyx_GOTREF(__pyx_t_2);
32310   __pyx_t_3 = NULL;
32311   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
32312     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
32313     if (likely(__pyx_t_3)) {
32314       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
32315       __Pyx_INCREF(__pyx_t_3);
32316       __Pyx_INCREF(function);
32317       __Pyx_DECREF_SET(__pyx_t_2, function);
32318     }
32319   }
32320   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i);
32321   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
32322   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1980, __pyx_L1_error)
32323   __Pyx_GOTREF(__pyx_t_1);
32324   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32325   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32326 
32327   /* "cylp/cy/CyClpSimplex.pyx":1981
32328  *     def checkVar(self, i):
32329  *         (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
32330  *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)             # <<<<<<<<<<<<<<
32331  *
32332  *     def setPrimalColumnPivotAlgorithmToWolfe(self):
32333  */
32334   __Pyx_XDECREF(__pyx_r);
32335   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *)__pyx_v_self->cyPivot)->pivotMethodObject, __pyx_n_s_checkVar); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1981, __pyx_L1_error)
32336   __Pyx_GOTREF(__pyx_t_2);
32337   __pyx_t_3 = NULL;
32338   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
32339     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
32340     if (likely(__pyx_t_3)) {
32341       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
32342       __Pyx_INCREF(__pyx_t_3);
32343       __Pyx_INCREF(function);
32344       __Pyx_DECREF_SET(__pyx_t_2, function);
32345     }
32346   }
32347   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i);
32348   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
32349   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1981, __pyx_L1_error)
32350   __Pyx_GOTREF(__pyx_t_1);
32351   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32352   __pyx_r = __pyx_t_1;
32353   __pyx_t_1 = 0;
32354   goto __pyx_L0;
32355 
32356   /* "cylp/cy/CyClpSimplex.pyx":1979
32357  *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
32358  *
32359  *     def checkVar(self, i):             # <<<<<<<<<<<<<<
32360  *         (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
32361  *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
32362  */
32363 
32364   /* function exit code */
32365   __pyx_L1_error:;
32366   __Pyx_XDECREF(__pyx_t_1);
32367   __Pyx_XDECREF(__pyx_t_2);
32368   __Pyx_XDECREF(__pyx_t_3);
32369   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.checkVar", __pyx_clineno, __pyx_lineno, __pyx_filename);
32370   __pyx_r = NULL;
32371   __pyx_L0:;
32372   __Pyx_XGIVEREF(__pyx_r);
32373   __Pyx_TraceReturn(__pyx_r, 0);
32374   __Pyx_RefNannyFinishContext();
32375   return __pyx_r;
32376 }
32377 
32378 /* "cylp/cy/CyClpSimplex.pyx":1983
32379  *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
32380  *
32381  *     def setPrimalColumnPivotAlgorithmToWolfe(self):             # <<<<<<<<<<<<<<
32382  *         '''
32383  *         Set primal simplex's pivot rule to the Cython implementation of
32384  */
32385 
32386 /* Python wrapper */
32387 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_177setPrimalColumnPivotAlgorithmToWolfe(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
32388 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_176setPrimalColumnPivotAlgorithmToWolfe[] = "CyClpSimplex.setPrimalColumnPivotAlgorithmToWolfe(self)\n\n        Set primal simplex's pivot rule to the Cython implementation of\n        Wolfe's rule used to solve QPs.\n        ";
32389 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_177setPrimalColumnPivotAlgorithmToWolfe(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
32390   PyObject *__pyx_r = 0;
32391   __Pyx_RefNannyDeclarations
32392   __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithmToWolfe (wrapper)", 0);
32393   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_176setPrimalColumnPivotAlgorithmToWolfe(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
32394 
32395   /* function exit code */
32396   __Pyx_RefNannyFinishContext();
32397   return __pyx_r;
32398 }
32399 
32400 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_176setPrimalColumnPivotAlgorithmToWolfe(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
32401   struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot *__pyx_v_wp = 0;
32402   PyObject *__pyx_r = NULL;
32403   __Pyx_TraceDeclarations
32404   __Pyx_RefNannyDeclarations
32405   PyObject *__pyx_t_1 = NULL;
32406   int __pyx_lineno = 0;
32407   const char *__pyx_filename = NULL;
32408   int __pyx_clineno = 0;
32409   __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithmToWolfe", 0);
32410   __Pyx_TraceCall("setPrimalColumnPivotAlgorithmToWolfe", __pyx_f[0], 1983, 0, __PYX_ERR(0, 1983, __pyx_L1_error));
32411 
32412   /* "cylp/cy/CyClpSimplex.pyx":1988
32413  *         Wolfe's rule used to solve QPs.
32414  *         '''
32415  *         cdef CyWolfePivot wp = CyWolfePivot()             # <<<<<<<<<<<<<<
32416  *         self.setPrimalColumnPivotAlgorithm(wp.CppSelf)
32417  *
32418  */
32419   __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_12CyWolfePivot_CyWolfePivot)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1988, __pyx_L1_error)
32420   __Pyx_GOTREF(__pyx_t_1);
32421   __pyx_v_wp = ((struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot *)__pyx_t_1);
32422   __pyx_t_1 = 0;
32423 
32424   /* "cylp/cy/CyClpSimplex.pyx":1989
32425  *         '''
32426  *         cdef CyWolfePivot wp = CyWolfePivot()
32427  *         self.setPrimalColumnPivotAlgorithm(wp.CppSelf)             # <<<<<<<<<<<<<<
32428  *
32429  *     def setPrimalColumnPivotAlgorithmToPE(self):
32430  */
32431   __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->setPrimalColumnPivotAlgorithm(__pyx_v_self, __pyx_v_wp->__pyx_base.CppSelf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1989, __pyx_L1_error)
32432   __Pyx_GOTREF(__pyx_t_1);
32433   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32434 
32435   /* "cylp/cy/CyClpSimplex.pyx":1983
32436  *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
32437  *
32438  *     def setPrimalColumnPivotAlgorithmToWolfe(self):             # <<<<<<<<<<<<<<
32439  *         '''
32440  *         Set primal simplex's pivot rule to the Cython implementation of
32441  */
32442 
32443   /* function exit code */
32444   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32445   goto __pyx_L0;
32446   __pyx_L1_error:;
32447   __Pyx_XDECREF(__pyx_t_1);
32448   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPrimalColumnPivotAlgorithmToWolfe", __pyx_clineno, __pyx_lineno, __pyx_filename);
32449   __pyx_r = NULL;
32450   __pyx_L0:;
32451   __Pyx_XDECREF((PyObject *)__pyx_v_wp);
32452   __Pyx_XGIVEREF(__pyx_r);
32453   __Pyx_TraceReturn(__pyx_r, 0);
32454   __Pyx_RefNannyFinishContext();
32455   return __pyx_r;
32456 }
32457 
32458 /* "cylp/cy/CyClpSimplex.pyx":1991
32459  *         self.setPrimalColumnPivotAlgorithm(wp.CppSelf)
32460  *
32461  *     def setPrimalColumnPivotAlgorithmToPE(self):             # <<<<<<<<<<<<<<
32462  *         '''
32463  *         Set primal simplex's pivot rule to the Cython
32464  */
32465 
32466 /* Python wrapper */
32467 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_179setPrimalColumnPivotAlgorithmToPE(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
32468 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_178setPrimalColumnPivotAlgorithmToPE[] = "CyClpSimplex.setPrimalColumnPivotAlgorithmToPE(self)\n\n        Set primal simplex's pivot rule to the Cython\n        implementation of *positive edge*\n        ";
32469 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_179setPrimalColumnPivotAlgorithmToPE(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
32470   PyObject *__pyx_r = 0;
32471   __Pyx_RefNannyDeclarations
32472   __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithmToPE (wrapper)", 0);
32473   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_178setPrimalColumnPivotAlgorithmToPE(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
32474 
32475   /* function exit code */
32476   __Pyx_RefNannyFinishContext();
32477   return __pyx_r;
32478 }
32479 
32480 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_178setPrimalColumnPivotAlgorithmToPE(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
32481   struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot *__pyx_v_pe = 0;
32482   PyObject *__pyx_r = NULL;
32483   __Pyx_TraceDeclarations
32484   __Pyx_RefNannyDeclarations
32485   PyObject *__pyx_t_1 = NULL;
32486   int __pyx_lineno = 0;
32487   const char *__pyx_filename = NULL;
32488   int __pyx_clineno = 0;
32489   __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithmToPE", 0);
32490   __Pyx_TraceCall("setPrimalColumnPivotAlgorithmToPE", __pyx_f[0], 1991, 0, __PYX_ERR(0, 1991, __pyx_L1_error));
32491 
32492   /* "cylp/cy/CyClpSimplex.pyx":1996
32493  *         implementation of *positive edge*
32494  *         '''
32495  *         cdef CyPEPivot pe = CyPEPivot()             # <<<<<<<<<<<<<<
32496  *         self.setPrimalColumnPivotAlgorithm(pe.CppSelf)
32497  *
32498  */
32499   __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_9CyPEPivot_CyPEPivot)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1996, __pyx_L1_error)
32500   __Pyx_GOTREF(__pyx_t_1);
32501   __pyx_v_pe = ((struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot *)__pyx_t_1);
32502   __pyx_t_1 = 0;
32503 
32504   /* "cylp/cy/CyClpSimplex.pyx":1997
32505  *         '''
32506  *         cdef CyPEPivot pe = CyPEPivot()
32507  *         self.setPrimalColumnPivotAlgorithm(pe.CppSelf)             # <<<<<<<<<<<<<<
32508  *
32509  *     def setPivotMethod(self, pivotMethodObject):
32510  */
32511   __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->setPrimalColumnPivotAlgorithm(__pyx_v_self, __pyx_v_pe->__pyx_base.CppSelf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1997, __pyx_L1_error)
32512   __Pyx_GOTREF(__pyx_t_1);
32513   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32514 
32515   /* "cylp/cy/CyClpSimplex.pyx":1991
32516  *         self.setPrimalColumnPivotAlgorithm(wp.CppSelf)
32517  *
32518  *     def setPrimalColumnPivotAlgorithmToPE(self):             # <<<<<<<<<<<<<<
32519  *         '''
32520  *         Set primal simplex's pivot rule to the Cython
32521  */
32522 
32523   /* function exit code */
32524   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32525   goto __pyx_L0;
32526   __pyx_L1_error:;
32527   __Pyx_XDECREF(__pyx_t_1);
32528   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPrimalColumnPivotAlgorithmToPE", __pyx_clineno, __pyx_lineno, __pyx_filename);
32529   __pyx_r = NULL;
32530   __pyx_L0:;
32531   __Pyx_XDECREF((PyObject *)__pyx_v_pe);
32532   __Pyx_XGIVEREF(__pyx_r);
32533   __Pyx_TraceReturn(__pyx_r, 0);
32534   __Pyx_RefNannyFinishContext();
32535   return __pyx_r;
32536 }
32537 
32538 /* "cylp/cy/CyClpSimplex.pyx":1999
32539  *         self.setPrimalColumnPivotAlgorithm(pe.CppSelf)
32540  *
32541  *     def setPivotMethod(self, pivotMethodObject):             # <<<<<<<<<<<<<<
32542  *         '''
32543  *         Takes a python object and sets it as the primal
32544  */
32545 
32546 /* Python wrapper */
32547 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_181setPivotMethod(PyObject *__pyx_v_self, PyObject *__pyx_v_pivotMethodObject); /*proto*/
32548 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_180setPivotMethod[] = "CyClpSimplex.setPivotMethod(self, pivotMethodObject)\n\n        Takes a python object and sets it as the primal\n        simplex pivot rule. ``pivotObjectMethod`` should\n        implement :py:class:`PivotPythonBase`.\n        See :ref:`how to use custom Python pivots\n        to solve LPs <custom-pivot-usage>`.\n        ";
32549 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_181setPivotMethod(PyObject *__pyx_v_self, PyObject *__pyx_v_pivotMethodObject) {
32550   PyObject *__pyx_r = 0;
32551   __Pyx_RefNannyDeclarations
32552   __Pyx_RefNannySetupContext("setPivotMethod (wrapper)", 0);
32553   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_180setPivotMethod(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_pivotMethodObject));
32554 
32555   /* function exit code */
32556   __Pyx_RefNannyFinishContext();
32557   return __pyx_r;
32558 }
32559 
32560 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_180setPivotMethod(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_pivotMethodObject) {
32561   struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *__pyx_v_p = 0;
32562   PyObject *__pyx_r = NULL;
32563   __Pyx_TraceDeclarations
32564   __Pyx_RefNannyDeclarations
32565   PyObject *__pyx_t_1 = NULL;
32566   PyObject *__pyx_t_2 = NULL;
32567   int __pyx_t_3;
32568   int __pyx_t_4;
32569   int __pyx_lineno = 0;
32570   const char *__pyx_filename = NULL;
32571   int __pyx_clineno = 0;
32572   __Pyx_RefNannySetupContext("setPivotMethod", 0);
32573   __Pyx_TraceCall("setPivotMethod", __pyx_f[0], 1999, 0, __PYX_ERR(0, 1999, __pyx_L1_error));
32574 
32575   /* "cylp/cy/CyClpSimplex.pyx":2007
32576  *         to solve LPs <custom-pivot-usage>`.
32577  *         '''
32578  *         if not issubclass(pivotMethodObject.__class__, PivotPythonBase):             # <<<<<<<<<<<<<<
32579  *             raise TypeError('pivotMethodObject should be of a \
32580  *                             class derived from PivotPythonBase')
32581  */
32582   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_pivotMethodObject, __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2007, __pyx_L1_error)
32583   __Pyx_GOTREF(__pyx_t_1);
32584   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PivotPythonBase); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2007, __pyx_L1_error)
32585   __Pyx_GOTREF(__pyx_t_2);
32586   __pyx_t_3 = PyObject_IsSubclass(__pyx_t_1, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 2007, __pyx_L1_error)
32587   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32588   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32589   __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0);
32590   if (unlikely(__pyx_t_4)) {
32591 
32592     /* "cylp/cy/CyClpSimplex.pyx":2008
32593  *         '''
32594  *         if not issubclass(pivotMethodObject.__class__, PivotPythonBase):
32595  *             raise TypeError('pivotMethodObject should be of a \             # <<<<<<<<<<<<<<
32596  *                             class derived from PivotPythonBase')
32597  *
32598  */
32599     __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2008, __pyx_L1_error)
32600     __Pyx_GOTREF(__pyx_t_2);
32601     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
32602     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32603     __PYX_ERR(0, 2008, __pyx_L1_error)
32604 
32605     /* "cylp/cy/CyClpSimplex.pyx":2007
32606  *         to solve LPs <custom-pivot-usage>`.
32607  *         '''
32608  *         if not issubclass(pivotMethodObject.__class__, PivotPythonBase):             # <<<<<<<<<<<<<<
32609  *             raise TypeError('pivotMethodObject should be of a \
32610  *                             class derived from PivotPythonBase')
32611  */
32612   }
32613 
32614   /* "cylp/cy/CyClpSimplex.pyx":2011
32615  *                             class derived from PivotPythonBase')
32616  *
32617  *         cdef CyPivotPythonBase p = CyPivotPythonBase(pivotMethodObject)             # <<<<<<<<<<<<<<
32618  *         self.cyPivot = p
32619  *         p.cyModel = self
32620  */
32621   __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase), __pyx_v_pivotMethodObject); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2011, __pyx_L1_error)
32622   __Pyx_GOTREF(__pyx_t_2);
32623   __pyx_v_p = ((struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *)__pyx_t_2);
32624   __pyx_t_2 = 0;
32625 
32626   /* "cylp/cy/CyClpSimplex.pyx":2012
32627  *
32628  *         cdef CyPivotPythonBase p = CyPivotPythonBase(pivotMethodObject)
32629  *         self.cyPivot = p             # <<<<<<<<<<<<<<
32630  *         p.cyModel = self
32631  *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)
32632  */
32633   __Pyx_INCREF(((PyObject *)__pyx_v_p));
32634   __Pyx_GIVEREF(((PyObject *)__pyx_v_p));
32635   __Pyx_GOTREF(__pyx_v_self->cyPivot);
32636   __Pyx_DECREF(((PyObject *)__pyx_v_self->cyPivot));
32637   __pyx_v_self->cyPivot = ((struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *)__pyx_v_p);
32638 
32639   /* "cylp/cy/CyClpSimplex.pyx":2013
32640  *         cdef CyPivotPythonBase p = CyPivotPythonBase(pivotMethodObject)
32641  *         self.cyPivot = p
32642  *         p.cyModel = self             # <<<<<<<<<<<<<<
32643  *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)
32644  *
32645  */
32646   __Pyx_INCREF(((PyObject *)__pyx_v_self));
32647   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
32648   __Pyx_GOTREF(__pyx_v_p->__pyx_base.cyModel);
32649   __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.cyModel));
32650   __pyx_v_p->__pyx_base.cyModel = __pyx_v_self;
32651 
32652   /* "cylp/cy/CyClpSimplex.pyx":2014
32653  *         self.cyPivot = p
32654  *         p.cyModel = self
32655  *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)             # <<<<<<<<<<<<<<
32656  *
32657  *     def setDualPivotMethod(self, dualPivotMethodObject):
32658  */
32659   __pyx_t_2 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->setPrimalColumnPivotAlgorithm(__pyx_v_self, __pyx_v_p->__pyx_base.CppSelf); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2014, __pyx_L1_error)
32660   __Pyx_GOTREF(__pyx_t_2);
32661   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32662 
32663   /* "cylp/cy/CyClpSimplex.pyx":1999
32664  *         self.setPrimalColumnPivotAlgorithm(pe.CppSelf)
32665  *
32666  *     def setPivotMethod(self, pivotMethodObject):             # <<<<<<<<<<<<<<
32667  *         '''
32668  *         Takes a python object and sets it as the primal
32669  */
32670 
32671   /* function exit code */
32672   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32673   goto __pyx_L0;
32674   __pyx_L1_error:;
32675   __Pyx_XDECREF(__pyx_t_1);
32676   __Pyx_XDECREF(__pyx_t_2);
32677   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPivotMethod", __pyx_clineno, __pyx_lineno, __pyx_filename);
32678   __pyx_r = NULL;
32679   __pyx_L0:;
32680   __Pyx_XDECREF((PyObject *)__pyx_v_p);
32681   __Pyx_XGIVEREF(__pyx_r);
32682   __Pyx_TraceReturn(__pyx_r, 0);
32683   __Pyx_RefNannyFinishContext();
32684   return __pyx_r;
32685 }
32686 
32687 /* "cylp/cy/CyClpSimplex.pyx":2016
32688  *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)
32689  *
32690  *     def setDualPivotMethod(self, dualPivotMethodObject):             # <<<<<<<<<<<<<<
32691  *         '''
32692  *         Takes a python object and sets it as the dual
32693  */
32694 
32695 /* Python wrapper */
32696 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_183setDualPivotMethod(PyObject *__pyx_v_self, PyObject *__pyx_v_dualPivotMethodObject); /*proto*/
32697 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_182setDualPivotMethod[] = "CyClpSimplex.setDualPivotMethod(self, dualPivotMethodObject)\n\n        Takes a python object and sets it as the dual\n        pivot rule. ``dualPivotObjectMethod`` should\n        implement :py:class:`DualPivotPythonBase`.\n        See :ref:`how to use custom dual Python pivots\n        to solve LPs <custom-dual-pivot-usage>`.       ";
32698 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_183setDualPivotMethod(PyObject *__pyx_v_self, PyObject *__pyx_v_dualPivotMethodObject) {
32699   PyObject *__pyx_r = 0;
32700   __Pyx_RefNannyDeclarations
32701   __Pyx_RefNannySetupContext("setDualPivotMethod (wrapper)", 0);
32702   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_182setDualPivotMethod(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_dualPivotMethodObject));
32703 
32704   /* function exit code */
32705   __Pyx_RefNannyFinishContext();
32706   return __pyx_r;
32707 }
32708 
32709 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_182setDualPivotMethod(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_dualPivotMethodObject) {
32710   struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase *__pyx_v_p = 0;
32711   PyObject *__pyx_r = NULL;
32712   __Pyx_TraceDeclarations
32713   __Pyx_RefNannyDeclarations
32714   PyObject *__pyx_t_1 = NULL;
32715   PyObject *__pyx_t_2 = NULL;
32716   int __pyx_t_3;
32717   int __pyx_t_4;
32718   int __pyx_lineno = 0;
32719   const char *__pyx_filename = NULL;
32720   int __pyx_clineno = 0;
32721   __Pyx_RefNannySetupContext("setDualPivotMethod", 0);
32722   __Pyx_TraceCall("setDualPivotMethod", __pyx_f[0], 2016, 0, __PYX_ERR(0, 2016, __pyx_L1_error));
32723 
32724   /* "cylp/cy/CyClpSimplex.pyx":2023
32725  *         See :ref:`how to use custom dual Python pivots
32726  *         to solve LPs <custom-dual-pivot-usage>`.       '''
32727  *         if not issubclass(dualPivotMethodObject.__class__, DualPivotPythonBase):             # <<<<<<<<<<<<<<
32728  *             raise TypeError('dualPivotMethodObject should be of a \
32729  *                             class derived from DualPivotPythonBase')
32730  */
32731   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dualPivotMethodObject, __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2023, __pyx_L1_error)
32732   __Pyx_GOTREF(__pyx_t_1);
32733   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DualPivotPythonBase); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2023, __pyx_L1_error)
32734   __Pyx_GOTREF(__pyx_t_2);
32735   __pyx_t_3 = PyObject_IsSubclass(__pyx_t_1, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 2023, __pyx_L1_error)
32736   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32737   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32738   __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0);
32739   if (unlikely(__pyx_t_4)) {
32740 
32741     /* "cylp/cy/CyClpSimplex.pyx":2024
32742  *         to solve LPs <custom-dual-pivot-usage>`.       '''
32743  *         if not issubclass(dualPivotMethodObject.__class__, DualPivotPythonBase):
32744  *             raise TypeError('dualPivotMethodObject should be of a \             # <<<<<<<<<<<<<<
32745  *                             class derived from DualPivotPythonBase')
32746  *
32747  */
32748     __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2024, __pyx_L1_error)
32749     __Pyx_GOTREF(__pyx_t_2);
32750     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
32751     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32752     __PYX_ERR(0, 2024, __pyx_L1_error)
32753 
32754     /* "cylp/cy/CyClpSimplex.pyx":2023
32755  *         See :ref:`how to use custom dual Python pivots
32756  *         to solve LPs <custom-dual-pivot-usage>`.       '''
32757  *         if not issubclass(dualPivotMethodObject.__class__, DualPivotPythonBase):             # <<<<<<<<<<<<<<
32758  *             raise TypeError('dualPivotMethodObject should be of a \
32759  *                             class derived from DualPivotPythonBase')
32760  */
32761   }
32762 
32763   /* "cylp/cy/CyClpSimplex.pyx":2027
32764  *                             class derived from DualPivotPythonBase')
32765  *
32766  *         cdef CyDualPivotPythonBase p = CyDualPivotPythonBase(dualPivotMethodObject)             # <<<<<<<<<<<<<<
32767  *         self.cyDualPivot = p
32768  *         p.cyModel = self
32769  */
32770   __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase), __pyx_v_dualPivotMethodObject); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2027, __pyx_L1_error)
32771   __Pyx_GOTREF(__pyx_t_2);
32772   __pyx_v_p = ((struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase *)__pyx_t_2);
32773   __pyx_t_2 = 0;
32774 
32775   /* "cylp/cy/CyClpSimplex.pyx":2028
32776  *
32777  *         cdef CyDualPivotPythonBase p = CyDualPivotPythonBase(dualPivotMethodObject)
32778  *         self.cyDualPivot = p             # <<<<<<<<<<<<<<
32779  *         p.cyModel = self
32780  *         self.setDualRowPivotAlgorithm(p.CppSelf)
32781  */
32782   __Pyx_INCREF(((PyObject *)__pyx_v_p));
32783   __Pyx_GIVEREF(((PyObject *)__pyx_v_p));
32784   __Pyx_GOTREF(__pyx_v_self->cyDualPivot);
32785   __Pyx_DECREF(((PyObject *)__pyx_v_self->cyDualPivot));
32786   __pyx_v_self->cyDualPivot = ((struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *)__pyx_v_p);
32787 
32788   /* "cylp/cy/CyClpSimplex.pyx":2029
32789  *         cdef CyDualPivotPythonBase p = CyDualPivotPythonBase(dualPivotMethodObject)
32790  *         self.cyDualPivot = p
32791  *         p.cyModel = self             # <<<<<<<<<<<<<<
32792  *         self.setDualRowPivotAlgorithm(p.CppSelf)
32793  *
32794  */
32795   __Pyx_INCREF(((PyObject *)__pyx_v_self));
32796   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
32797   __Pyx_GOTREF(__pyx_v_p->__pyx_base.cyModel);
32798   __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.cyModel));
32799   __pyx_v_p->__pyx_base.cyModel = __pyx_v_self;
32800 
32801   /* "cylp/cy/CyClpSimplex.pyx":2030
32802  *         self.cyDualPivot = p
32803  *         p.cyModel = self
32804  *         self.setDualRowPivotAlgorithm(p.CppSelf)             # <<<<<<<<<<<<<<
32805  *
32806  *
32807  */
32808   __pyx_t_2 = ((struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self->__pyx_vtab)->setDualRowPivotAlgorithm(__pyx_v_self, __pyx_v_p->__pyx_base.CppSelf); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2030, __pyx_L1_error)
32809   __Pyx_GOTREF(__pyx_t_2);
32810   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32811 
32812   /* "cylp/cy/CyClpSimplex.pyx":2016
32813  *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)
32814  *
32815  *     def setDualPivotMethod(self, dualPivotMethodObject):             # <<<<<<<<<<<<<<
32816  *         '''
32817  *         Takes a python object and sets it as the dual
32818  */
32819 
32820   /* function exit code */
32821   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32822   goto __pyx_L0;
32823   __pyx_L1_error:;
32824   __Pyx_XDECREF(__pyx_t_1);
32825   __Pyx_XDECREF(__pyx_t_2);
32826   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setDualPivotMethod", __pyx_clineno, __pyx_lineno, __pyx_filename);
32827   __pyx_r = NULL;
32828   __pyx_L0:;
32829   __Pyx_XDECREF((PyObject *)__pyx_v_p);
32830   __Pyx_XGIVEREF(__pyx_r);
32831   __Pyx_TraceReturn(__pyx_r, 0);
32832   __Pyx_RefNannyFinishContext();
32833   return __pyx_r;
32834 }
32835 
32836 /* "cylp/cy/CyClpSimplex.pyx":2033
32837  *
32838  *
32839  *     cpdef filterVars(self,  inds):             # <<<<<<<<<<<<<<
32840  *         return <object>self.CppSelf.filterVars(<PyObject*>inds)
32841  *
32842  */
32843 
32844 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars(PyObject *__pyx_v_self, PyObject *__pyx_v_inds); /*proto*/
32845 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_filterVars(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_inds, int __pyx_skip_dispatch) {
32846   PyObject *__pyx_r = NULL;
32847   __Pyx_TraceDeclarations
32848   __Pyx_RefNannyDeclarations
32849   PyObject *__pyx_t_1 = NULL;
32850   PyObject *__pyx_t_2 = NULL;
32851   PyObject *__pyx_t_3 = NULL;
32852   PyObject *__pyx_t_4 = NULL;
32853   PyObject *__pyx_t_5;
32854   int __pyx_lineno = 0;
32855   const char *__pyx_filename = NULL;
32856   int __pyx_clineno = 0;
32857   __Pyx_RefNannySetupContext("filterVars", 0);
32858   __Pyx_TraceCall("filterVars", __pyx_f[0], 2033, 0, __PYX_ERR(0, 2033, __pyx_L1_error));
32859   /* Check if called by wrapper */
32860   if (unlikely(__pyx_skip_dispatch)) ;
32861   /* Check if overridden in Python */
32862   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
32863     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
32864     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
32865     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
32866       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
32867       #endif
32868       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filterVars); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2033, __pyx_L1_error)
32869       __Pyx_GOTREF(__pyx_t_1);
32870       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars)) {
32871         __Pyx_XDECREF(__pyx_r);
32872         __Pyx_INCREF(__pyx_t_1);
32873         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
32874         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
32875           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
32876           if (likely(__pyx_t_4)) {
32877             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
32878             __Pyx_INCREF(__pyx_t_4);
32879             __Pyx_INCREF(function);
32880             __Pyx_DECREF_SET(__pyx_t_3, function);
32881           }
32882         }
32883         __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_inds) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_inds);
32884         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
32885         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2033, __pyx_L1_error)
32886         __Pyx_GOTREF(__pyx_t_2);
32887         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
32888         __pyx_r = __pyx_t_2;
32889         __pyx_t_2 = 0;
32890         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32891         goto __pyx_L0;
32892       }
32893       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
32894       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
32895       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
32896       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
32897         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
32898       }
32899       #endif
32900       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32901       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
32902     }
32903     #endif
32904   }
32905 
32906   /* "cylp/cy/CyClpSimplex.pyx":2034
32907  *
32908  *     cpdef filterVars(self,  inds):
32909  *         return <object>self.CppSelf.filterVars(<PyObject*>inds)             # <<<<<<<<<<<<<<
32910  *
32911  *     def setObjectiveCoefficient(self, elementIndex, elementValue):
32912  */
32913   __Pyx_XDECREF(__pyx_r);
32914   __pyx_t_5 = __pyx_v_self->CppSelf->filterVars(((PyObject *)__pyx_v_inds));
32915   __Pyx_INCREF(((PyObject *)__pyx_t_5));
32916   __pyx_r = ((PyObject *)__pyx_t_5);
32917   goto __pyx_L0;
32918 
32919   /* "cylp/cy/CyClpSimplex.pyx":2033
32920  *
32921  *
32922  *     cpdef filterVars(self,  inds):             # <<<<<<<<<<<<<<
32923  *         return <object>self.CppSelf.filterVars(<PyObject*>inds)
32924  *
32925  */
32926 
32927   /* function exit code */
32928   __pyx_L1_error:;
32929   __Pyx_XDECREF(__pyx_t_1);
32930   __Pyx_XDECREF(__pyx_t_2);
32931   __Pyx_XDECREF(__pyx_t_3);
32932   __Pyx_XDECREF(__pyx_t_4);
32933   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.filterVars", __pyx_clineno, __pyx_lineno, __pyx_filename);
32934   __pyx_r = 0;
32935   __pyx_L0:;
32936   __Pyx_XGIVEREF(__pyx_r);
32937   __Pyx_TraceReturn(__pyx_r, 0);
32938   __Pyx_RefNannyFinishContext();
32939   return __pyx_r;
32940 }
32941 
32942 /* Python wrapper */
32943 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars(PyObject *__pyx_v_self, PyObject *__pyx_v_inds); /*proto*/
32944 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars[] = "CyClpSimplex.filterVars(self, inds)";
32945 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars(PyObject *__pyx_v_self, PyObject *__pyx_v_inds) {
32946   PyObject *__pyx_r = 0;
32947   __Pyx_RefNannyDeclarations
32948   __Pyx_RefNannySetupContext("filterVars (wrapper)", 0);
32949   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_inds));
32950 
32951   /* function exit code */
32952   __Pyx_RefNannyFinishContext();
32953   return __pyx_r;
32954 }
32955 
32956 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_inds) {
32957   PyObject *__pyx_r = NULL;
32958   __Pyx_TraceDeclarations
32959   __Pyx_RefNannyDeclarations
32960   PyObject *__pyx_t_1 = NULL;
32961   int __pyx_lineno = 0;
32962   const char *__pyx_filename = NULL;
32963   int __pyx_clineno = 0;
32964   __Pyx_RefNannySetupContext("filterVars", 0);
32965   __Pyx_TraceCall("filterVars (wrapper)", __pyx_f[0], 2033, 0, __PYX_ERR(0, 2033, __pyx_L1_error));
32966   __Pyx_XDECREF(__pyx_r);
32967   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_filterVars(__pyx_v_self, __pyx_v_inds, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2033, __pyx_L1_error)
32968   __Pyx_GOTREF(__pyx_t_1);
32969   __pyx_r = __pyx_t_1;
32970   __pyx_t_1 = 0;
32971   goto __pyx_L0;
32972 
32973   /* function exit code */
32974   __pyx_L1_error:;
32975   __Pyx_XDECREF(__pyx_t_1);
32976   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.filterVars", __pyx_clineno, __pyx_lineno, __pyx_filename);
32977   __pyx_r = NULL;
32978   __pyx_L0:;
32979   __Pyx_XGIVEREF(__pyx_r);
32980   __Pyx_TraceReturn(__pyx_r, 0);
32981   __Pyx_RefNannyFinishContext();
32982   return __pyx_r;
32983 }
32984 
32985 /* "cylp/cy/CyClpSimplex.pyx":2036
32986  *         return <object>self.CppSelf.filterVars(<PyObject*>inds)
32987  *
32988  *     def setObjectiveCoefficient(self, elementIndex, elementValue):             # <<<<<<<<<<<<<<
32989  *         '''
32990  *         Set the objective coefficients using sparse vector elements
32991  */
32992 
32993 /* Python wrapper */
32994 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_187setObjectiveCoefficient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
32995 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_186setObjectiveCoefficient[] = "CyClpSimplex.setObjectiveCoefficient(self, elementIndex, elementValue)\n\n        Set the objective coefficients using sparse vector elements\n        ``elementIndex`` and ``elementValue``.\n        ";
32996 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_187setObjectiveCoefficient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
32997   PyObject *__pyx_v_elementIndex = 0;
32998   PyObject *__pyx_v_elementValue = 0;
32999   int __pyx_lineno = 0;
33000   const char *__pyx_filename = NULL;
33001   int __pyx_clineno = 0;
33002   PyObject *__pyx_r = 0;
33003   __Pyx_RefNannyDeclarations
33004   __Pyx_RefNannySetupContext("setObjectiveCoefficient (wrapper)", 0);
33005   {
33006     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementIndex,&__pyx_n_s_elementValue,0};
33007     PyObject* values[2] = {0,0};
33008     if (unlikely(__pyx_kwds)) {
33009       Py_ssize_t kw_args;
33010       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
33011       switch (pos_args) {
33012         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33013         CYTHON_FALLTHROUGH;
33014         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33015         CYTHON_FALLTHROUGH;
33016         case  0: break;
33017         default: goto __pyx_L5_argtuple_error;
33018       }
33019       kw_args = PyDict_Size(__pyx_kwds);
33020       switch (pos_args) {
33021         case  0:
33022         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementIndex)) != 0)) kw_args--;
33023         else goto __pyx_L5_argtuple_error;
33024         CYTHON_FALLTHROUGH;
33025         case  1:
33026         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementValue)) != 0)) kw_args--;
33027         else {
33028           __Pyx_RaiseArgtupleInvalid("setObjectiveCoefficient", 1, 2, 2, 1); __PYX_ERR(0, 2036, __pyx_L3_error)
33029         }
33030       }
33031       if (unlikely(kw_args > 0)) {
33032         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setObjectiveCoefficient") < 0)) __PYX_ERR(0, 2036, __pyx_L3_error)
33033       }
33034     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
33035       goto __pyx_L5_argtuple_error;
33036     } else {
33037       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33038       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33039     }
33040     __pyx_v_elementIndex = values[0];
33041     __pyx_v_elementValue = values[1];
33042   }
33043   goto __pyx_L4_argument_unpacking_done;
33044   __pyx_L5_argtuple_error:;
33045   __Pyx_RaiseArgtupleInvalid("setObjectiveCoefficient", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2036, __pyx_L3_error)
33046   __pyx_L3_error:;
33047   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setObjectiveCoefficient", __pyx_clineno, __pyx_lineno, __pyx_filename);
33048   __Pyx_RefNannyFinishContext();
33049   return NULL;
33050   __pyx_L4_argument_unpacking_done:;
33051   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_186setObjectiveCoefficient(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_elementIndex, __pyx_v_elementValue);
33052 
33053   /* function exit code */
33054   __Pyx_RefNannyFinishContext();
33055   return __pyx_r;
33056 }
33057 
33058 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_186setObjectiveCoefficient(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_elementIndex, PyObject *__pyx_v_elementValue) {
33059   PyObject *__pyx_r = NULL;
33060   __Pyx_TraceDeclarations
33061   __Pyx_RefNannyDeclarations
33062   int __pyx_t_1;
33063   double __pyx_t_2;
33064   int __pyx_lineno = 0;
33065   const char *__pyx_filename = NULL;
33066   int __pyx_clineno = 0;
33067   __Pyx_RefNannySetupContext("setObjectiveCoefficient", 0);
33068   __Pyx_TraceCall("setObjectiveCoefficient", __pyx_f[0], 2036, 0, __PYX_ERR(0, 2036, __pyx_L1_error));
33069 
33070   /* "cylp/cy/CyClpSimplex.pyx":2041
33071  *         ``elementIndex`` and ``elementValue``.
33072  *         '''
33073  *         self.CppSelf.setObjectiveCoefficient(elementIndex, elementValue)             # <<<<<<<<<<<<<<
33074  *
33075  *     def partialPricing(self, start, end,
33076  */
33077   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_elementIndex); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2041, __pyx_L1_error)
33078   __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_elementValue); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2041, __pyx_L1_error)
33079   __pyx_v_self->CppSelf->setObjectiveCoefficient(__pyx_t_1, __pyx_t_2);
33080 
33081   /* "cylp/cy/CyClpSimplex.pyx":2036
33082  *         return <object>self.CppSelf.filterVars(<PyObject*>inds)
33083  *
33084  *     def setObjectiveCoefficient(self, elementIndex, elementValue):             # <<<<<<<<<<<<<<
33085  *         '''
33086  *         Set the objective coefficients using sparse vector elements
33087  */
33088 
33089   /* function exit code */
33090   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33091   goto __pyx_L0;
33092   __pyx_L1_error:;
33093   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setObjectiveCoefficient", __pyx_clineno, __pyx_lineno, __pyx_filename);
33094   __pyx_r = NULL;
33095   __pyx_L0:;
33096   __Pyx_XGIVEREF(__pyx_r);
33097   __Pyx_TraceReturn(__pyx_r, 0);
33098   __Pyx_RefNannyFinishContext();
33099   return __pyx_r;
33100 }
33101 
33102 /* "cylp/cy/CyClpSimplex.pyx":2043
33103  *         self.CppSelf.setObjectiveCoefficient(elementIndex, elementValue)
33104  *
33105  *     def partialPricing(self, start, end,             # <<<<<<<<<<<<<<
33106  *                       np.ndarray[np.int32_t, ndim=1] numberWanted):
33107  *         '''
33108  */
33109 
33110 /* Python wrapper */
33111 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_189partialPricing(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33112 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_188partialPricing[] = "CyClpSimplex.partialPricing(self, start, end, ndarray numberWanted)\n\n        Perform partial pricing from variable ``start`` to variable ``end``.\n        Stop when ``numberWanted`` variables good variable checked.\n        ";
33113 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_189partialPricing(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
33114   PyObject *__pyx_v_start = 0;
33115   PyObject *__pyx_v_end = 0;
33116   PyArrayObject *__pyx_v_numberWanted = 0;
33117   int __pyx_lineno = 0;
33118   const char *__pyx_filename = NULL;
33119   int __pyx_clineno = 0;
33120   PyObject *__pyx_r = 0;
33121   __Pyx_RefNannyDeclarations
33122   __Pyx_RefNannySetupContext("partialPricing (wrapper)", 0);
33123   {
33124     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_start,&__pyx_n_s_end,&__pyx_n_s_numberWanted,0};
33125     PyObject* values[3] = {0,0,0};
33126     if (unlikely(__pyx_kwds)) {
33127       Py_ssize_t kw_args;
33128       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
33129       switch (pos_args) {
33130         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33131         CYTHON_FALLTHROUGH;
33132         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33133         CYTHON_FALLTHROUGH;
33134         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33135         CYTHON_FALLTHROUGH;
33136         case  0: break;
33137         default: goto __pyx_L5_argtuple_error;
33138       }
33139       kw_args = PyDict_Size(__pyx_kwds);
33140       switch (pos_args) {
33141         case  0:
33142         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start)) != 0)) kw_args--;
33143         else goto __pyx_L5_argtuple_error;
33144         CYTHON_FALLTHROUGH;
33145         case  1:
33146         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end)) != 0)) kw_args--;
33147         else {
33148           __Pyx_RaiseArgtupleInvalid("partialPricing", 1, 3, 3, 1); __PYX_ERR(0, 2043, __pyx_L3_error)
33149         }
33150         CYTHON_FALLTHROUGH;
33151         case  2:
33152         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberWanted)) != 0)) kw_args--;
33153         else {
33154           __Pyx_RaiseArgtupleInvalid("partialPricing", 1, 3, 3, 2); __PYX_ERR(0, 2043, __pyx_L3_error)
33155         }
33156       }
33157       if (unlikely(kw_args > 0)) {
33158         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "partialPricing") < 0)) __PYX_ERR(0, 2043, __pyx_L3_error)
33159       }
33160     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
33161       goto __pyx_L5_argtuple_error;
33162     } else {
33163       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33164       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33165       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33166     }
33167     __pyx_v_start = values[0];
33168     __pyx_v_end = values[1];
33169     __pyx_v_numberWanted = ((PyArrayObject *)values[2]);
33170   }
33171   goto __pyx_L4_argument_unpacking_done;
33172   __pyx_L5_argtuple_error:;
33173   __Pyx_RaiseArgtupleInvalid("partialPricing", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2043, __pyx_L3_error)
33174   __pyx_L3_error:;
33175   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.partialPricing", __pyx_clineno, __pyx_lineno, __pyx_filename);
33176   __Pyx_RefNannyFinishContext();
33177   return NULL;
33178   __pyx_L4_argument_unpacking_done:;
33179   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_numberWanted), __pyx_ptype_5numpy_ndarray, 1, "numberWanted", 0))) __PYX_ERR(0, 2044, __pyx_L1_error)
33180   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_188partialPricing(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_start, __pyx_v_end, __pyx_v_numberWanted);
33181 
33182   /* function exit code */
33183   goto __pyx_L0;
33184   __pyx_L1_error:;
33185   __pyx_r = NULL;
33186   __pyx_L0:;
33187   __Pyx_RefNannyFinishContext();
33188   return __pyx_r;
33189 }
33190 
33191 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_188partialPricing(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_end, PyArrayObject *__pyx_v_numberWanted) {
33192   __Pyx_LocalBuf_ND __pyx_pybuffernd_numberWanted;
33193   __Pyx_Buffer __pyx_pybuffer_numberWanted;
33194   PyObject *__pyx_r = NULL;
33195   __Pyx_TraceDeclarations
33196   __Pyx_RefNannyDeclarations
33197   int __pyx_t_1;
33198   int __pyx_t_2;
33199   PyObject *__pyx_t_3 = NULL;
33200   int __pyx_lineno = 0;
33201   const char *__pyx_filename = NULL;
33202   int __pyx_clineno = 0;
33203   __Pyx_RefNannySetupContext("partialPricing", 0);
33204   __Pyx_TraceCall("partialPricing", __pyx_f[0], 2043, 0, __PYX_ERR(0, 2043, __pyx_L1_error));
33205   __pyx_pybuffer_numberWanted.pybuffer.buf = NULL;
33206   __pyx_pybuffer_numberWanted.refcount = 0;
33207   __pyx_pybuffernd_numberWanted.data = NULL;
33208   __pyx_pybuffernd_numberWanted.rcbuffer = &__pyx_pybuffer_numberWanted;
33209   {
33210     __Pyx_BufFmt_StackElem __pyx_stack[1];
33211     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_numberWanted.rcbuffer->pybuffer, (PyObject*)__pyx_v_numberWanted, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2043, __pyx_L1_error)
33212   }
33213   __pyx_pybuffernd_numberWanted.diminfo[0].strides = __pyx_pybuffernd_numberWanted.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_numberWanted.diminfo[0].shape = __pyx_pybuffernd_numberWanted.rcbuffer->pybuffer.shape[0];
33214 
33215   /* "cylp/cy/CyClpSimplex.pyx":2049
33216  *         Stop when ``numberWanted`` variables good variable checked.
33217  *         '''
33218  *         return self.CppSelf.partialPrice(start, end, <int*>numberWanted.data)             # <<<<<<<<<<<<<<
33219  *
33220  *     def setComplementarityList(self, np.ndarray[np.int32_t, ndim=1] cl):
33221  */
33222   __Pyx_XDECREF(__pyx_r);
33223   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_start); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2049, __pyx_L1_error)
33224   __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_end); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2049, __pyx_L1_error)
33225   __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->partialPrice(__pyx_t_1, __pyx_t_2, ((int *)__pyx_v_numberWanted->data))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2049, __pyx_L1_error)
33226   __Pyx_GOTREF(__pyx_t_3);
33227   __pyx_r = __pyx_t_3;
33228   __pyx_t_3 = 0;
33229   goto __pyx_L0;
33230 
33231   /* "cylp/cy/CyClpSimplex.pyx":2043
33232  *         self.CppSelf.setObjectiveCoefficient(elementIndex, elementValue)
33233  *
33234  *     def partialPricing(self, start, end,             # <<<<<<<<<<<<<<
33235  *                       np.ndarray[np.int32_t, ndim=1] numberWanted):
33236  *         '''
33237  */
33238 
33239   /* function exit code */
33240   __pyx_L1_error:;
33241   __Pyx_XDECREF(__pyx_t_3);
33242   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
33243     __Pyx_PyThreadState_declare
33244     __Pyx_PyThreadState_assign
33245     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
33246     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_numberWanted.rcbuffer->pybuffer);
33247   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
33248   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.partialPricing", __pyx_clineno, __pyx_lineno, __pyx_filename);
33249   __pyx_r = NULL;
33250   goto __pyx_L2;
33251   __pyx_L0:;
33252   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_numberWanted.rcbuffer->pybuffer);
33253   __pyx_L2:;
33254   __Pyx_XGIVEREF(__pyx_r);
33255   __Pyx_TraceReturn(__pyx_r, 0);
33256   __Pyx_RefNannyFinishContext();
33257   return __pyx_r;
33258 }
33259 
33260 /* "cylp/cy/CyClpSimplex.pyx":2051
33261  *         return self.CppSelf.partialPrice(start, end, <int*>numberWanted.data)
33262  *
33263  *     def setComplementarityList(self, np.ndarray[np.int32_t, ndim=1] cl):             # <<<<<<<<<<<<<<
33264  *         self.CppSelf.setComplementarityList(<int*>cl.data)
33265  *
33266  */
33267 
33268 /* Python wrapper */
33269 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_191setComplementarityList(PyObject *__pyx_v_self, PyObject *__pyx_v_cl); /*proto*/
33270 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList[] = "CyClpSimplex.setComplementarityList(self, ndarray cl)";
33271 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_191setComplementarityList(PyObject *__pyx_v_self, PyObject *__pyx_v_cl) {
33272   int __pyx_lineno = 0;
33273   const char *__pyx_filename = NULL;
33274   int __pyx_clineno = 0;
33275   PyObject *__pyx_r = 0;
33276   __Pyx_RefNannyDeclarations
33277   __Pyx_RefNannySetupContext("setComplementarityList (wrapper)", 0);
33278   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cl), __pyx_ptype_5numpy_ndarray, 1, "cl", 0))) __PYX_ERR(0, 2051, __pyx_L1_error)
33279   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_cl));
33280 
33281   /* function exit code */
33282   goto __pyx_L0;
33283   __pyx_L1_error:;
33284   __pyx_r = NULL;
33285   __pyx_L0:;
33286   __Pyx_RefNannyFinishContext();
33287   return __pyx_r;
33288 }
33289 
33290 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_cl) {
33291   __Pyx_LocalBuf_ND __pyx_pybuffernd_cl;
33292   __Pyx_Buffer __pyx_pybuffer_cl;
33293   PyObject *__pyx_r = NULL;
33294   __Pyx_TraceDeclarations
33295   __Pyx_RefNannyDeclarations
33296   int __pyx_lineno = 0;
33297   const char *__pyx_filename = NULL;
33298   int __pyx_clineno = 0;
33299   __Pyx_RefNannySetupContext("setComplementarityList", 0);
33300   __Pyx_TraceCall("setComplementarityList", __pyx_f[0], 2051, 0, __PYX_ERR(0, 2051, __pyx_L1_error));
33301   __pyx_pybuffer_cl.pybuffer.buf = NULL;
33302   __pyx_pybuffer_cl.refcount = 0;
33303   __pyx_pybuffernd_cl.data = NULL;
33304   __pyx_pybuffernd_cl.rcbuffer = &__pyx_pybuffer_cl;
33305   {
33306     __Pyx_BufFmt_StackElem __pyx_stack[1];
33307     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cl.rcbuffer->pybuffer, (PyObject*)__pyx_v_cl, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2051, __pyx_L1_error)
33308   }
33309   __pyx_pybuffernd_cl.diminfo[0].strides = __pyx_pybuffernd_cl.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cl.diminfo[0].shape = __pyx_pybuffernd_cl.rcbuffer->pybuffer.shape[0];
33310 
33311   /* "cylp/cy/CyClpSimplex.pyx":2052
33312  *
33313  *     def setComplementarityList(self, np.ndarray[np.int32_t, ndim=1] cl):
33314  *         self.CppSelf.setComplementarityList(<int*>cl.data)             # <<<<<<<<<<<<<<
33315  *
33316  *     cpdef getACol(self, int ncol, CyCoinIndexedVector colArray):
33317  */
33318   __pyx_v_self->CppSelf->setComplementarityList(((int *)__pyx_v_cl->data));
33319 
33320   /* "cylp/cy/CyClpSimplex.pyx":2051
33321  *         return self.CppSelf.partialPrice(start, end, <int*>numberWanted.data)
33322  *
33323  *     def setComplementarityList(self, np.ndarray[np.int32_t, ndim=1] cl):             # <<<<<<<<<<<<<<
33324  *         self.CppSelf.setComplementarityList(<int*>cl.data)
33325  *
33326  */
33327 
33328   /* function exit code */
33329   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33330   goto __pyx_L0;
33331   __pyx_L1_error:;
33332   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
33333     __Pyx_PyThreadState_declare
33334     __Pyx_PyThreadState_assign
33335     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
33336     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
33337   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
33338   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setComplementarityList", __pyx_clineno, __pyx_lineno, __pyx_filename);
33339   __pyx_r = NULL;
33340   goto __pyx_L2;
33341   __pyx_L0:;
33342   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
33343   __pyx_L2:;
33344   __Pyx_XGIVEREF(__pyx_r);
33345   __Pyx_TraceReturn(__pyx_r, 0);
33346   __Pyx_RefNannyFinishContext();
33347   return __pyx_r;
33348 }
33349 
33350 /* "cylp/cy/CyClpSimplex.pyx":2054
33351  *         self.CppSelf.setComplementarityList(<int*>cl.data)
33352  *
33353  *     cpdef getACol(self, int ncol, CyCoinIndexedVector colArray):             # <<<<<<<<<<<<<<
33354  *         '''
33355  *         Gets column ``ncol`` of ``A`` and store it in ``colArray``.
33356  */
33357 
33358 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33359 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getACol(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_ncol, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_colArray, int __pyx_skip_dispatch) {
33360   PyObject *__pyx_r = NULL;
33361   __Pyx_TraceDeclarations
33362   __Pyx_RefNannyDeclarations
33363   PyObject *__pyx_t_1 = NULL;
33364   PyObject *__pyx_t_2 = NULL;
33365   PyObject *__pyx_t_3 = NULL;
33366   PyObject *__pyx_t_4 = NULL;
33367   PyObject *__pyx_t_5 = NULL;
33368   int __pyx_t_6;
33369   PyObject *__pyx_t_7 = NULL;
33370   int __pyx_lineno = 0;
33371   const char *__pyx_filename = NULL;
33372   int __pyx_clineno = 0;
33373   __Pyx_RefNannySetupContext("getACol", 0);
33374   __Pyx_TraceCall("getACol", __pyx_f[0], 2054, 0, __PYX_ERR(0, 2054, __pyx_L1_error));
33375   /* Check if called by wrapper */
33376   if (unlikely(__pyx_skip_dispatch)) ;
33377   /* Check if overridden in Python */
33378   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
33379     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
33380     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
33381     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
33382       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
33383       #endif
33384       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getACol); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2054, __pyx_L1_error)
33385       __Pyx_GOTREF(__pyx_t_1);
33386       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol)) {
33387         __Pyx_XDECREF(__pyx_r);
33388         __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ncol); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2054, __pyx_L1_error)
33389         __Pyx_GOTREF(__pyx_t_3);
33390         __Pyx_INCREF(__pyx_t_1);
33391         __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
33392         __pyx_t_6 = 0;
33393         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
33394           __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
33395           if (likely(__pyx_t_5)) {
33396             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
33397             __Pyx_INCREF(__pyx_t_5);
33398             __Pyx_INCREF(function);
33399             __Pyx_DECREF_SET(__pyx_t_4, function);
33400             __pyx_t_6 = 1;
33401           }
33402         }
33403         #if CYTHON_FAST_PYCALL
33404         if (PyFunction_Check(__pyx_t_4)) {
33405           PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, ((PyObject *)__pyx_v_colArray)};
33406           __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2054, __pyx_L1_error)
33407           __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
33408           __Pyx_GOTREF(__pyx_t_2);
33409           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
33410         } else
33411         #endif
33412         #if CYTHON_FAST_PYCCALL
33413         if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
33414           PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, ((PyObject *)__pyx_v_colArray)};
33415           __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2054, __pyx_L1_error)
33416           __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
33417           __Pyx_GOTREF(__pyx_t_2);
33418           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
33419         } else
33420         #endif
33421         {
33422           __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2054, __pyx_L1_error)
33423           __Pyx_GOTREF(__pyx_t_7);
33424           if (__pyx_t_5) {
33425             __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
33426           }
33427           __Pyx_GIVEREF(__pyx_t_3);
33428           PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
33429           __Pyx_INCREF(((PyObject *)__pyx_v_colArray));
33430           __Pyx_GIVEREF(((PyObject *)__pyx_v_colArray));
33431           PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, ((PyObject *)__pyx_v_colArray));
33432           __pyx_t_3 = 0;
33433           __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2054, __pyx_L1_error)
33434           __Pyx_GOTREF(__pyx_t_2);
33435           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
33436         }
33437         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
33438         __pyx_r = __pyx_t_2;
33439         __pyx_t_2 = 0;
33440         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33441         goto __pyx_L0;
33442       }
33443       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
33444       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
33445       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
33446       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
33447         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
33448       }
33449       #endif
33450       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33451       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
33452     }
33453     #endif
33454   }
33455 
33456   /* "cylp/cy/CyClpSimplex.pyx":2058
33457  *         Gets column ``ncol`` of ``A`` and store it in ``colArray``.
33458  *         '''
33459  *         self.CppSelf.getACol(ncol, colArray.CppSelf)             # <<<<<<<<<<<<<<
33460  *
33461  *     cpdef vectorTimesB_1(self, CyCoinIndexedVector vec):
33462  */
33463   __pyx_v_self->CppSelf->getACol(__pyx_v_ncol, __pyx_v_colArray->CppSelf);
33464 
33465   /* "cylp/cy/CyClpSimplex.pyx":2054
33466  *         self.CppSelf.setComplementarityList(<int*>cl.data)
33467  *
33468  *     cpdef getACol(self, int ncol, CyCoinIndexedVector colArray):             # <<<<<<<<<<<<<<
33469  *         '''
33470  *         Gets column ``ncol`` of ``A`` and store it in ``colArray``.
33471  */
33472 
33473   /* function exit code */
33474   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33475   goto __pyx_L0;
33476   __pyx_L1_error:;
33477   __Pyx_XDECREF(__pyx_t_1);
33478   __Pyx_XDECREF(__pyx_t_2);
33479   __Pyx_XDECREF(__pyx_t_3);
33480   __Pyx_XDECREF(__pyx_t_4);
33481   __Pyx_XDECREF(__pyx_t_5);
33482   __Pyx_XDECREF(__pyx_t_7);
33483   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
33484   __pyx_r = 0;
33485   __pyx_L0:;
33486   __Pyx_XGIVEREF(__pyx_r);
33487   __Pyx_TraceReturn(__pyx_r, 0);
33488   __Pyx_RefNannyFinishContext();
33489   return __pyx_r;
33490 }
33491 
33492 /* Python wrapper */
33493 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33494 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_192getACol[] = "CyClpSimplex.getACol(self, int ncol, CyCoinIndexedVector colArray)\n\n        Gets column ``ncol`` of ``A`` and store it in ``colArray``.\n        ";
33495 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
33496   int __pyx_v_ncol;
33497   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_colArray = 0;
33498   int __pyx_lineno = 0;
33499   const char *__pyx_filename = NULL;
33500   int __pyx_clineno = 0;
33501   PyObject *__pyx_r = 0;
33502   __Pyx_RefNannyDeclarations
33503   __Pyx_RefNannySetupContext("getACol (wrapper)", 0);
33504   {
33505     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ncol,&__pyx_n_s_colArray,0};
33506     PyObject* values[2] = {0,0};
33507     if (unlikely(__pyx_kwds)) {
33508       Py_ssize_t kw_args;
33509       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
33510       switch (pos_args) {
33511         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33512         CYTHON_FALLTHROUGH;
33513         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33514         CYTHON_FALLTHROUGH;
33515         case  0: break;
33516         default: goto __pyx_L5_argtuple_error;
33517       }
33518       kw_args = PyDict_Size(__pyx_kwds);
33519       switch (pos_args) {
33520         case  0:
33521         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ncol)) != 0)) kw_args--;
33522         else goto __pyx_L5_argtuple_error;
33523         CYTHON_FALLTHROUGH;
33524         case  1:
33525         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colArray)) != 0)) kw_args--;
33526         else {
33527           __Pyx_RaiseArgtupleInvalid("getACol", 1, 2, 2, 1); __PYX_ERR(0, 2054, __pyx_L3_error)
33528         }
33529       }
33530       if (unlikely(kw_args > 0)) {
33531         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getACol") < 0)) __PYX_ERR(0, 2054, __pyx_L3_error)
33532       }
33533     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
33534       goto __pyx_L5_argtuple_error;
33535     } else {
33536       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33537       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33538     }
33539     __pyx_v_ncol = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_ncol == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2054, __pyx_L3_error)
33540     __pyx_v_colArray = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
33541   }
33542   goto __pyx_L4_argument_unpacking_done;
33543   __pyx_L5_argtuple_error:;
33544   __Pyx_RaiseArgtupleInvalid("getACol", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2054, __pyx_L3_error)
33545   __pyx_L3_error:;
33546   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
33547   __Pyx_RefNannyFinishContext();
33548   return NULL;
33549   __pyx_L4_argument_unpacking_done:;
33550   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colArray), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "colArray", 0))) __PYX_ERR(0, 2054, __pyx_L1_error)
33551   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_192getACol(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_ncol, __pyx_v_colArray);
33552 
33553   /* function exit code */
33554   goto __pyx_L0;
33555   __pyx_L1_error:;
33556   __pyx_r = NULL;
33557   __pyx_L0:;
33558   __Pyx_RefNannyFinishContext();
33559   return __pyx_r;
33560 }
33561 
33562 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_192getACol(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_ncol, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_colArray) {
33563   PyObject *__pyx_r = NULL;
33564   __Pyx_TraceDeclarations
33565   __Pyx_RefNannyDeclarations
33566   PyObject *__pyx_t_1 = NULL;
33567   int __pyx_lineno = 0;
33568   const char *__pyx_filename = NULL;
33569   int __pyx_clineno = 0;
33570   __Pyx_RefNannySetupContext("getACol", 0);
33571   __Pyx_TraceCall("getACol (wrapper)", __pyx_f[0], 2054, 0, __PYX_ERR(0, 2054, __pyx_L1_error));
33572   __Pyx_XDECREF(__pyx_r);
33573   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getACol(__pyx_v_self, __pyx_v_ncol, __pyx_v_colArray, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2054, __pyx_L1_error)
33574   __Pyx_GOTREF(__pyx_t_1);
33575   __pyx_r = __pyx_t_1;
33576   __pyx_t_1 = 0;
33577   goto __pyx_L0;
33578 
33579   /* function exit code */
33580   __pyx_L1_error:;
33581   __Pyx_XDECREF(__pyx_t_1);
33582   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
33583   __pyx_r = NULL;
33584   __pyx_L0:;
33585   __Pyx_XGIVEREF(__pyx_r);
33586   __Pyx_TraceReturn(__pyx_r, 0);
33587   __Pyx_RefNannyFinishContext();
33588   return __pyx_r;
33589 }
33590 
33591 /* "cylp/cy/CyClpSimplex.pyx":2060
33592  *         self.CppSelf.getACol(ncol, colArray.CppSelf)
33593  *
33594  *     cpdef vectorTimesB_1(self, CyCoinIndexedVector vec):             # <<<<<<<<<<<<<<
33595  *         '''
33596  *         Compute :math:`vec A_B^{-1}` and store it in ``vec``.
33597  */
33598 
33599 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1(PyObject *__pyx_v_self, PyObject *__pyx_v_vec); /*proto*/
33600 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_vectorTimesB_1(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_vec, int __pyx_skip_dispatch) {
33601   PyObject *__pyx_r = NULL;
33602   __Pyx_TraceDeclarations
33603   __Pyx_RefNannyDeclarations
33604   PyObject *__pyx_t_1 = NULL;
33605   PyObject *__pyx_t_2 = NULL;
33606   PyObject *__pyx_t_3 = NULL;
33607   PyObject *__pyx_t_4 = NULL;
33608   int __pyx_lineno = 0;
33609   const char *__pyx_filename = NULL;
33610   int __pyx_clineno = 0;
33611   __Pyx_RefNannySetupContext("vectorTimesB_1", 0);
33612   __Pyx_TraceCall("vectorTimesB_1", __pyx_f[0], 2060, 0, __PYX_ERR(0, 2060, __pyx_L1_error));
33613   /* Check if called by wrapper */
33614   if (unlikely(__pyx_skip_dispatch)) ;
33615   /* Check if overridden in Python */
33616   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
33617     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
33618     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
33619     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
33620       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
33621       #endif
33622       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_vectorTimesB_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2060, __pyx_L1_error)
33623       __Pyx_GOTREF(__pyx_t_1);
33624       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1)) {
33625         __Pyx_XDECREF(__pyx_r);
33626         __Pyx_INCREF(__pyx_t_1);
33627         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
33628         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
33629           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
33630           if (likely(__pyx_t_4)) {
33631             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
33632             __Pyx_INCREF(__pyx_t_4);
33633             __Pyx_INCREF(function);
33634             __Pyx_DECREF_SET(__pyx_t_3, function);
33635           }
33636         }
33637         __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_vec)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_vec));
33638         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
33639         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2060, __pyx_L1_error)
33640         __Pyx_GOTREF(__pyx_t_2);
33641         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
33642         __pyx_r = __pyx_t_2;
33643         __pyx_t_2 = 0;
33644         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33645         goto __pyx_L0;
33646       }
33647       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
33648       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
33649       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
33650       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
33651         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
33652       }
33653       #endif
33654       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33655       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
33656     }
33657     #endif
33658   }
33659 
33660   /* "cylp/cy/CyClpSimplex.pyx":2064
33661  *         Compute :math:`vec A_B^{-1}` and store it in ``vec``.
33662  *         '''
33663  *         self.CppSelf.vectorTimesB_1(vec.CppSelf)             # <<<<<<<<<<<<<<
33664  *
33665  *     cdef primalRow(self, CppCoinIndexedVector * rowArray,
33666  */
33667   __pyx_v_self->CppSelf->vectorTimesB_1(__pyx_v_vec->CppSelf);
33668 
33669   /* "cylp/cy/CyClpSimplex.pyx":2060
33670  *         self.CppSelf.getACol(ncol, colArray.CppSelf)
33671  *
33672  *     cpdef vectorTimesB_1(self, CyCoinIndexedVector vec):             # <<<<<<<<<<<<<<
33673  *         '''
33674  *         Compute :math:`vec A_B^{-1}` and store it in ``vec``.
33675  */
33676 
33677   /* function exit code */
33678   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33679   goto __pyx_L0;
33680   __pyx_L1_error:;
33681   __Pyx_XDECREF(__pyx_t_1);
33682   __Pyx_XDECREF(__pyx_t_2);
33683   __Pyx_XDECREF(__pyx_t_3);
33684   __Pyx_XDECREF(__pyx_t_4);
33685   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.vectorTimesB_1", __pyx_clineno, __pyx_lineno, __pyx_filename);
33686   __pyx_r = 0;
33687   __pyx_L0:;
33688   __Pyx_XGIVEREF(__pyx_r);
33689   __Pyx_TraceReturn(__pyx_r, 0);
33690   __Pyx_RefNannyFinishContext();
33691   return __pyx_r;
33692 }
33693 
33694 /* Python wrapper */
33695 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1(PyObject *__pyx_v_self, PyObject *__pyx_v_vec); /*proto*/
33696 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_194vectorTimesB_1[] = "CyClpSimplex.vectorTimesB_1(self, CyCoinIndexedVector vec)\n\n        Compute :math:`vec A_B^{-1}` and store it in ``vec``.\n        ";
33697 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1(PyObject *__pyx_v_self, PyObject *__pyx_v_vec) {
33698   int __pyx_lineno = 0;
33699   const char *__pyx_filename = NULL;
33700   int __pyx_clineno = 0;
33701   PyObject *__pyx_r = 0;
33702   __Pyx_RefNannyDeclarations
33703   __Pyx_RefNannySetupContext("vectorTimesB_1 (wrapper)", 0);
33704   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "vec", 0))) __PYX_ERR(0, 2060, __pyx_L1_error)
33705   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_194vectorTimesB_1(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)__pyx_v_vec));
33706 
33707   /* function exit code */
33708   goto __pyx_L0;
33709   __pyx_L1_error:;
33710   __pyx_r = NULL;
33711   __pyx_L0:;
33712   __Pyx_RefNannyFinishContext();
33713   return __pyx_r;
33714 }
33715 
33716 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_194vectorTimesB_1(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_vec) {
33717   PyObject *__pyx_r = NULL;
33718   __Pyx_TraceDeclarations
33719   __Pyx_RefNannyDeclarations
33720   PyObject *__pyx_t_1 = NULL;
33721   int __pyx_lineno = 0;
33722   const char *__pyx_filename = NULL;
33723   int __pyx_clineno = 0;
33724   __Pyx_RefNannySetupContext("vectorTimesB_1", 0);
33725   __Pyx_TraceCall("vectorTimesB_1 (wrapper)", __pyx_f[0], 2060, 0, __PYX_ERR(0, 2060, __pyx_L1_error));
33726   __Pyx_XDECREF(__pyx_r);
33727   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_vectorTimesB_1(__pyx_v_self, __pyx_v_vec, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2060, __pyx_L1_error)
33728   __Pyx_GOTREF(__pyx_t_1);
33729   __pyx_r = __pyx_t_1;
33730   __pyx_t_1 = 0;
33731   goto __pyx_L0;
33732 
33733   /* function exit code */
33734   __pyx_L1_error:;
33735   __Pyx_XDECREF(__pyx_t_1);
33736   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.vectorTimesB_1", __pyx_clineno, __pyx_lineno, __pyx_filename);
33737   __pyx_r = NULL;
33738   __pyx_L0:;
33739   __Pyx_XGIVEREF(__pyx_r);
33740   __Pyx_TraceReturn(__pyx_r, 0);
33741   __Pyx_RefNannyFinishContext();
33742   return __pyx_r;
33743 }
33744 
33745 /* "cylp/cy/CyClpSimplex.pyx":2066
33746  *         self.CppSelf.vectorTimesB_1(vec.CppSelf)
33747  *
33748  *     cdef primalRow(self, CppCoinIndexedVector * rowArray,             # <<<<<<<<<<<<<<
33749  *                                        CppCoinIndexedVector * rhsArray,
33750  *                                        CppCoinIndexedVector * spareArray,
33751  */
33752 
33753 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalRow(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, CYTHON_UNUSED ICoinIndexedVector *__pyx_v_rowArray, CYTHON_UNUSED ICoinIndexedVector *__pyx_v_rhsArray, CYTHON_UNUSED ICoinIndexedVector *__pyx_v_spareArray, CYTHON_UNUSED ICoinIndexedVector *__pyx_v_spareArray2, CYTHON_UNUSED int __pyx_v_valuesPass) {
33754   PyObject *__pyx_r = NULL;
33755   __Pyx_TraceDeclarations
33756   __Pyx_RefNannyDeclarations
33757   PyObject *__pyx_t_1 = NULL;
33758   int __pyx_lineno = 0;
33759   const char *__pyx_filename = NULL;
33760   int __pyx_clineno = 0;
33761   __Pyx_RefNannySetupContext("primalRow", 0);
33762   __Pyx_TraceCall("primalRow", __pyx_f[0], 2066, 0, __PYX_ERR(0, 2066, __pyx_L1_error));
33763 
33764   /* "cylp/cy/CyClpSimplex.pyx":2071
33765  *                                        CppCoinIndexedVector * spareArray2,
33766  *                                        int valuesPass):
33767  *         raise Exception('CyClpPrimalColumnPivotBase.pyx: pivot column ' \             # <<<<<<<<<<<<<<
33768  *                         'should be implemented.')
33769  *
33770  */
33771   __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2071, __pyx_L1_error)
33772   __Pyx_GOTREF(__pyx_t_1);
33773   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
33774   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33775   __PYX_ERR(0, 2071, __pyx_L1_error)
33776 
33777   /* "cylp/cy/CyClpSimplex.pyx":2066
33778  *         self.CppSelf.vectorTimesB_1(vec.CppSelf)
33779  *
33780  *     cdef primalRow(self, CppCoinIndexedVector * rowArray,             # <<<<<<<<<<<<<<
33781  *                                        CppCoinIndexedVector * rhsArray,
33782  *                                        CppCoinIndexedVector * spareArray,
33783  */
33784 
33785   /* function exit code */
33786   __pyx_L1_error:;
33787   __Pyx_XDECREF(__pyx_t_1);
33788   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalRow", __pyx_clineno, __pyx_lineno, __pyx_filename);
33789   __pyx_r = 0;
33790   __Pyx_XGIVEREF(__pyx_r);
33791   __Pyx_TraceReturn(__pyx_r, 0);
33792   __Pyx_RefNannyFinishContext();
33793   return __pyx_r;
33794 }
33795 
33796 /* "cylp/cy/CyClpSimplex.pyx":2074
33797  *                         'should be implemented.')
33798  *
33799  *     def argWeightedMax(self, arr, arr_ind, w, w_ind):             # <<<<<<<<<<<<<<
33800  *         return self.CppSelf.argWeightedMax(<PyObject*>arr, <PyObject*>arr_ind,
33801  *                                             <PyObject*>w, <PyObject*>w_ind)
33802  */
33803 
33804 /* Python wrapper */
33805 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_197argWeightedMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33806 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_196argWeightedMax[] = "CyClpSimplex.argWeightedMax(self, arr, arr_ind, w, w_ind)";
33807 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_197argWeightedMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
33808   PyObject *__pyx_v_arr = 0;
33809   PyObject *__pyx_v_arr_ind = 0;
33810   PyObject *__pyx_v_w = 0;
33811   PyObject *__pyx_v_w_ind = 0;
33812   int __pyx_lineno = 0;
33813   const char *__pyx_filename = NULL;
33814   int __pyx_clineno = 0;
33815   PyObject *__pyx_r = 0;
33816   __Pyx_RefNannyDeclarations
33817   __Pyx_RefNannySetupContext("argWeightedMax (wrapper)", 0);
33818   {
33819     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arr,&__pyx_n_s_arr_ind,&__pyx_n_s_w,&__pyx_n_s_w_ind,0};
33820     PyObject* values[4] = {0,0,0,0};
33821     if (unlikely(__pyx_kwds)) {
33822       Py_ssize_t kw_args;
33823       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
33824       switch (pos_args) {
33825         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
33826         CYTHON_FALLTHROUGH;
33827         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33828         CYTHON_FALLTHROUGH;
33829         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33830         CYTHON_FALLTHROUGH;
33831         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33832         CYTHON_FALLTHROUGH;
33833         case  0: break;
33834         default: goto __pyx_L5_argtuple_error;
33835       }
33836       kw_args = PyDict_Size(__pyx_kwds);
33837       switch (pos_args) {
33838         case  0:
33839         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arr)) != 0)) kw_args--;
33840         else goto __pyx_L5_argtuple_error;
33841         CYTHON_FALLTHROUGH;
33842         case  1:
33843         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arr_ind)) != 0)) kw_args--;
33844         else {
33845           __Pyx_RaiseArgtupleInvalid("argWeightedMax", 1, 4, 4, 1); __PYX_ERR(0, 2074, __pyx_L3_error)
33846         }
33847         CYTHON_FALLTHROUGH;
33848         case  2:
33849         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w)) != 0)) kw_args--;
33850         else {
33851           __Pyx_RaiseArgtupleInvalid("argWeightedMax", 1, 4, 4, 2); __PYX_ERR(0, 2074, __pyx_L3_error)
33852         }
33853         CYTHON_FALLTHROUGH;
33854         case  3:
33855         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_ind)) != 0)) kw_args--;
33856         else {
33857           __Pyx_RaiseArgtupleInvalid("argWeightedMax", 1, 4, 4, 3); __PYX_ERR(0, 2074, __pyx_L3_error)
33858         }
33859       }
33860       if (unlikely(kw_args > 0)) {
33861         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "argWeightedMax") < 0)) __PYX_ERR(0, 2074, __pyx_L3_error)
33862       }
33863     } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
33864       goto __pyx_L5_argtuple_error;
33865     } else {
33866       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33867       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33868       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33869       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
33870     }
33871     __pyx_v_arr = values[0];
33872     __pyx_v_arr_ind = values[1];
33873     __pyx_v_w = values[2];
33874     __pyx_v_w_ind = values[3];
33875   }
33876   goto __pyx_L4_argument_unpacking_done;
33877   __pyx_L5_argtuple_error:;
33878   __Pyx_RaiseArgtupleInvalid("argWeightedMax", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2074, __pyx_L3_error)
33879   __pyx_L3_error:;
33880   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.argWeightedMax", __pyx_clineno, __pyx_lineno, __pyx_filename);
33881   __Pyx_RefNannyFinishContext();
33882   return NULL;
33883   __pyx_L4_argument_unpacking_done:;
33884   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_196argWeightedMax(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_arr, __pyx_v_arr_ind, __pyx_v_w, __pyx_v_w_ind);
33885 
33886   /* function exit code */
33887   __Pyx_RefNannyFinishContext();
33888   return __pyx_r;
33889 }
33890 
33891 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_196argWeightedMax(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arr, PyObject *__pyx_v_arr_ind, PyObject *__pyx_v_w, PyObject *__pyx_v_w_ind) {
33892   PyObject *__pyx_r = NULL;
33893   __Pyx_TraceDeclarations
33894   __Pyx_RefNannyDeclarations
33895   PyObject *__pyx_t_1 = NULL;
33896   int __pyx_lineno = 0;
33897   const char *__pyx_filename = NULL;
33898   int __pyx_clineno = 0;
33899   __Pyx_RefNannySetupContext("argWeightedMax", 0);
33900   __Pyx_TraceCall("argWeightedMax", __pyx_f[0], 2074, 0, __PYX_ERR(0, 2074, __pyx_L1_error));
33901 
33902   /* "cylp/cy/CyClpSimplex.pyx":2075
33903  *
33904  *     def argWeightedMax(self, arr, arr_ind, w, w_ind):
33905  *         return self.CppSelf.argWeightedMax(<PyObject*>arr, <PyObject*>arr_ind,             # <<<<<<<<<<<<<<
33906  *                                             <PyObject*>w, <PyObject*>w_ind)
33907  *
33908  */
33909   __Pyx_XDECREF(__pyx_r);
33910 
33911   /* "cylp/cy/CyClpSimplex.pyx":2076
33912  *     def argWeightedMax(self, arr, arr_ind, w, w_ind):
33913  *         return self.CppSelf.argWeightedMax(<PyObject*>arr, <PyObject*>arr_ind,
33914  *                                             <PyObject*>w, <PyObject*>w_ind)             # <<<<<<<<<<<<<<
33915  *
33916  * #    def getnff(self):
33917  */
33918   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->argWeightedMax(((PyObject *)__pyx_v_arr), ((PyObject *)__pyx_v_arr_ind), ((PyObject *)__pyx_v_w), ((PyObject *)__pyx_v_w_ind))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2075, __pyx_L1_error)
33919   __Pyx_GOTREF(__pyx_t_1);
33920   __pyx_r = __pyx_t_1;
33921   __pyx_t_1 = 0;
33922   goto __pyx_L0;
33923 
33924   /* "cylp/cy/CyClpSimplex.pyx":2074
33925  *                         'should be implemented.')
33926  *
33927  *     def argWeightedMax(self, arr, arr_ind, w, w_ind):             # <<<<<<<<<<<<<<
33928  *         return self.CppSelf.argWeightedMax(<PyObject*>arr, <PyObject*>arr_ind,
33929  *                                             <PyObject*>w, <PyObject*>w_ind)
33930  */
33931 
33932   /* function exit code */
33933   __pyx_L1_error:;
33934   __Pyx_XDECREF(__pyx_t_1);
33935   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.argWeightedMax", __pyx_clineno, __pyx_lineno, __pyx_filename);
33936   __pyx_r = NULL;
33937   __pyx_L0:;
33938   __Pyx_XGIVEREF(__pyx_r);
33939   __Pyx_TraceReturn(__pyx_r, 0);
33940   __Pyx_RefNannyFinishContext();
33941   return __pyx_r;
33942 }
33943 
33944 /* "cylp/cy/CyClpSimplex.pyx":2086
33945  * #        return np.where((status & 7 == 4) | (status & 7 == 0))[0]
33946  *
33947  *     cdef int* ComplementarityList(self):             # <<<<<<<<<<<<<<
33948  *         return self.CppSelf.ComplementarityList()
33949  *
33950  */
33951 
33952 static int *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_ComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
33953   int *__pyx_r;
33954   __Pyx_TraceDeclarations
33955   __Pyx_RefNannyDeclarations
33956   int __pyx_lineno = 0;
33957   const char *__pyx_filename = NULL;
33958   int __pyx_clineno = 0;
33959   __Pyx_RefNannySetupContext("ComplementarityList", 0);
33960   __Pyx_TraceCall("ComplementarityList", __pyx_f[0], 2086, 0, __PYX_ERR(0, 2086, __pyx_L1_error));
33961 
33962   /* "cylp/cy/CyClpSimplex.pyx":2087
33963  *
33964  *     cdef int* ComplementarityList(self):
33965  *         return self.CppSelf.ComplementarityList()             # <<<<<<<<<<<<<<
33966  *
33967  *     cpdef getComplementarityList(self):
33968  */
33969   __pyx_r = __pyx_v_self->CppSelf->ComplementarityList();
33970   goto __pyx_L0;
33971 
33972   /* "cylp/cy/CyClpSimplex.pyx":2086
33973  * #        return np.where((status & 7 == 4) | (status & 7 == 0))[0]
33974  *
33975  *     cdef int* ComplementarityList(self):             # <<<<<<<<<<<<<<
33976  *         return self.CppSelf.ComplementarityList()
33977  *
33978  */
33979 
33980   /* function exit code */
33981   __pyx_L1_error:;
33982   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.ComplementarityList", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
33983   __pyx_r = 0;
33984   __pyx_L0:;
33985   __Pyx_TraceReturn(Py_None, 0);
33986   __Pyx_RefNannyFinishContext();
33987   return __pyx_r;
33988 }
33989 
33990 /* "cylp/cy/CyClpSimplex.pyx":2089
33991  *         return self.CppSelf.ComplementarityList()
33992  *
33993  *     cpdef getComplementarityList(self):             # <<<<<<<<<<<<<<
33994  *         return <object>self.CppSelf.getComplementarityList()
33995  *
33996  */
33997 
33998 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
33999 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch) {
34000   PyObject *__pyx_r = NULL;
34001   __Pyx_TraceDeclarations
34002   __Pyx_RefNannyDeclarations
34003   PyObject *__pyx_t_1 = NULL;
34004   PyObject *__pyx_t_2 = NULL;
34005   PyObject *__pyx_t_3 = NULL;
34006   PyObject *__pyx_t_4 = NULL;
34007   PyObject *__pyx_t_5;
34008   int __pyx_lineno = 0;
34009   const char *__pyx_filename = NULL;
34010   int __pyx_clineno = 0;
34011   __Pyx_RefNannySetupContext("getComplementarityList", 0);
34012   __Pyx_TraceCall("getComplementarityList", __pyx_f[0], 2089, 0, __PYX_ERR(0, 2089, __pyx_L1_error));
34013   /* Check if called by wrapper */
34014   if (unlikely(__pyx_skip_dispatch)) ;
34015   /* Check if overridden in Python */
34016   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
34017     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
34018     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
34019     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
34020       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
34021       #endif
34022       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getComplementarityList); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2089, __pyx_L1_error)
34023       __Pyx_GOTREF(__pyx_t_1);
34024       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList)) {
34025         __Pyx_XDECREF(__pyx_r);
34026         __Pyx_INCREF(__pyx_t_1);
34027         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
34028         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
34029           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
34030           if (likely(__pyx_t_4)) {
34031             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
34032             __Pyx_INCREF(__pyx_t_4);
34033             __Pyx_INCREF(function);
34034             __Pyx_DECREF_SET(__pyx_t_3, function);
34035           }
34036         }
34037         __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
34038         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
34039         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2089, __pyx_L1_error)
34040         __Pyx_GOTREF(__pyx_t_2);
34041         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
34042         __pyx_r = __pyx_t_2;
34043         __pyx_t_2 = 0;
34044         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34045         goto __pyx_L0;
34046       }
34047       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
34048       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
34049       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
34050       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
34051         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
34052       }
34053       #endif
34054       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34055       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
34056     }
34057     #endif
34058   }
34059 
34060   /* "cylp/cy/CyClpSimplex.pyx":2090
34061  *
34062  *     cpdef getComplementarityList(self):
34063  *         return <object>self.CppSelf.getComplementarityList()             # <<<<<<<<<<<<<<
34064  *
34065  *     def setComplement(self, var1, var2):
34066  */
34067   __Pyx_XDECREF(__pyx_r);
34068   __pyx_t_5 = __pyx_v_self->CppSelf->getComplementarityList();
34069   __Pyx_INCREF(((PyObject *)__pyx_t_5));
34070   __pyx_r = ((PyObject *)__pyx_t_5);
34071   goto __pyx_L0;
34072 
34073   /* "cylp/cy/CyClpSimplex.pyx":2089
34074  *         return self.CppSelf.ComplementarityList()
34075  *
34076  *     cpdef getComplementarityList(self):             # <<<<<<<<<<<<<<
34077  *         return <object>self.CppSelf.getComplementarityList()
34078  *
34079  */
34080 
34081   /* function exit code */
34082   __pyx_L1_error:;
34083   __Pyx_XDECREF(__pyx_t_1);
34084   __Pyx_XDECREF(__pyx_t_2);
34085   __Pyx_XDECREF(__pyx_t_3);
34086   __Pyx_XDECREF(__pyx_t_4);
34087   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getComplementarityList", __pyx_clineno, __pyx_lineno, __pyx_filename);
34088   __pyx_r = 0;
34089   __pyx_L0:;
34090   __Pyx_XGIVEREF(__pyx_r);
34091   __Pyx_TraceReturn(__pyx_r, 0);
34092   __Pyx_RefNannyFinishContext();
34093   return __pyx_r;
34094 }
34095 
34096 /* Python wrapper */
34097 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
34098 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList[] = "CyClpSimplex.getComplementarityList(self)";
34099 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
34100   PyObject *__pyx_r = 0;
34101   __Pyx_RefNannyDeclarations
34102   __Pyx_RefNannySetupContext("getComplementarityList (wrapper)", 0);
34103   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
34104 
34105   /* function exit code */
34106   __Pyx_RefNannyFinishContext();
34107   return __pyx_r;
34108 }
34109 
34110 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
34111   PyObject *__pyx_r = NULL;
34112   __Pyx_TraceDeclarations
34113   __Pyx_RefNannyDeclarations
34114   PyObject *__pyx_t_1 = NULL;
34115   int __pyx_lineno = 0;
34116   const char *__pyx_filename = NULL;
34117   int __pyx_clineno = 0;
34118   __Pyx_RefNannySetupContext("getComplementarityList", 0);
34119   __Pyx_TraceCall("getComplementarityList (wrapper)", __pyx_f[0], 2089, 0, __PYX_ERR(0, 2089, __pyx_L1_error));
34120   __Pyx_XDECREF(__pyx_r);
34121   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getComplementarityList(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2089, __pyx_L1_error)
34122   __Pyx_GOTREF(__pyx_t_1);
34123   __pyx_r = __pyx_t_1;
34124   __pyx_t_1 = 0;
34125   goto __pyx_L0;
34126 
34127   /* function exit code */
34128   __pyx_L1_error:;
34129   __Pyx_XDECREF(__pyx_t_1);
34130   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getComplementarityList", __pyx_clineno, __pyx_lineno, __pyx_filename);
34131   __pyx_r = NULL;
34132   __pyx_L0:;
34133   __Pyx_XGIVEREF(__pyx_r);
34134   __Pyx_TraceReturn(__pyx_r, 0);
34135   __Pyx_RefNannyFinishContext();
34136   return __pyx_r;
34137 }
34138 
34139 /* "cylp/cy/CyClpSimplex.pyx":2092
34140  *         return <object>self.CppSelf.getComplementarityList()
34141  *
34142  *     def setComplement(self, var1, var2):             # <<<<<<<<<<<<<<
34143  *         '''
34144  *         Set ``var1`` as the complementary variable of ``var2``. These
34145  */
34146 
34147 /* Python wrapper */
34148 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_201setComplement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
34149 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_200setComplement[] = "CyClpSimplex.setComplement(self, var1, var2)\n\n        Set ``var1`` as the complementary variable of ``var2``. These\n        arguments may be integers signifying indices, or CyLPVars.\n        ";
34150 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_201setComplement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
34151   PyObject *__pyx_v_var1 = 0;
34152   PyObject *__pyx_v_var2 = 0;
34153   int __pyx_lineno = 0;
34154   const char *__pyx_filename = NULL;
34155   int __pyx_clineno = 0;
34156   PyObject *__pyx_r = 0;
34157   __Pyx_RefNannyDeclarations
34158   __Pyx_RefNannySetupContext("setComplement (wrapper)", 0);
34159   {
34160     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_var1,&__pyx_n_s_var2,0};
34161     PyObject* values[2] = {0,0};
34162     if (unlikely(__pyx_kwds)) {
34163       Py_ssize_t kw_args;
34164       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
34165       switch (pos_args) {
34166         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34167         CYTHON_FALLTHROUGH;
34168         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34169         CYTHON_FALLTHROUGH;
34170         case  0: break;
34171         default: goto __pyx_L5_argtuple_error;
34172       }
34173       kw_args = PyDict_Size(__pyx_kwds);
34174       switch (pos_args) {
34175         case  0:
34176         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_var1)) != 0)) kw_args--;
34177         else goto __pyx_L5_argtuple_error;
34178         CYTHON_FALLTHROUGH;
34179         case  1:
34180         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_var2)) != 0)) kw_args--;
34181         else {
34182           __Pyx_RaiseArgtupleInvalid("setComplement", 1, 2, 2, 1); __PYX_ERR(0, 2092, __pyx_L3_error)
34183         }
34184       }
34185       if (unlikely(kw_args > 0)) {
34186         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setComplement") < 0)) __PYX_ERR(0, 2092, __pyx_L3_error)
34187       }
34188     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
34189       goto __pyx_L5_argtuple_error;
34190     } else {
34191       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34192       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34193     }
34194     __pyx_v_var1 = values[0];
34195     __pyx_v_var2 = values[1];
34196   }
34197   goto __pyx_L4_argument_unpacking_done;
34198   __pyx_L5_argtuple_error:;
34199   __Pyx_RaiseArgtupleInvalid("setComplement", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2092, __pyx_L3_error)
34200   __pyx_L3_error:;
34201   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setComplement", __pyx_clineno, __pyx_lineno, __pyx_filename);
34202   __Pyx_RefNannyFinishContext();
34203   return NULL;
34204   __pyx_L4_argument_unpacking_done:;
34205   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_200setComplement(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_var1, __pyx_v_var2);
34206 
34207   /* function exit code */
34208   __Pyx_RefNannyFinishContext();
34209   return __pyx_r;
34210 }
34211 
34212 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_200setComplement(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_var1, PyObject *__pyx_v_var2) {
34213   PyObject *__pyx_v_model = NULL;
34214   PyObject *__pyx_v_inds = NULL;
34215   PyObject *__pyx_v_vn1 = NULL;
34216   PyObject *__pyx_v_vn2 = NULL;
34217   PyObject *__pyx_v_x1 = NULL;
34218   PyObject *__pyx_v_x2 = NULL;
34219   PyObject *__pyx_v_i = NULL;
34220   PyObject *__pyx_r = NULL;
34221   __Pyx_TraceDeclarations
34222   __Pyx_RefNannyDeclarations
34223   int __pyx_t_1;
34224   int __pyx_t_2;
34225   int __pyx_t_3;
34226   int __pyx_t_4;
34227   int __pyx_t_5;
34228   int __pyx_t_6;
34229   PyObject *__pyx_t_7 = NULL;
34230   PyObject *__pyx_t_8 = NULL;
34231   PyObject *__pyx_t_9 = NULL;
34232   PyObject *__pyx_t_10 = NULL;
34233   PyObject *__pyx_t_11 = NULL;
34234   Py_ssize_t __pyx_t_12;
34235   PyObject *(*__pyx_t_13)(PyObject *);
34236   int __pyx_lineno = 0;
34237   const char *__pyx_filename = NULL;
34238   int __pyx_clineno = 0;
34239   __Pyx_RefNannySetupContext("setComplement", 0);
34240   __Pyx_TraceCall("setComplement", __pyx_f[0], 2092, 0, __PYX_ERR(0, 2092, __pyx_L1_error));
34241 
34242   /* "cylp/cy/CyClpSimplex.pyx":2098
34243  *         '''
34244  *
34245  *         if isinstance(var1, (int, long)) and isinstance(var2, (int, long)) :             # <<<<<<<<<<<<<<
34246  *            self.CppSelf.setComplement(var1, var2)
34247  *         elif True:  # isinstance(arg, CyLPVar):
34248  */
34249   __pyx_t_3 = PyInt_Check(__pyx_v_var1);
34250   __pyx_t_4 = (__pyx_t_3 != 0);
34251   if (!__pyx_t_4) {
34252   } else {
34253     __pyx_t_2 = __pyx_t_4;
34254     goto __pyx_L6_bool_binop_done;
34255   }
34256   __pyx_t_4 = PyLong_Check(__pyx_v_var1);
34257   __pyx_t_3 = (__pyx_t_4 != 0);
34258   __pyx_t_2 = __pyx_t_3;
34259   __pyx_L6_bool_binop_done:;
34260   __pyx_t_3 = (__pyx_t_2 != 0);
34261   if (__pyx_t_3) {
34262   } else {
34263     __pyx_t_1 = __pyx_t_3;
34264     goto __pyx_L4_bool_binop_done;
34265   }
34266   __pyx_t_2 = PyInt_Check(__pyx_v_var2);
34267   __pyx_t_4 = (__pyx_t_2 != 0);
34268   if (!__pyx_t_4) {
34269   } else {
34270     __pyx_t_3 = __pyx_t_4;
34271     goto __pyx_L8_bool_binop_done;
34272   }
34273   __pyx_t_4 = PyLong_Check(__pyx_v_var2);
34274   __pyx_t_2 = (__pyx_t_4 != 0);
34275   __pyx_t_3 = __pyx_t_2;
34276   __pyx_L8_bool_binop_done:;
34277   __pyx_t_2 = (__pyx_t_3 != 0);
34278   __pyx_t_1 = __pyx_t_2;
34279   __pyx_L4_bool_binop_done:;
34280   if (__pyx_t_1) {
34281 
34282     /* "cylp/cy/CyClpSimplex.pyx":2099
34283  *
34284  *         if isinstance(var1, (int, long)) and isinstance(var2, (int, long)) :
34285  *            self.CppSelf.setComplement(var1, var2)             # <<<<<<<<<<<<<<
34286  *         elif True:  # isinstance(arg, CyLPVar):
34287  *             if self.cyLPModel is None:
34288  */
34289     __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_var1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2099, __pyx_L1_error)
34290     __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_var2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2099, __pyx_L1_error)
34291     __pyx_v_self->CppSelf->setComplement(__pyx_t_5, __pyx_t_6);
34292 
34293     /* "cylp/cy/CyClpSimplex.pyx":2098
34294  *         '''
34295  *
34296  *         if isinstance(var1, (int, long)) and isinstance(var2, (int, long)) :             # <<<<<<<<<<<<<<
34297  *            self.CppSelf.setComplement(var1, var2)
34298  *         elif True:  # isinstance(arg, CyLPVar):
34299  */
34300     goto __pyx_L3;
34301   }
34302 
34303   /* "cylp/cy/CyClpSimplex.pyx":2101
34304  *            self.CppSelf.setComplement(var1, var2)
34305  *         elif True:  # isinstance(arg, CyLPVar):
34306  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
34307  *                 raise Exception('The argument of setInteger can be ' \
34308  *                                 'a CyLPVar only if the object is built ' \
34309  */
34310   /*else*/ {
34311     __pyx_t_1 = (__pyx_v_self->cyLPModel == Py_None);
34312     __pyx_t_2 = (__pyx_t_1 != 0);
34313     if (unlikely(__pyx_t_2)) {
34314 
34315       /* "cylp/cy/CyClpSimplex.pyx":2102
34316  *         elif True:  # isinstance(arg, CyLPVar):
34317  *             if self.cyLPModel is None:
34318  *                 raise Exception('The argument of setInteger can be ' \             # <<<<<<<<<<<<<<
34319  *                                 'a CyLPVar only if the object is built ' \
34320  *                                 'using a CyLPModel.')
34321  */
34322       __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2102, __pyx_L1_error)
34323       __Pyx_GOTREF(__pyx_t_7);
34324       __Pyx_Raise(__pyx_t_7, 0, 0, 0);
34325       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
34326       __PYX_ERR(0, 2102, __pyx_L1_error)
34327 
34328       /* "cylp/cy/CyClpSimplex.pyx":2101
34329  *            self.CppSelf.setComplement(var1, var2)
34330  *         elif True:  # isinstance(arg, CyLPVar):
34331  *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
34332  *                 raise Exception('The argument of setInteger can be ' \
34333  *                                 'a CyLPVar only if the object is built ' \
34334  */
34335     }
34336 
34337     /* "cylp/cy/CyClpSimplex.pyx":2105
34338  *                                 'a CyLPVar only if the object is built ' \
34339  *                                 'using a CyLPModel.')
34340  *             if var1.dim != var2.dim:             # <<<<<<<<<<<<<<
34341  *                 raise Exception('Variables should have the same  ' \
34342  *                                 'dimensions to be complements.' \
34343  */
34344     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_var1, __pyx_n_s_dim); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2105, __pyx_L1_error)
34345     __Pyx_GOTREF(__pyx_t_7);
34346     __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_var2, __pyx_n_s_dim); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2105, __pyx_L1_error)
34347     __Pyx_GOTREF(__pyx_t_8);
34348     __pyx_t_9 = PyObject_RichCompare(__pyx_t_7, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2105, __pyx_L1_error)
34349     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
34350     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
34351     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2105, __pyx_L1_error)
34352     __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34353     if (unlikely(__pyx_t_2)) {
34354 
34355       /* "cylp/cy/CyClpSimplex.pyx":2109
34356  *                                 'dimensions to be complements.' \
34357  *                                 ' Got %s: %g and %s: %g' %
34358  *                                 (var1.name, var1.dim, var2.name, var2.dim))             # <<<<<<<<<<<<<<
34359  *
34360  *             model = self.cyLPModel
34361  */
34362       __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_var1, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2109, __pyx_L1_error)
34363       __Pyx_GOTREF(__pyx_t_9);
34364       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_var1, __pyx_n_s_dim); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2109, __pyx_L1_error)
34365       __Pyx_GOTREF(__pyx_t_8);
34366       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_var2, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2109, __pyx_L1_error)
34367       __Pyx_GOTREF(__pyx_t_7);
34368       __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_var2, __pyx_n_s_dim); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2109, __pyx_L1_error)
34369       __Pyx_GOTREF(__pyx_t_10);
34370       __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2109, __pyx_L1_error)
34371       __Pyx_GOTREF(__pyx_t_11);
34372       __Pyx_GIVEREF(__pyx_t_9);
34373       PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
34374       __Pyx_GIVEREF(__pyx_t_8);
34375       PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_8);
34376       __Pyx_GIVEREF(__pyx_t_7);
34377       PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_7);
34378       __Pyx_GIVEREF(__pyx_t_10);
34379       PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_10);
34380       __pyx_t_9 = 0;
34381       __pyx_t_8 = 0;
34382       __pyx_t_7 = 0;
34383       __pyx_t_10 = 0;
34384 
34385       /* "cylp/cy/CyClpSimplex.pyx":2108
34386  *                 raise Exception('Variables should have the same  ' \
34387  *                                 'dimensions to be complements.' \
34388  *                                 ' Got %s: %g and %s: %g' %             # <<<<<<<<<<<<<<
34389  *                                 (var1.name, var1.dim, var2.name, var2.dim))
34390  *
34391  */
34392       __pyx_t_10 = __Pyx_PyString_Format(__pyx_kp_s_Variables_should_have_the_same_d, __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2108, __pyx_L1_error)
34393       __Pyx_GOTREF(__pyx_t_10);
34394       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
34395 
34396       /* "cylp/cy/CyClpSimplex.pyx":2106
34397  *                                 'using a CyLPModel.')
34398  *             if var1.dim != var2.dim:
34399  *                 raise Exception('Variables should have the same  ' \             # <<<<<<<<<<<<<<
34400  *                                 'dimensions to be complements.' \
34401  *                                 ' Got %s: %g and %s: %g' %
34402  */
34403       __pyx_t_11 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2106, __pyx_L1_error)
34404       __Pyx_GOTREF(__pyx_t_11);
34405       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34406       __Pyx_Raise(__pyx_t_11, 0, 0, 0);
34407       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
34408       __PYX_ERR(0, 2106, __pyx_L1_error)
34409 
34410       /* "cylp/cy/CyClpSimplex.pyx":2105
34411  *                                 'a CyLPVar only if the object is built ' \
34412  *                                 'using a CyLPModel.')
34413  *             if var1.dim != var2.dim:             # <<<<<<<<<<<<<<
34414  *                 raise Exception('Variables should have the same  ' \
34415  *                                 'dimensions to be complements.' \
34416  */
34417     }
34418 
34419     /* "cylp/cy/CyClpSimplex.pyx":2111
34420  *                                 (var1.name, var1.dim, var2.name, var2.dim))
34421  *
34422  *             model = self.cyLPModel             # <<<<<<<<<<<<<<
34423  *             inds = model.inds
34424  *             vn1 = var1.name
34425  */
34426     __pyx_t_11 = __pyx_v_self->cyLPModel;
34427     __Pyx_INCREF(__pyx_t_11);
34428     __pyx_v_model = __pyx_t_11;
34429     __pyx_t_11 = 0;
34430 
34431     /* "cylp/cy/CyClpSimplex.pyx":2112
34432  *
34433  *             model = self.cyLPModel
34434  *             inds = model.inds             # <<<<<<<<<<<<<<
34435  *             vn1 = var1.name
34436  *             vn2 = var2.name
34437  */
34438     __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_inds); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2112, __pyx_L1_error)
34439     __Pyx_GOTREF(__pyx_t_11);
34440     __pyx_v_inds = __pyx_t_11;
34441     __pyx_t_11 = 0;
34442 
34443     /* "cylp/cy/CyClpSimplex.pyx":2113
34444  *             model = self.cyLPModel
34445  *             inds = model.inds
34446  *             vn1 = var1.name             # <<<<<<<<<<<<<<
34447  *             vn2 = var2.name
34448  *
34449  */
34450     __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_var1, __pyx_n_s_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2113, __pyx_L1_error)
34451     __Pyx_GOTREF(__pyx_t_11);
34452     __pyx_v_vn1 = __pyx_t_11;
34453     __pyx_t_11 = 0;
34454 
34455     /* "cylp/cy/CyClpSimplex.pyx":2114
34456  *             inds = model.inds
34457  *             vn1 = var1.name
34458  *             vn2 = var2.name             # <<<<<<<<<<<<<<
34459  *
34460  *             if not inds.hasVar(vn1):
34461  */
34462     __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_var2, __pyx_n_s_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2114, __pyx_L1_error)
34463     __Pyx_GOTREF(__pyx_t_11);
34464     __pyx_v_vn2 = __pyx_t_11;
34465     __pyx_t_11 = 0;
34466 
34467     /* "cylp/cy/CyClpSimplex.pyx":2116
34468  *             vn2 = var2.name
34469  *
34470  *             if not inds.hasVar(vn1):             # <<<<<<<<<<<<<<
34471  *                 raise Exception('No such variable: %s' % vn1)
34472  *             x1 = inds.varIndex[vn1]
34473  */
34474     __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_hasVar); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2116, __pyx_L1_error)
34475     __Pyx_GOTREF(__pyx_t_10);
34476     __pyx_t_7 = NULL;
34477     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
34478       __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10);
34479       if (likely(__pyx_t_7)) {
34480         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
34481         __Pyx_INCREF(__pyx_t_7);
34482         __Pyx_INCREF(function);
34483         __Pyx_DECREF_SET(__pyx_t_10, function);
34484       }
34485     }
34486     __pyx_t_11 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_7, __pyx_v_vn1) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_vn1);
34487     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
34488     if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2116, __pyx_L1_error)
34489     __Pyx_GOTREF(__pyx_t_11);
34490     __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34491     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2116, __pyx_L1_error)
34492     __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
34493     __pyx_t_1 = ((!__pyx_t_2) != 0);
34494     if (unlikely(__pyx_t_1)) {
34495 
34496       /* "cylp/cy/CyClpSimplex.pyx":2117
34497  *
34498  *             if not inds.hasVar(vn1):
34499  *                 raise Exception('No such variable: %s' % vn1)             # <<<<<<<<<<<<<<
34500  *             x1 = inds.varIndex[vn1]
34501  *             if not inds.hasVar(vn2):
34502  */
34503       __pyx_t_11 = __Pyx_PyString_FormatSafe(__pyx_kp_s_No_such_variable_s, __pyx_v_vn1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2117, __pyx_L1_error)
34504       __Pyx_GOTREF(__pyx_t_11);
34505       __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2117, __pyx_L1_error)
34506       __Pyx_GOTREF(__pyx_t_10);
34507       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
34508       __Pyx_Raise(__pyx_t_10, 0, 0, 0);
34509       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34510       __PYX_ERR(0, 2117, __pyx_L1_error)
34511 
34512       /* "cylp/cy/CyClpSimplex.pyx":2116
34513  *             vn2 = var2.name
34514  *
34515  *             if not inds.hasVar(vn1):             # <<<<<<<<<<<<<<
34516  *                 raise Exception('No such variable: %s' % vn1)
34517  *             x1 = inds.varIndex[vn1]
34518  */
34519     }
34520 
34521     /* "cylp/cy/CyClpSimplex.pyx":2118
34522  *             if not inds.hasVar(vn1):
34523  *                 raise Exception('No such variable: %s' % vn1)
34524  *             x1 = inds.varIndex[vn1]             # <<<<<<<<<<<<<<
34525  *             if not inds.hasVar(vn2):
34526  *                 raise Exception('No such variable: %s' % vn2)
34527  */
34528     __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2118, __pyx_L1_error)
34529     __Pyx_GOTREF(__pyx_t_10);
34530     __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_vn1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2118, __pyx_L1_error)
34531     __Pyx_GOTREF(__pyx_t_11);
34532     __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34533     __pyx_v_x1 = __pyx_t_11;
34534     __pyx_t_11 = 0;
34535 
34536     /* "cylp/cy/CyClpSimplex.pyx":2119
34537  *                 raise Exception('No such variable: %s' % vn1)
34538  *             x1 = inds.varIndex[vn1]
34539  *             if not inds.hasVar(vn2):             # <<<<<<<<<<<<<<
34540  *                 raise Exception('No such variable: %s' % vn2)
34541  *             x2 = inds.varIndex[vn2]
34542  */
34543     __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_hasVar); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2119, __pyx_L1_error)
34544     __Pyx_GOTREF(__pyx_t_10);
34545     __pyx_t_7 = NULL;
34546     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
34547       __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10);
34548       if (likely(__pyx_t_7)) {
34549         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
34550         __Pyx_INCREF(__pyx_t_7);
34551         __Pyx_INCREF(function);
34552         __Pyx_DECREF_SET(__pyx_t_10, function);
34553       }
34554     }
34555     __pyx_t_11 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_7, __pyx_v_vn2) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_vn2);
34556     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
34557     if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2119, __pyx_L1_error)
34558     __Pyx_GOTREF(__pyx_t_11);
34559     __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34560     __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2119, __pyx_L1_error)
34561     __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
34562     __pyx_t_2 = ((!__pyx_t_1) != 0);
34563     if (unlikely(__pyx_t_2)) {
34564 
34565       /* "cylp/cy/CyClpSimplex.pyx":2120
34566  *             x1 = inds.varIndex[vn1]
34567  *             if not inds.hasVar(vn2):
34568  *                 raise Exception('No such variable: %s' % vn2)             # <<<<<<<<<<<<<<
34569  *             x2 = inds.varIndex[vn2]
34570  *
34571  */
34572       __pyx_t_11 = __Pyx_PyString_FormatSafe(__pyx_kp_s_No_such_variable_s, __pyx_v_vn2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2120, __pyx_L1_error)
34573       __Pyx_GOTREF(__pyx_t_11);
34574       __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2120, __pyx_L1_error)
34575       __Pyx_GOTREF(__pyx_t_10);
34576       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
34577       __Pyx_Raise(__pyx_t_10, 0, 0, 0);
34578       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34579       __PYX_ERR(0, 2120, __pyx_L1_error)
34580 
34581       /* "cylp/cy/CyClpSimplex.pyx":2119
34582  *                 raise Exception('No such variable: %s' % vn1)
34583  *             x1 = inds.varIndex[vn1]
34584  *             if not inds.hasVar(vn2):             # <<<<<<<<<<<<<<
34585  *                 raise Exception('No such variable: %s' % vn2)
34586  *             x2 = inds.varIndex[vn2]
34587  */
34588     }
34589 
34590     /* "cylp/cy/CyClpSimplex.pyx":2121
34591  *             if not inds.hasVar(vn2):
34592  *                 raise Exception('No such variable: %s' % vn2)
34593  *             x2 = inds.varIndex[vn2]             # <<<<<<<<<<<<<<
34594  *
34595  *             for i in xrange(var1.dim):
34596  */
34597     __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2121, __pyx_L1_error)
34598     __Pyx_GOTREF(__pyx_t_10);
34599     __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_vn2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2121, __pyx_L1_error)
34600     __Pyx_GOTREF(__pyx_t_11);
34601     __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34602     __pyx_v_x2 = __pyx_t_11;
34603     __pyx_t_11 = 0;
34604 
34605     /* "cylp/cy/CyClpSimplex.pyx":2123
34606  *             x2 = inds.varIndex[vn2]
34607  *
34608  *             for i in xrange(var1.dim):             # <<<<<<<<<<<<<<
34609  *                 self.CppSelf.setComplement(x1[i], x2[i])
34610  *
34611  */
34612     __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_var1, __pyx_n_s_dim); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2123, __pyx_L1_error)
34613     __Pyx_GOTREF(__pyx_t_11);
34614     __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2123, __pyx_L1_error)
34615     __Pyx_GOTREF(__pyx_t_10);
34616     __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
34617     if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
34618       __pyx_t_11 = __pyx_t_10; __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = 0;
34619       __pyx_t_13 = NULL;
34620     } else {
34621       __pyx_t_12 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2123, __pyx_L1_error)
34622       __Pyx_GOTREF(__pyx_t_11);
34623       __pyx_t_13 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2123, __pyx_L1_error)
34624     }
34625     __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34626     for (;;) {
34627       if (likely(!__pyx_t_13)) {
34628         if (likely(PyList_CheckExact(__pyx_t_11))) {
34629           if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break;
34630           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
34631           __pyx_t_10 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_10); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2123, __pyx_L1_error)
34632           #else
34633           __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2123, __pyx_L1_error)
34634           __Pyx_GOTREF(__pyx_t_10);
34635           #endif
34636         } else {
34637           if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
34638           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
34639           __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_10); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2123, __pyx_L1_error)
34640           #else
34641           __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2123, __pyx_L1_error)
34642           __Pyx_GOTREF(__pyx_t_10);
34643           #endif
34644         }
34645       } else {
34646         __pyx_t_10 = __pyx_t_13(__pyx_t_11);
34647         if (unlikely(!__pyx_t_10)) {
34648           PyObject* exc_type = PyErr_Occurred();
34649           if (exc_type) {
34650             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
34651             else __PYX_ERR(0, 2123, __pyx_L1_error)
34652           }
34653           break;
34654         }
34655         __Pyx_GOTREF(__pyx_t_10);
34656       }
34657       __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_10);
34658       __pyx_t_10 = 0;
34659 
34660       /* "cylp/cy/CyClpSimplex.pyx":2124
34661  *
34662  *             for i in xrange(var1.dim):
34663  *                 self.CppSelf.setComplement(x1[i], x2[i])             # <<<<<<<<<<<<<<
34664  *
34665  * #    def setComplement(self, var1, var2):
34666  */
34667       __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_x1, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2124, __pyx_L1_error)
34668       __Pyx_GOTREF(__pyx_t_10);
34669       __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_10); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2124, __pyx_L1_error)
34670       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34671       __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_x2, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2124, __pyx_L1_error)
34672       __Pyx_GOTREF(__pyx_t_10);
34673       __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_10); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2124, __pyx_L1_error)
34674       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
34675       __pyx_v_self->CppSelf->setComplement(__pyx_t_6, __pyx_t_5);
34676 
34677       /* "cylp/cy/CyClpSimplex.pyx":2123
34678  *             x2 = inds.varIndex[vn2]
34679  *
34680  *             for i in xrange(var1.dim):             # <<<<<<<<<<<<<<
34681  *                 self.CppSelf.setComplement(x1[i], x2[i])
34682  *
34683  */
34684     }
34685     __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
34686   }
34687   __pyx_L3:;
34688 
34689   /* "cylp/cy/CyClpSimplex.pyx":2092
34690  *         return <object>self.CppSelf.getComplementarityList()
34691  *
34692  *     def setComplement(self, var1, var2):             # <<<<<<<<<<<<<<
34693  *         '''
34694  *         Set ``var1`` as the complementary variable of ``var2``. These
34695  */
34696 
34697   /* function exit code */
34698   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34699   goto __pyx_L0;
34700   __pyx_L1_error:;
34701   __Pyx_XDECREF(__pyx_t_7);
34702   __Pyx_XDECREF(__pyx_t_8);
34703   __Pyx_XDECREF(__pyx_t_9);
34704   __Pyx_XDECREF(__pyx_t_10);
34705   __Pyx_XDECREF(__pyx_t_11);
34706   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setComplement", __pyx_clineno, __pyx_lineno, __pyx_filename);
34707   __pyx_r = NULL;
34708   __pyx_L0:;
34709   __Pyx_XDECREF(__pyx_v_model);
34710   __Pyx_XDECREF(__pyx_v_inds);
34711   __Pyx_XDECREF(__pyx_v_vn1);
34712   __Pyx_XDECREF(__pyx_v_vn2);
34713   __Pyx_XDECREF(__pyx_v_x1);
34714   __Pyx_XDECREF(__pyx_v_x2);
34715   __Pyx_XDECREF(__pyx_v_i);
34716   __Pyx_XGIVEREF(__pyx_r);
34717   __Pyx_TraceReturn(__pyx_r, 0);
34718   __Pyx_RefNannyFinishContext();
34719   return __pyx_r;
34720 }
34721 
34722 /* "cylp/cy/CyClpSimplex.pyx":2135
34723  * #        self.CppSelf.setComplement(var1, var2)
34724  *
34725  *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int             # <<<<<<<<<<<<<<
34726  *                                         tryPlusMinusOne=False):
34727  *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
34728  */
34729 
34730 /* Python wrapper */
34731 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_203loadProblemFromCyCoinModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
34732 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_202loadProblemFromCyCoinModel[] = "CyClpSimplex.loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int tryPlusMinusOne=False)";
34733 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_203loadProblemFromCyCoinModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
34734   struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_v_modelObject = 0;
34735   int __pyx_v_tryPlusMinusOne;
34736   int __pyx_lineno = 0;
34737   const char *__pyx_filename = NULL;
34738   int __pyx_clineno = 0;
34739   PyObject *__pyx_r = 0;
34740   __Pyx_RefNannyDeclarations
34741   __Pyx_RefNannySetupContext("loadProblemFromCyCoinModel (wrapper)", 0);
34742   {
34743     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_modelObject,&__pyx_n_s_tryPlusMinusOne,0};
34744     PyObject* values[2] = {0,0};
34745     if (unlikely(__pyx_kwds)) {
34746       Py_ssize_t kw_args;
34747       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
34748       switch (pos_args) {
34749         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34750         CYTHON_FALLTHROUGH;
34751         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34752         CYTHON_FALLTHROUGH;
34753         case  0: break;
34754         default: goto __pyx_L5_argtuple_error;
34755       }
34756       kw_args = PyDict_Size(__pyx_kwds);
34757       switch (pos_args) {
34758         case  0:
34759         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_modelObject)) != 0)) kw_args--;
34760         else goto __pyx_L5_argtuple_error;
34761         CYTHON_FALLTHROUGH;
34762         case  1:
34763         if (kw_args > 0) {
34764           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tryPlusMinusOne);
34765           if (value) { values[1] = value; kw_args--; }
34766         }
34767       }
34768       if (unlikely(kw_args > 0)) {
34769         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loadProblemFromCyCoinModel") < 0)) __PYX_ERR(0, 2135, __pyx_L3_error)
34770       }
34771     } else {
34772       switch (PyTuple_GET_SIZE(__pyx_args)) {
34773         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34774         CYTHON_FALLTHROUGH;
34775         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34776         break;
34777         default: goto __pyx_L5_argtuple_error;
34778       }
34779     }
34780     __pyx_v_modelObject = ((struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *)values[0]);
34781     if (values[1]) {
34782       __pyx_v_tryPlusMinusOne = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_tryPlusMinusOne == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2135, __pyx_L3_error)
34783     } else {
34784 
34785       /* "cylp/cy/CyClpSimplex.pyx":2136
34786  *
34787  *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int
34788  *                                         tryPlusMinusOne=False):             # <<<<<<<<<<<<<<
34789  *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
34790  *
34791  */
34792       __pyx_v_tryPlusMinusOne = ((int)0);
34793     }
34794   }
34795   goto __pyx_L4_argument_unpacking_done;
34796   __pyx_L5_argtuple_error:;
34797   __Pyx_RaiseArgtupleInvalid("loadProblemFromCyCoinModel", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2135, __pyx_L3_error)
34798   __pyx_L3_error:;
34799   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadProblemFromCyCoinModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
34800   __Pyx_RefNannyFinishContext();
34801   return NULL;
34802   __pyx_L4_argument_unpacking_done:;
34803   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_modelObject), __pyx_ptype_4cylp_2cy_11CyCoinModel_CyCoinModel, 1, "modelObject", 0))) __PYX_ERR(0, 2135, __pyx_L1_error)
34804   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_202loadProblemFromCyCoinModel(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_modelObject, __pyx_v_tryPlusMinusOne);
34805 
34806   /* "cylp/cy/CyClpSimplex.pyx":2135
34807  * #        self.CppSelf.setComplement(var1, var2)
34808  *
34809  *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int             # <<<<<<<<<<<<<<
34810  *                                         tryPlusMinusOne=False):
34811  *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
34812  */
34813 
34814   /* function exit code */
34815   goto __pyx_L0;
34816   __pyx_L1_error:;
34817   __pyx_r = NULL;
34818   __pyx_L0:;
34819   __Pyx_RefNannyFinishContext();
34820   return __pyx_r;
34821 }
34822 
34823 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_202loadProblemFromCyCoinModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_v_modelObject, int __pyx_v_tryPlusMinusOne) {
34824   PyObject *__pyx_r = NULL;
34825   __Pyx_TraceDeclarations
34826   __Pyx_RefNannyDeclarations
34827   PyObject *__pyx_t_1 = NULL;
34828   int __pyx_lineno = 0;
34829   const char *__pyx_filename = NULL;
34830   int __pyx_clineno = 0;
34831   __Pyx_RefNannySetupContext("loadProblemFromCyCoinModel", 0);
34832   __Pyx_TraceCall("loadProblemFromCyCoinModel", __pyx_f[0], 2135, 0, __PYX_ERR(0, 2135, __pyx_L1_error));
34833 
34834   /* "cylp/cy/CyClpSimplex.pyx":2137
34835  *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int
34836  *                                         tryPlusMinusOne=False):
34837  *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)             # <<<<<<<<<<<<<<
34838  *
34839  *     def loadProblem(self, CyCoinPackedMatrix matrix,
34840  */
34841   __Pyx_XDECREF(__pyx_r);
34842   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->loadProblem(__pyx_v_modelObject->CppSelf, __pyx_v_tryPlusMinusOne)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2137, __pyx_L1_error)
34843   __Pyx_GOTREF(__pyx_t_1);
34844   __pyx_r = __pyx_t_1;
34845   __pyx_t_1 = 0;
34846   goto __pyx_L0;
34847 
34848   /* "cylp/cy/CyClpSimplex.pyx":2135
34849  * #        self.CppSelf.setComplement(var1, var2)
34850  *
34851  *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int             # <<<<<<<<<<<<<<
34852  *                                         tryPlusMinusOne=False):
34853  *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
34854  */
34855 
34856   /* function exit code */
34857   __pyx_L1_error:;
34858   __Pyx_XDECREF(__pyx_t_1);
34859   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadProblemFromCyCoinModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
34860   __pyx_r = NULL;
34861   __pyx_L0:;
34862   __Pyx_XGIVEREF(__pyx_r);
34863   __Pyx_TraceReturn(__pyx_r, 0);
34864   __Pyx_RefNannyFinishContext();
34865   return __pyx_r;
34866 }
34867 
34868 /* "cylp/cy/CyClpSimplex.pyx":2139
34869  *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
34870  *
34871  *     def loadProblem(self, CyCoinPackedMatrix matrix,             # <<<<<<<<<<<<<<
34872  *                  np.ndarray[np.double_t, ndim=1] collb,
34873  *                  np.ndarray[np.double_t, ndim=1] colub,
34874  */
34875 
34876 /* Python wrapper */
34877 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_205loadProblem(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
34878 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_204loadProblem[] = "CyClpSimplex.loadProblem(self, CyCoinPackedMatrix matrix, ndarray collb, ndarray colub, ndarray obj, ndarray rowlb, ndarray rowub, ndarray rowObjective=np.array([]))";
34879 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_205loadProblem(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
34880   struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix = 0;
34881   PyArrayObject *__pyx_v_collb = 0;
34882   PyArrayObject *__pyx_v_colub = 0;
34883   PyArrayObject *__pyx_v_obj = 0;
34884   PyArrayObject *__pyx_v_rowlb = 0;
34885   PyArrayObject *__pyx_v_rowub = 0;
34886   PyArrayObject *__pyx_v_rowObjective = 0;
34887   int __pyx_lineno = 0;
34888   const char *__pyx_filename = NULL;
34889   int __pyx_clineno = 0;
34890   PyObject *__pyx_r = 0;
34891   __Pyx_RefNannyDeclarations
34892   __Pyx_RefNannySetupContext("loadProblem (wrapper)", 0);
34893   {
34894     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_matrix,&__pyx_n_s_collb,&__pyx_n_s_colub,&__pyx_n_s_obj,&__pyx_n_s_rowlb,&__pyx_n_s_rowub,&__pyx_n_s_rowObjective,0};
34895     PyObject* values[7] = {0,0,0,0,0,0,0};
34896     values[6] = (PyObject *)__pyx_k__20;
34897     if (unlikely(__pyx_kwds)) {
34898       Py_ssize_t kw_args;
34899       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
34900       switch (pos_args) {
34901         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
34902         CYTHON_FALLTHROUGH;
34903         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
34904         CYTHON_FALLTHROUGH;
34905         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
34906         CYTHON_FALLTHROUGH;
34907         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
34908         CYTHON_FALLTHROUGH;
34909         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
34910         CYTHON_FALLTHROUGH;
34911         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34912         CYTHON_FALLTHROUGH;
34913         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34914         CYTHON_FALLTHROUGH;
34915         case  0: break;
34916         default: goto __pyx_L5_argtuple_error;
34917       }
34918       kw_args = PyDict_Size(__pyx_kwds);
34919       switch (pos_args) {
34920         case  0:
34921         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matrix)) != 0)) kw_args--;
34922         else goto __pyx_L5_argtuple_error;
34923         CYTHON_FALLTHROUGH;
34924         case  1:
34925         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_collb)) != 0)) kw_args--;
34926         else {
34927           __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 1); __PYX_ERR(0, 2139, __pyx_L3_error)
34928         }
34929         CYTHON_FALLTHROUGH;
34930         case  2:
34931         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colub)) != 0)) kw_args--;
34932         else {
34933           __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 2); __PYX_ERR(0, 2139, __pyx_L3_error)
34934         }
34935         CYTHON_FALLTHROUGH;
34936         case  3:
34937         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
34938         else {
34939           __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 3); __PYX_ERR(0, 2139, __pyx_L3_error)
34940         }
34941         CYTHON_FALLTHROUGH;
34942         case  4:
34943         if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowlb)) != 0)) kw_args--;
34944         else {
34945           __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 4); __PYX_ERR(0, 2139, __pyx_L3_error)
34946         }
34947         CYTHON_FALLTHROUGH;
34948         case  5:
34949         if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowub)) != 0)) kw_args--;
34950         else {
34951           __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 5); __PYX_ERR(0, 2139, __pyx_L3_error)
34952         }
34953         CYTHON_FALLTHROUGH;
34954         case  6:
34955         if (kw_args > 0) {
34956           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowObjective);
34957           if (value) { values[6] = value; kw_args--; }
34958         }
34959       }
34960       if (unlikely(kw_args > 0)) {
34961         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loadProblem") < 0)) __PYX_ERR(0, 2139, __pyx_L3_error)
34962       }
34963     } else {
34964       switch (PyTuple_GET_SIZE(__pyx_args)) {
34965         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
34966         CYTHON_FALLTHROUGH;
34967         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
34968         values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
34969         values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
34970         values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
34971         values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34972         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34973         break;
34974         default: goto __pyx_L5_argtuple_error;
34975       }
34976     }
34977     __pyx_v_matrix = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)values[0]);
34978     __pyx_v_collb = ((PyArrayObject *)values[1]);
34979     __pyx_v_colub = ((PyArrayObject *)values[2]);
34980     __pyx_v_obj = ((PyArrayObject *)values[3]);
34981     __pyx_v_rowlb = ((PyArrayObject *)values[4]);
34982     __pyx_v_rowub = ((PyArrayObject *)values[5]);
34983     __pyx_v_rowObjective = ((PyArrayObject *)values[6]);
34984   }
34985   goto __pyx_L4_argument_unpacking_done;
34986   __pyx_L5_argtuple_error:;
34987   __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2139, __pyx_L3_error)
34988   __pyx_L3_error:;
34989   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadProblem", __pyx_clineno, __pyx_lineno, __pyx_filename);
34990   __Pyx_RefNannyFinishContext();
34991   return NULL;
34992   __pyx_L4_argument_unpacking_done:;
34993   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_matrix), __pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix, 1, "matrix", 0))) __PYX_ERR(0, 2139, __pyx_L1_error)
34994   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_collb), __pyx_ptype_5numpy_ndarray, 1, "collb", 0))) __PYX_ERR(0, 2140, __pyx_L1_error)
34995   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colub), __pyx_ptype_5numpy_ndarray, 1, "colub", 0))) __PYX_ERR(0, 2141, __pyx_L1_error)
34996   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), __pyx_ptype_5numpy_ndarray, 1, "obj", 0))) __PYX_ERR(0, 2142, __pyx_L1_error)
34997   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowlb), __pyx_ptype_5numpy_ndarray, 1, "rowlb", 0))) __PYX_ERR(0, 2143, __pyx_L1_error)
34998   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowub), __pyx_ptype_5numpy_ndarray, 1, "rowub", 0))) __PYX_ERR(0, 2144, __pyx_L1_error)
34999   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowObjective), __pyx_ptype_5numpy_ndarray, 1, "rowObjective", 0))) __PYX_ERR(0, 2145, __pyx_L1_error)
35000   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_204loadProblem(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_matrix, __pyx_v_collb, __pyx_v_colub, __pyx_v_obj, __pyx_v_rowlb, __pyx_v_rowub, __pyx_v_rowObjective);
35001 
35002   /* function exit code */
35003   goto __pyx_L0;
35004   __pyx_L1_error:;
35005   __pyx_r = NULL;
35006   __pyx_L0:;
35007   __Pyx_RefNannyFinishContext();
35008   return __pyx_r;
35009 }
35010 
35011 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_204loadProblem(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix, PyArrayObject *__pyx_v_collb, PyArrayObject *__pyx_v_colub, PyArrayObject *__pyx_v_obj, PyArrayObject *__pyx_v_rowlb, PyArrayObject *__pyx_v_rowub, PyArrayObject *__pyx_v_rowObjective) {
35012   double *__pyx_v_rd;
35013   __Pyx_LocalBuf_ND __pyx_pybuffernd_collb;
35014   __Pyx_Buffer __pyx_pybuffer_collb;
35015   __Pyx_LocalBuf_ND __pyx_pybuffernd_colub;
35016   __Pyx_Buffer __pyx_pybuffer_colub;
35017   __Pyx_LocalBuf_ND __pyx_pybuffernd_obj;
35018   __Pyx_Buffer __pyx_pybuffer_obj;
35019   __Pyx_LocalBuf_ND __pyx_pybuffernd_rowObjective;
35020   __Pyx_Buffer __pyx_pybuffer_rowObjective;
35021   __Pyx_LocalBuf_ND __pyx_pybuffernd_rowlb;
35022   __Pyx_Buffer __pyx_pybuffer_rowlb;
35023   __Pyx_LocalBuf_ND __pyx_pybuffernd_rowub;
35024   __Pyx_Buffer __pyx_pybuffer_rowub;
35025   PyObject *__pyx_r = NULL;
35026   __Pyx_TraceDeclarations
35027   __Pyx_RefNannyDeclarations
35028   Py_ssize_t __pyx_t_1;
35029   int __pyx_t_2;
35030   int __pyx_lineno = 0;
35031   const char *__pyx_filename = NULL;
35032   int __pyx_clineno = 0;
35033   __Pyx_RefNannySetupContext("loadProblem", 0);
35034   __Pyx_TraceCall("loadProblem", __pyx_f[0], 2139, 0, __PYX_ERR(0, 2139, __pyx_L1_error));
35035   __pyx_pybuffer_collb.pybuffer.buf = NULL;
35036   __pyx_pybuffer_collb.refcount = 0;
35037   __pyx_pybuffernd_collb.data = NULL;
35038   __pyx_pybuffernd_collb.rcbuffer = &__pyx_pybuffer_collb;
35039   __pyx_pybuffer_colub.pybuffer.buf = NULL;
35040   __pyx_pybuffer_colub.refcount = 0;
35041   __pyx_pybuffernd_colub.data = NULL;
35042   __pyx_pybuffernd_colub.rcbuffer = &__pyx_pybuffer_colub;
35043   __pyx_pybuffer_obj.pybuffer.buf = NULL;
35044   __pyx_pybuffer_obj.refcount = 0;
35045   __pyx_pybuffernd_obj.data = NULL;
35046   __pyx_pybuffernd_obj.rcbuffer = &__pyx_pybuffer_obj;
35047   __pyx_pybuffer_rowlb.pybuffer.buf = NULL;
35048   __pyx_pybuffer_rowlb.refcount = 0;
35049   __pyx_pybuffernd_rowlb.data = NULL;
35050   __pyx_pybuffernd_rowlb.rcbuffer = &__pyx_pybuffer_rowlb;
35051   __pyx_pybuffer_rowub.pybuffer.buf = NULL;
35052   __pyx_pybuffer_rowub.refcount = 0;
35053   __pyx_pybuffernd_rowub.data = NULL;
35054   __pyx_pybuffernd_rowub.rcbuffer = &__pyx_pybuffer_rowub;
35055   __pyx_pybuffer_rowObjective.pybuffer.buf = NULL;
35056   __pyx_pybuffer_rowObjective.refcount = 0;
35057   __pyx_pybuffernd_rowObjective.data = NULL;
35058   __pyx_pybuffernd_rowObjective.rcbuffer = &__pyx_pybuffer_rowObjective;
35059   {
35060     __Pyx_BufFmt_StackElem __pyx_stack[1];
35061     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_collb.rcbuffer->pybuffer, (PyObject*)__pyx_v_collb, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2139, __pyx_L1_error)
35062   }
35063   __pyx_pybuffernd_collb.diminfo[0].strides = __pyx_pybuffernd_collb.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_collb.diminfo[0].shape = __pyx_pybuffernd_collb.rcbuffer->pybuffer.shape[0];
35064   {
35065     __Pyx_BufFmt_StackElem __pyx_stack[1];
35066     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_colub.rcbuffer->pybuffer, (PyObject*)__pyx_v_colub, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2139, __pyx_L1_error)
35067   }
35068   __pyx_pybuffernd_colub.diminfo[0].strides = __pyx_pybuffernd_colub.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_colub.diminfo[0].shape = __pyx_pybuffernd_colub.rcbuffer->pybuffer.shape[0];
35069   {
35070     __Pyx_BufFmt_StackElem __pyx_stack[1];
35071     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_obj.rcbuffer->pybuffer, (PyObject*)__pyx_v_obj, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2139, __pyx_L1_error)
35072   }
35073   __pyx_pybuffernd_obj.diminfo[0].strides = __pyx_pybuffernd_obj.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_obj.diminfo[0].shape = __pyx_pybuffernd_obj.rcbuffer->pybuffer.shape[0];
35074   {
35075     __Pyx_BufFmt_StackElem __pyx_stack[1];
35076     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rowlb.rcbuffer->pybuffer, (PyObject*)__pyx_v_rowlb, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2139, __pyx_L1_error)
35077   }
35078   __pyx_pybuffernd_rowlb.diminfo[0].strides = __pyx_pybuffernd_rowlb.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rowlb.diminfo[0].shape = __pyx_pybuffernd_rowlb.rcbuffer->pybuffer.shape[0];
35079   {
35080     __Pyx_BufFmt_StackElem __pyx_stack[1];
35081     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rowub.rcbuffer->pybuffer, (PyObject*)__pyx_v_rowub, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2139, __pyx_L1_error)
35082   }
35083   __pyx_pybuffernd_rowub.diminfo[0].strides = __pyx_pybuffernd_rowub.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rowub.diminfo[0].shape = __pyx_pybuffernd_rowub.rcbuffer->pybuffer.shape[0];
35084   {
35085     __Pyx_BufFmt_StackElem __pyx_stack[1];
35086     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rowObjective.rcbuffer->pybuffer, (PyObject*)__pyx_v_rowObjective, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2139, __pyx_L1_error)
35087   }
35088   __pyx_pybuffernd_rowObjective.diminfo[0].strides = __pyx_pybuffernd_rowObjective.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rowObjective.diminfo[0].shape = __pyx_pybuffernd_rowObjective.rcbuffer->pybuffer.shape[0];
35089 
35090   /* "cylp/cy/CyClpSimplex.pyx":2147
35091  *                  np.ndarray[np.double_t, ndim=1] rowObjective=np.array([])):
35092  *         cdef double* rd
35093  *         if len(rowObjective) == 0:             # <<<<<<<<<<<<<<
35094  *             rd = NULL
35095  *         else:
35096  */
35097   __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_rowObjective)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2147, __pyx_L1_error)
35098   __pyx_t_2 = ((__pyx_t_1 == 0) != 0);
35099   if (__pyx_t_2) {
35100 
35101     /* "cylp/cy/CyClpSimplex.pyx":2148
35102  *         cdef double* rd
35103  *         if len(rowObjective) == 0:
35104  *             rd = NULL             # <<<<<<<<<<<<<<
35105  *         else:
35106  *             rd = <double*> rowObjective.data
35107  */
35108     __pyx_v_rd = NULL;
35109 
35110     /* "cylp/cy/CyClpSimplex.pyx":2147
35111  *                  np.ndarray[np.double_t, ndim=1] rowObjective=np.array([])):
35112  *         cdef double* rd
35113  *         if len(rowObjective) == 0:             # <<<<<<<<<<<<<<
35114  *             rd = NULL
35115  *         else:
35116  */
35117     goto __pyx_L3;
35118   }
35119 
35120   /* "cylp/cy/CyClpSimplex.pyx":2150
35121  *             rd = NULL
35122  *         else:
35123  *             rd = <double*> rowObjective.data             # <<<<<<<<<<<<<<
35124  *         self.CppSelf.loadProblem(matrix.CppSelf, <double*> collb.data,
35125  *                                          <double*> colub.data,
35126  */
35127   /*else*/ {
35128     __pyx_v_rd = ((double *)__pyx_v_rowObjective->data);
35129   }
35130   __pyx_L3:;
35131 
35132   /* "cylp/cy/CyClpSimplex.pyx":2151
35133  *         else:
35134  *             rd = <double*> rowObjective.data
35135  *         self.CppSelf.loadProblem(matrix.CppSelf, <double*> collb.data,             # <<<<<<<<<<<<<<
35136  *                                          <double*> colub.data,
35137  *                                          <double*> obj.data,
35138  */
35139   __pyx_v_self->CppSelf->loadProblem(__pyx_v_matrix->CppSelf, ((double *)__pyx_v_collb->data), ((double *)__pyx_v_colub->data), ((double *)__pyx_v_obj->data), ((double *)__pyx_v_rowlb->data), ((double *)__pyx_v_rowub->data), ((double *)__pyx_v_rd));
35140 
35141   /* "cylp/cy/CyClpSimplex.pyx":2139
35142  *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
35143  *
35144  *     def loadProblem(self, CyCoinPackedMatrix matrix,             # <<<<<<<<<<<<<<
35145  *                  np.ndarray[np.double_t, ndim=1] collb,
35146  *                  np.ndarray[np.double_t, ndim=1] colub,
35147  */
35148 
35149   /* function exit code */
35150   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35151   goto __pyx_L0;
35152   __pyx_L1_error:;
35153   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
35154     __Pyx_PyThreadState_declare
35155     __Pyx_PyThreadState_assign
35156     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
35157     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_collb.rcbuffer->pybuffer);
35158     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_colub.rcbuffer->pybuffer);
35159     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_obj.rcbuffer->pybuffer);
35160     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowObjective.rcbuffer->pybuffer);
35161     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowlb.rcbuffer->pybuffer);
35162     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowub.rcbuffer->pybuffer);
35163   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
35164   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadProblem", __pyx_clineno, __pyx_lineno, __pyx_filename);
35165   __pyx_r = NULL;
35166   goto __pyx_L2;
35167   __pyx_L0:;
35168   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_collb.rcbuffer->pybuffer);
35169   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_colub.rcbuffer->pybuffer);
35170   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_obj.rcbuffer->pybuffer);
35171   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowObjective.rcbuffer->pybuffer);
35172   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowlb.rcbuffer->pybuffer);
35173   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowub.rcbuffer->pybuffer);
35174   __pyx_L2:;
35175   __Pyx_XGIVEREF(__pyx_r);
35176   __Pyx_TraceReturn(__pyx_r, 0);
35177   __Pyx_RefNannyFinishContext();
35178   return __pyx_r;
35179 }
35180 
35181 /* "cylp/cy/CyClpSimplex.pyx":2158
35182  *                                          <double*> rd)
35183  *
35184  *     def getCoinInfinity(self):             # <<<<<<<<<<<<<<
35185  *         return self.CppSelf.getCoinInfinity()
35186  *
35187  */
35188 
35189 /* Python wrapper */
35190 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_207getCoinInfinity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
35191 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity[] = "CyClpSimplex.getCoinInfinity(self)";
35192 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_207getCoinInfinity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
35193   PyObject *__pyx_r = 0;
35194   __Pyx_RefNannyDeclarations
35195   __Pyx_RefNannySetupContext("getCoinInfinity (wrapper)", 0);
35196   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
35197 
35198   /* function exit code */
35199   __Pyx_RefNannyFinishContext();
35200   return __pyx_r;
35201 }
35202 
35203 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
35204   PyObject *__pyx_r = NULL;
35205   __Pyx_TraceDeclarations
35206   __Pyx_RefNannyDeclarations
35207   PyObject *__pyx_t_1 = NULL;
35208   int __pyx_lineno = 0;
35209   const char *__pyx_filename = NULL;
35210   int __pyx_clineno = 0;
35211   __Pyx_RefNannySetupContext("getCoinInfinity", 0);
35212   __Pyx_TraceCall("getCoinInfinity", __pyx_f[0], 2158, 0, __PYX_ERR(0, 2158, __pyx_L1_error));
35213 
35214   /* "cylp/cy/CyClpSimplex.pyx":2159
35215  *
35216  *     def getCoinInfinity(self):
35217  *         return self.CppSelf.getCoinInfinity()             # <<<<<<<<<<<<<<
35218  *
35219  *     #############################################
35220  */
35221   __Pyx_XDECREF(__pyx_r);
35222   __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getCoinInfinity()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2159, __pyx_L1_error)
35223   __Pyx_GOTREF(__pyx_t_1);
35224   __pyx_r = __pyx_t_1;
35225   __pyx_t_1 = 0;
35226   goto __pyx_L0;
35227 
35228   /* "cylp/cy/CyClpSimplex.pyx":2158
35229  *                                          <double*> rd)
35230  *
35231  *     def getCoinInfinity(self):             # <<<<<<<<<<<<<<
35232  *         return self.CppSelf.getCoinInfinity()
35233  *
35234  */
35235 
35236   /* function exit code */
35237   __pyx_L1_error:;
35238   __Pyx_XDECREF(__pyx_t_1);
35239   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getCoinInfinity", __pyx_clineno, __pyx_lineno, __pyx_filename);
35240   __pyx_r = NULL;
35241   __pyx_L0:;
35242   __Pyx_XGIVEREF(__pyx_r);
35243   __Pyx_TraceReturn(__pyx_r, 0);
35244   __Pyx_RefNannyFinishContext();
35245   return __pyx_r;
35246 }
35247 
35248 /* "cylp/cy/CyClpSimplex.pyx":2165
35249  *     #############################################
35250  *
35251  *     def setBasisStatus(self, np.ndarray[np.int32_t, ndim=1] cstat,             # <<<<<<<<<<<<<<
35252  *                              np.ndarray[np.int32_t, ndim=1] rstat):
35253  *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)
35254  */
35255 
35256 /* Python wrapper */
35257 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_209setBasisStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35258 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_208setBasisStatus[] = "CyClpSimplex.setBasisStatus(self, ndarray cstat, ndarray rstat)";
35259 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_209setBasisStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35260   PyArrayObject *__pyx_v_cstat = 0;
35261   PyArrayObject *__pyx_v_rstat = 0;
35262   int __pyx_lineno = 0;
35263   const char *__pyx_filename = NULL;
35264   int __pyx_clineno = 0;
35265   PyObject *__pyx_r = 0;
35266   __Pyx_RefNannyDeclarations
35267   __Pyx_RefNannySetupContext("setBasisStatus (wrapper)", 0);
35268   {
35269     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cstat,&__pyx_n_s_rstat,0};
35270     PyObject* values[2] = {0,0};
35271     if (unlikely(__pyx_kwds)) {
35272       Py_ssize_t kw_args;
35273       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
35274       switch (pos_args) {
35275         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35276         CYTHON_FALLTHROUGH;
35277         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35278         CYTHON_FALLTHROUGH;
35279         case  0: break;
35280         default: goto __pyx_L5_argtuple_error;
35281       }
35282       kw_args = PyDict_Size(__pyx_kwds);
35283       switch (pos_args) {
35284         case  0:
35285         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cstat)) != 0)) kw_args--;
35286         else goto __pyx_L5_argtuple_error;
35287         CYTHON_FALLTHROUGH;
35288         case  1:
35289         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rstat)) != 0)) kw_args--;
35290         else {
35291           __Pyx_RaiseArgtupleInvalid("setBasisStatus", 1, 2, 2, 1); __PYX_ERR(0, 2165, __pyx_L3_error)
35292         }
35293       }
35294       if (unlikely(kw_args > 0)) {
35295         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBasisStatus") < 0)) __PYX_ERR(0, 2165, __pyx_L3_error)
35296       }
35297     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
35298       goto __pyx_L5_argtuple_error;
35299     } else {
35300       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35301       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35302     }
35303     __pyx_v_cstat = ((PyArrayObject *)values[0]);
35304     __pyx_v_rstat = ((PyArrayObject *)values[1]);
35305   }
35306   goto __pyx_L4_argument_unpacking_done;
35307   __pyx_L5_argtuple_error:;
35308   __Pyx_RaiseArgtupleInvalid("setBasisStatus", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2165, __pyx_L3_error)
35309   __pyx_L3_error:;
35310   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setBasisStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
35311   __Pyx_RefNannyFinishContext();
35312   return NULL;
35313   __pyx_L4_argument_unpacking_done:;
35314   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cstat), __pyx_ptype_5numpy_ndarray, 1, "cstat", 0))) __PYX_ERR(0, 2165, __pyx_L1_error)
35315   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rstat), __pyx_ptype_5numpy_ndarray, 1, "rstat", 0))) __PYX_ERR(0, 2166, __pyx_L1_error)
35316   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_208setBasisStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_cstat, __pyx_v_rstat);
35317 
35318   /* function exit code */
35319   goto __pyx_L0;
35320   __pyx_L1_error:;
35321   __pyx_r = NULL;
35322   __pyx_L0:;
35323   __Pyx_RefNannyFinishContext();
35324   return __pyx_r;
35325 }
35326 
35327 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_208setBasisStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_cstat, PyArrayObject *__pyx_v_rstat) {
35328   __Pyx_LocalBuf_ND __pyx_pybuffernd_cstat;
35329   __Pyx_Buffer __pyx_pybuffer_cstat;
35330   __Pyx_LocalBuf_ND __pyx_pybuffernd_rstat;
35331   __Pyx_Buffer __pyx_pybuffer_rstat;
35332   PyObject *__pyx_r = NULL;
35333   __Pyx_TraceDeclarations
35334   __Pyx_RefNannyDeclarations
35335   int __pyx_lineno = 0;
35336   const char *__pyx_filename = NULL;
35337   int __pyx_clineno = 0;
35338   __Pyx_RefNannySetupContext("setBasisStatus", 0);
35339   __Pyx_TraceCall("setBasisStatus", __pyx_f[0], 2165, 0, __PYX_ERR(0, 2165, __pyx_L1_error));
35340   __pyx_pybuffer_cstat.pybuffer.buf = NULL;
35341   __pyx_pybuffer_cstat.refcount = 0;
35342   __pyx_pybuffernd_cstat.data = NULL;
35343   __pyx_pybuffernd_cstat.rcbuffer = &__pyx_pybuffer_cstat;
35344   __pyx_pybuffer_rstat.pybuffer.buf = NULL;
35345   __pyx_pybuffer_rstat.refcount = 0;
35346   __pyx_pybuffernd_rstat.data = NULL;
35347   __pyx_pybuffernd_rstat.rcbuffer = &__pyx_pybuffer_rstat;
35348   {
35349     __Pyx_BufFmt_StackElem __pyx_stack[1];
35350     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer, (PyObject*)__pyx_v_cstat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2165, __pyx_L1_error)
35351   }
35352   __pyx_pybuffernd_cstat.diminfo[0].strides = __pyx_pybuffernd_cstat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cstat.diminfo[0].shape = __pyx_pybuffernd_cstat.rcbuffer->pybuffer.shape[0];
35353   {
35354     __Pyx_BufFmt_StackElem __pyx_stack[1];
35355     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer, (PyObject*)__pyx_v_rstat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 2165, __pyx_L1_error)
35356   }
35357   __pyx_pybuffernd_rstat.diminfo[0].strides = __pyx_pybuffernd_rstat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rstat.diminfo[0].shape = __pyx_pybuffernd_rstat.rcbuffer->pybuffer.shape[0];
35358 
35359   /* "cylp/cy/CyClpSimplex.pyx":2167
35360  *     def setBasisStatus(self, np.ndarray[np.int32_t, ndim=1] cstat,
35361  *                              np.ndarray[np.int32_t, ndim=1] rstat):
35362  *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)             # <<<<<<<<<<<<<<
35363  *
35364  *     def getBasisStatus(self):
35365  */
35366   __pyx_v_self->CppSelf->setBasisStatus(((int *)__pyx_v_cstat->data), ((int *)__pyx_v_rstat->data));
35367 
35368   /* "cylp/cy/CyClpSimplex.pyx":2165
35369  *     #############################################
35370  *
35371  *     def setBasisStatus(self, np.ndarray[np.int32_t, ndim=1] cstat,             # <<<<<<<<<<<<<<
35372  *                              np.ndarray[np.int32_t, ndim=1] rstat):
35373  *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)
35374  */
35375 
35376   /* function exit code */
35377   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35378   goto __pyx_L0;
35379   __pyx_L1_error:;
35380   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
35381     __Pyx_PyThreadState_declare
35382     __Pyx_PyThreadState_assign
35383     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
35384     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer);
35385     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer);
35386   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
35387   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setBasisStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
35388   __pyx_r = NULL;
35389   goto __pyx_L2;
35390   __pyx_L0:;
35391   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer);
35392   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer);
35393   __pyx_L2:;
35394   __Pyx_XGIVEREF(__pyx_r);
35395   __Pyx_TraceReturn(__pyx_r, 0);
35396   __Pyx_RefNannyFinishContext();
35397   return __pyx_r;
35398 }
35399 
35400 /* "cylp/cy/CyClpSimplex.pyx":2169
35401  *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)
35402  *
35403  *     def getBasisStatus(self):             # <<<<<<<<<<<<<<
35404  *         cdef np.ndarray[np.int32_t, ndim=1] cstat = \
35405  *                                 np.zeros(self.nVariables, dtype='int32')
35406  */
35407 
35408 /* Python wrapper */
35409 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_211getBasisStatus(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
35410 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus[] = "CyClpSimplex.getBasisStatus(self)";
35411 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_211getBasisStatus(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
35412   PyObject *__pyx_r = 0;
35413   __Pyx_RefNannyDeclarations
35414   __Pyx_RefNannySetupContext("getBasisStatus (wrapper)", 0);
35415   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
35416 
35417   /* function exit code */
35418   __Pyx_RefNannyFinishContext();
35419   return __pyx_r;
35420 }
35421 
35422 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
35423   PyArrayObject *__pyx_v_cstat = 0;
35424   PyArrayObject *__pyx_v_rstat = 0;
35425   __Pyx_LocalBuf_ND __pyx_pybuffernd_cstat;
35426   __Pyx_Buffer __pyx_pybuffer_cstat;
35427   __Pyx_LocalBuf_ND __pyx_pybuffernd_rstat;
35428   __Pyx_Buffer __pyx_pybuffer_rstat;
35429   PyObject *__pyx_r = NULL;
35430   __Pyx_TraceDeclarations
35431   __Pyx_RefNannyDeclarations
35432   PyObject *__pyx_t_1 = NULL;
35433   PyObject *__pyx_t_2 = NULL;
35434   PyObject *__pyx_t_3 = NULL;
35435   PyObject *__pyx_t_4 = NULL;
35436   PyArrayObject *__pyx_t_5 = NULL;
35437   PyArrayObject *__pyx_t_6 = NULL;
35438   int __pyx_lineno = 0;
35439   const char *__pyx_filename = NULL;
35440   int __pyx_clineno = 0;
35441   __Pyx_RefNannySetupContext("getBasisStatus", 0);
35442   __Pyx_TraceCall("getBasisStatus", __pyx_f[0], 2169, 0, __PYX_ERR(0, 2169, __pyx_L1_error));
35443   __pyx_pybuffer_cstat.pybuffer.buf = NULL;
35444   __pyx_pybuffer_cstat.refcount = 0;
35445   __pyx_pybuffernd_cstat.data = NULL;
35446   __pyx_pybuffernd_cstat.rcbuffer = &__pyx_pybuffer_cstat;
35447   __pyx_pybuffer_rstat.pybuffer.buf = NULL;
35448   __pyx_pybuffer_rstat.refcount = 0;
35449   __pyx_pybuffernd_rstat.data = NULL;
35450   __pyx_pybuffernd_rstat.rcbuffer = &__pyx_pybuffer_rstat;
35451 
35452   /* "cylp/cy/CyClpSimplex.pyx":2171
35453  *     def getBasisStatus(self):
35454  *         cdef np.ndarray[np.int32_t, ndim=1] cstat = \
35455  *                                 np.zeros(self.nVariables, dtype='int32')             # <<<<<<<<<<<<<<
35456  *         cdef np.ndarray[np.int32_t, ndim=1] rstat = \
35457  *                                 np.zeros(self.nConstraints, dtype='int32')
35458  */
35459   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2171, __pyx_L1_error)
35460   __Pyx_GOTREF(__pyx_t_1);
35461   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2171, __pyx_L1_error)
35462   __Pyx_GOTREF(__pyx_t_2);
35463   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35464   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nVariables); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2171, __pyx_L1_error)
35465   __Pyx_GOTREF(__pyx_t_1);
35466   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2171, __pyx_L1_error)
35467   __Pyx_GOTREF(__pyx_t_3);
35468   __Pyx_GIVEREF(__pyx_t_1);
35469   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
35470   __pyx_t_1 = 0;
35471   __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2171, __pyx_L1_error)
35472   __Pyx_GOTREF(__pyx_t_1);
35473   if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_n_s_int32) < 0) __PYX_ERR(0, 2171, __pyx_L1_error)
35474   __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2171, __pyx_L1_error)
35475   __Pyx_GOTREF(__pyx_t_4);
35476   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35477   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35478   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35479   if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 2171, __pyx_L1_error)
35480   __pyx_t_5 = ((PyArrayObject *)__pyx_t_4);
35481   {
35482     __Pyx_BufFmt_StackElem __pyx_stack[1];
35483     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
35484       __pyx_v_cstat = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cstat.rcbuffer->pybuffer.buf = NULL;
35485       __PYX_ERR(0, 2170, __pyx_L1_error)
35486     } else {__pyx_pybuffernd_cstat.diminfo[0].strides = __pyx_pybuffernd_cstat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cstat.diminfo[0].shape = __pyx_pybuffernd_cstat.rcbuffer->pybuffer.shape[0];
35487     }
35488   }
35489   __pyx_t_5 = 0;
35490   __pyx_v_cstat = ((PyArrayObject *)__pyx_t_4);
35491   __pyx_t_4 = 0;
35492 
35493   /* "cylp/cy/CyClpSimplex.pyx":2173
35494  *                                 np.zeros(self.nVariables, dtype='int32')
35495  *         cdef np.ndarray[np.int32_t, ndim=1] rstat = \
35496  *                                 np.zeros(self.nConstraints, dtype='int32')             # <<<<<<<<<<<<<<
35497  *         self.CppSelf.getBasisStatus(<int*>cstat.data, <int*>rstat.data)
35498  *         return cstat, rstat
35499  */
35500   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2173, __pyx_L1_error)
35501   __Pyx_GOTREF(__pyx_t_4);
35502   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2173, __pyx_L1_error)
35503   __Pyx_GOTREF(__pyx_t_1);
35504   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
35505   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nConstraints); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2173, __pyx_L1_error)
35506   __Pyx_GOTREF(__pyx_t_4);
35507   __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2173, __pyx_L1_error)
35508   __Pyx_GOTREF(__pyx_t_3);
35509   __Pyx_GIVEREF(__pyx_t_4);
35510   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
35511   __pyx_t_4 = 0;
35512   __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2173, __pyx_L1_error)
35513   __Pyx_GOTREF(__pyx_t_4);
35514   if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_n_s_int32) < 0) __PYX_ERR(0, 2173, __pyx_L1_error)
35515   __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2173, __pyx_L1_error)
35516   __Pyx_GOTREF(__pyx_t_2);
35517   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35518   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35519   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
35520   if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 2173, __pyx_L1_error)
35521   __pyx_t_6 = ((PyArrayObject *)__pyx_t_2);
35522   {
35523     __Pyx_BufFmt_StackElem __pyx_stack[1];
35524     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
35525       __pyx_v_rstat = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_rstat.rcbuffer->pybuffer.buf = NULL;
35526       __PYX_ERR(0, 2172, __pyx_L1_error)
35527     } else {__pyx_pybuffernd_rstat.diminfo[0].strides = __pyx_pybuffernd_rstat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rstat.diminfo[0].shape = __pyx_pybuffernd_rstat.rcbuffer->pybuffer.shape[0];
35528     }
35529   }
35530   __pyx_t_6 = 0;
35531   __pyx_v_rstat = ((PyArrayObject *)__pyx_t_2);
35532   __pyx_t_2 = 0;
35533 
35534   /* "cylp/cy/CyClpSimplex.pyx":2174
35535  *         cdef np.ndarray[np.int32_t, ndim=1] rstat = \
35536  *                                 np.zeros(self.nConstraints, dtype='int32')
35537  *         self.CppSelf.getBasisStatus(<int*>cstat.data, <int*>rstat.data)             # <<<<<<<<<<<<<<
35538  *         return cstat, rstat
35539  *
35540  */
35541   __pyx_v_self->CppSelf->getBasisStatus(((int *)__pyx_v_cstat->data), ((int *)__pyx_v_rstat->data));
35542 
35543   /* "cylp/cy/CyClpSimplex.pyx":2175
35544  *                                 np.zeros(self.nConstraints, dtype='int32')
35545  *         self.CppSelf.getBasisStatus(<int*>cstat.data, <int*>rstat.data)
35546  *         return cstat, rstat             # <<<<<<<<<<<<<<
35547  *
35548  *
35549  */
35550   __Pyx_XDECREF(__pyx_r);
35551   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2175, __pyx_L1_error)
35552   __Pyx_GOTREF(__pyx_t_2);
35553   __Pyx_INCREF(((PyObject *)__pyx_v_cstat));
35554   __Pyx_GIVEREF(((PyObject *)__pyx_v_cstat));
35555   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_cstat));
35556   __Pyx_INCREF(((PyObject *)__pyx_v_rstat));
35557   __Pyx_GIVEREF(((PyObject *)__pyx_v_rstat));
35558   PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_rstat));
35559   __pyx_r = __pyx_t_2;
35560   __pyx_t_2 = 0;
35561   goto __pyx_L0;
35562 
35563   /* "cylp/cy/CyClpSimplex.pyx":2169
35564  *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)
35565  *
35566  *     def getBasisStatus(self):             # <<<<<<<<<<<<<<
35567  *         cdef np.ndarray[np.int32_t, ndim=1] cstat = \
35568  *                                 np.zeros(self.nVariables, dtype='int32')
35569  */
35570 
35571   /* function exit code */
35572   __pyx_L1_error:;
35573   __Pyx_XDECREF(__pyx_t_1);
35574   __Pyx_XDECREF(__pyx_t_2);
35575   __Pyx_XDECREF(__pyx_t_3);
35576   __Pyx_XDECREF(__pyx_t_4);
35577   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
35578     __Pyx_PyThreadState_declare
35579     __Pyx_PyThreadState_assign
35580     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
35581     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer);
35582     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer);
35583   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
35584   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBasisStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
35585   __pyx_r = NULL;
35586   goto __pyx_L2;
35587   __pyx_L0:;
35588   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer);
35589   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer);
35590   __pyx_L2:;
35591   __Pyx_XDECREF((PyObject *)__pyx_v_cstat);
35592   __Pyx_XDECREF((PyObject *)__pyx_v_rstat);
35593   __Pyx_XGIVEREF(__pyx_r);
35594   __Pyx_TraceReturn(__pyx_r, 0);
35595   __Pyx_RefNannyFinishContext();
35596   return __pyx_r;
35597 }
35598 
35599 /* "(tree fragment)":1
35600  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
35601  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
35602  * def __setstate_cython__(self, __pyx_state):
35603  */
35604 
35605 /* Python wrapper */
35606 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_213__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
35607 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__[] = "CyClpSimplex.__reduce_cython__(self)";
35608 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_213__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
35609   PyObject *__pyx_r = 0;
35610   __Pyx_RefNannyDeclarations
35611   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
35612   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));
35613 
35614   /* function exit code */
35615   __Pyx_RefNannyFinishContext();
35616   return __pyx_r;
35617 }
35618 
35619 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
35620   PyObject *__pyx_r = NULL;
35621   __Pyx_TraceDeclarations
35622   __Pyx_RefNannyDeclarations
35623   PyObject *__pyx_t_1 = NULL;
35624   int __pyx_lineno = 0;
35625   const char *__pyx_filename = NULL;
35626   int __pyx_clineno = 0;
35627   __Pyx_RefNannySetupContext("__reduce_cython__", 0);
35628   __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
35629 
35630   /* "(tree fragment)":2
35631  * def __reduce_cython__(self):
35632  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
35633  * def __setstate_cython__(self, __pyx_state):
35634  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
35635  */
35636   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
35637   __Pyx_GOTREF(__pyx_t_1);
35638   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
35639   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35640   __PYX_ERR(1, 2, __pyx_L1_error)
35641 
35642   /* "(tree fragment)":1
35643  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
35644  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
35645  * def __setstate_cython__(self, __pyx_state):
35646  */
35647 
35648   /* function exit code */
35649   __pyx_L1_error:;
35650   __Pyx_XDECREF(__pyx_t_1);
35651   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35652   __pyx_r = NULL;
35653   __Pyx_XGIVEREF(__pyx_r);
35654   __Pyx_TraceReturn(__pyx_r, 0);
35655   __Pyx_RefNannyFinishContext();
35656   return __pyx_r;
35657 }
35658 
35659 /* "(tree fragment)":3
35660  * def __reduce_cython__(self):
35661  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
35662  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
35663  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
35664  */
35665 
35666 /* Python wrapper */
35667 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_215__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
35668 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_214__setstate_cython__[] = "CyClpSimplex.__setstate_cython__(self, __pyx_state)";
35669 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_215__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
35670   PyObject *__pyx_r = 0;
35671   __Pyx_RefNannyDeclarations
35672   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
35673   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_214__setstate_cython__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
35674 
35675   /* function exit code */
35676   __Pyx_RefNannyFinishContext();
35677   return __pyx_r;
35678 }
35679 
35680 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_214__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
35681   PyObject *__pyx_r = NULL;
35682   __Pyx_TraceDeclarations
35683   __Pyx_RefNannyDeclarations
35684   PyObject *__pyx_t_1 = NULL;
35685   int __pyx_lineno = 0;
35686   const char *__pyx_filename = NULL;
35687   int __pyx_clineno = 0;
35688   __Pyx_RefNannySetupContext("__setstate_cython__", 0);
35689   __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));
35690 
35691   /* "(tree fragment)":4
35692  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
35693  * def __setstate_cython__(self, __pyx_state):
35694  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
35695  */
35696   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
35697   __Pyx_GOTREF(__pyx_t_1);
35698   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
35699   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35700   __PYX_ERR(1, 4, __pyx_L1_error)
35701 
35702   /* "(tree fragment)":3
35703  * def __reduce_cython__(self):
35704  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
35705  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
35706  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
35707  */
35708 
35709   /* function exit code */
35710   __pyx_L1_error:;
35711   __Pyx_XDECREF(__pyx_t_1);
35712   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
35713   __pyx_r = NULL;
35714   __Pyx_XGIVEREF(__pyx_r);
35715   __Pyx_TraceReturn(__pyx_r, 0);
35716   __Pyx_RefNannyFinishContext();
35717   return __pyx_r;
35718 }
35719 
35720 /* "cylp/cy/CyClpSimplex.pyx":2178
35721  *
35722  *
35723  * def getModelExample():             # <<<<<<<<<<<<<<
35724  *     '''
35725  *     Return a model example to be used in doctests.
35726  */
35727 
35728 /* Python wrapper */
35729 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_1getModelExample(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
35730 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_getModelExample[] = "getModelExample()\n\n    Return a model example to be used in doctests.\n    ";
35731 static PyMethodDef __pyx_mdef_4cylp_2cy_12CyClpSimplex_1getModelExample = {"getModelExample", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_1getModelExample, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_getModelExample};
35732 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_1getModelExample(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
35733   PyObject *__pyx_r = 0;
35734   __Pyx_RefNannyDeclarations
35735   __Pyx_RefNannySetupContext("getModelExample (wrapper)", 0);
35736   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_getModelExample(__pyx_self);
35737 
35738   /* function exit code */
35739   __Pyx_RefNannyFinishContext();
35740   return __pyx_r;
35741 }
35742 
35743 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_getModelExample(CYTHON_UNUSED PyObject *__pyx_self) {
35744   PyObject *__pyx_v_np = NULL;
35745   PyObject *__pyx_v_CyLPModel = NULL;
35746   PyObject *__pyx_v_CyLPArray = NULL;
35747   CYTHON_UNUSED PyObject *__pyx_v_CyClpSimplex = NULL;
35748   PyObject *__pyx_v_model = NULL;
35749   PyObject *__pyx_v_x = NULL;
35750   PyObject *__pyx_v_y = NULL;
35751   PyObject *__pyx_v_A = NULL;
35752   PyObject *__pyx_v_B = NULL;
35753   PyObject *__pyx_v_D = NULL;
35754   PyObject *__pyx_v_a = NULL;
35755   PyObject *__pyx_v_b = NULL;
35756   PyObject *__pyx_v_x_u = NULL;
35757   PyObject *__pyx_v_c = NULL;
35758   PyObject *__pyx_r = NULL;
35759   __Pyx_TraceDeclarations
35760   __Pyx_RefNannyDeclarations
35761   PyObject *__pyx_t_1 = NULL;
35762   PyObject *__pyx_t_2 = NULL;
35763   PyObject *__pyx_t_3 = NULL;
35764   PyObject *__pyx_t_4 = NULL;
35765   PyObject *__pyx_t_5 = NULL;
35766   int __pyx_lineno = 0;
35767   const char *__pyx_filename = NULL;
35768   int __pyx_clineno = 0;
35769   __Pyx_TraceFrameInit(__pyx_codeobj__23)
35770   __Pyx_RefNannySetupContext("getModelExample", 0);
35771   __Pyx_TraceCall("getModelExample", __pyx_f[0], 2178, 0, __PYX_ERR(0, 2178, __pyx_L1_error));
35772 
35773   /* "cylp/cy/CyClpSimplex.pyx":2182
35774  *     Return a model example to be used in doctests.
35775  *     '''
35776  *     import numpy as np             # <<<<<<<<<<<<<<
35777  *     from cylp.py.modeling.CyLPModel import CyLPModel, CyLPArray
35778  *     from cylp.cy import CyClpSimplex
35779  */
35780   __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2182, __pyx_L1_error)
35781   __Pyx_GOTREF(__pyx_t_1);
35782   __pyx_v_np = __pyx_t_1;
35783   __pyx_t_1 = 0;
35784 
35785   /* "cylp/cy/CyClpSimplex.pyx":2183
35786  *     '''
35787  *     import numpy as np
35788  *     from cylp.py.modeling.CyLPModel import CyLPModel, CyLPArray             # <<<<<<<<<<<<<<
35789  *     from cylp.cy import CyClpSimplex
35790  *
35791  */
35792   __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
35793   __Pyx_GOTREF(__pyx_t_1);
35794   __Pyx_INCREF(__pyx_n_s_CyLPModel);
35795   __Pyx_GIVEREF(__pyx_n_s_CyLPModel);
35796   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_CyLPModel);
35797   __Pyx_INCREF(__pyx_n_s_CyLPArray);
35798   __Pyx_GIVEREF(__pyx_n_s_CyLPArray);
35799   PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_CyLPArray);
35800   __pyx_t_2 = __Pyx_Import(__pyx_n_s_cylp_py_modeling_CyLPModel, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2183, __pyx_L1_error)
35801   __Pyx_GOTREF(__pyx_t_2);
35802   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35803   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
35804   __Pyx_GOTREF(__pyx_t_1);
35805   __Pyx_INCREF(__pyx_t_1);
35806   __pyx_v_CyLPModel = __pyx_t_1;
35807   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35808   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
35809   __Pyx_GOTREF(__pyx_t_1);
35810   __Pyx_INCREF(__pyx_t_1);
35811   __pyx_v_CyLPArray = __pyx_t_1;
35812   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35813   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35814 
35815   /* "cylp/cy/CyClpSimplex.pyx":2184
35816  *     import numpy as np
35817  *     from cylp.py.modeling.CyLPModel import CyLPModel, CyLPArray
35818  *     from cylp.cy import CyClpSimplex             # <<<<<<<<<<<<<<
35819  *
35820  *     model = CyLPModel()
35821  */
35822   __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2184, __pyx_L1_error)
35823   __Pyx_GOTREF(__pyx_t_2);
35824   __Pyx_INCREF(__pyx_n_s_CyClpSimplex);
35825   __Pyx_GIVEREF(__pyx_n_s_CyClpSimplex);
35826   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_CyClpSimplex);
35827   __pyx_t_1 = __Pyx_Import(__pyx_n_s_cylp_cy, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2184, __pyx_L1_error)
35828   __Pyx_GOTREF(__pyx_t_1);
35829   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35830   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CyClpSimplex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2184, __pyx_L1_error)
35831   __Pyx_GOTREF(__pyx_t_2);
35832   __Pyx_INCREF(__pyx_t_2);
35833   __pyx_v_CyClpSimplex = __pyx_t_2;
35834   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35835   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35836 
35837   /* "cylp/cy/CyClpSimplex.pyx":2186
35838  *     from cylp.cy import CyClpSimplex
35839  *
35840  *     model = CyLPModel()             # <<<<<<<<<<<<<<
35841  *     x = model.addVariable('x', 3)
35842  *     y = model.addVariable('y', 2)
35843  */
35844   __Pyx_INCREF(__pyx_v_CyLPModel);
35845   __pyx_t_2 = __pyx_v_CyLPModel; __pyx_t_3 = NULL;
35846   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
35847     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
35848     if (likely(__pyx_t_3)) {
35849       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
35850       __Pyx_INCREF(__pyx_t_3);
35851       __Pyx_INCREF(function);
35852       __Pyx_DECREF_SET(__pyx_t_2, function);
35853     }
35854   }
35855   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
35856   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
35857   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2186, __pyx_L1_error)
35858   __Pyx_GOTREF(__pyx_t_1);
35859   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35860   __pyx_v_model = __pyx_t_1;
35861   __pyx_t_1 = 0;
35862 
35863   /* "cylp/cy/CyClpSimplex.pyx":2187
35864  *
35865  *     model = CyLPModel()
35866  *     x = model.addVariable('x', 3)             # <<<<<<<<<<<<<<
35867  *     y = model.addVariable('y', 2)
35868  *
35869  */
35870   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_addVariable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2187, __pyx_L1_error)
35871   __Pyx_GOTREF(__pyx_t_1);
35872   __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2187, __pyx_L1_error)
35873   __Pyx_GOTREF(__pyx_t_2);
35874   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
35875   __pyx_v_x = __pyx_t_2;
35876   __pyx_t_2 = 0;
35877 
35878   /* "cylp/cy/CyClpSimplex.pyx":2188
35879  *     model = CyLPModel()
35880  *     x = model.addVariable('x', 3)
35881  *     y = model.addVariable('y', 2)             # <<<<<<<<<<<<<<
35882  *
35883  *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])
35884  */
35885   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_addVariable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2188, __pyx_L1_error)
35886   __Pyx_GOTREF(__pyx_t_2);
35887   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2188, __pyx_L1_error)
35888   __Pyx_GOTREF(__pyx_t_1);
35889   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35890   __pyx_v_y = __pyx_t_1;
35891   __pyx_t_1 = 0;
35892 
35893   /* "cylp/cy/CyClpSimplex.pyx":2190
35894  *     y = model.addVariable('y', 2)
35895  *
35896  *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])             # <<<<<<<<<<<<<<
35897  *     B = np.matrix([[1., 0, 0], [0, 0, 1.]])
35898  *     D = np.matrix([[1., 2.], [0, 1]])
35899  */
35900   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_np, __pyx_n_s_matrix); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2190, __pyx_L1_error)
35901   __Pyx_GOTREF(__pyx_t_2);
35902   __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2190, __pyx_L1_error)
35903   __Pyx_GOTREF(__pyx_t_3);
35904   __Pyx_INCREF(__pyx_float_1_);
35905   __Pyx_GIVEREF(__pyx_float_1_);
35906   PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_1_);
35907   __Pyx_INCREF(__pyx_float_2_);
35908   __Pyx_GIVEREF(__pyx_float_2_);
35909   PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_2_);
35910   __Pyx_INCREF(__pyx_int_0);
35911   __Pyx_GIVEREF(__pyx_int_0);
35912   PyList_SET_ITEM(__pyx_t_3, 2, __pyx_int_0);
35913   __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2190, __pyx_L1_error)
35914   __Pyx_GOTREF(__pyx_t_4);
35915   __Pyx_INCREF(__pyx_float_1_);
35916   __Pyx_GIVEREF(__pyx_float_1_);
35917   PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_1_);
35918   __Pyx_INCREF(__pyx_int_0);
35919   __Pyx_GIVEREF(__pyx_int_0);
35920   PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_0);
35921   __Pyx_INCREF(__pyx_float_1_);
35922   __Pyx_GIVEREF(__pyx_float_1_);
35923   PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_1_);
35924   __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2190, __pyx_L1_error)
35925   __Pyx_GOTREF(__pyx_t_5);
35926   __Pyx_GIVEREF(__pyx_t_3);
35927   PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
35928   __Pyx_GIVEREF(__pyx_t_4);
35929   PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
35930   __pyx_t_3 = 0;
35931   __pyx_t_4 = 0;
35932   __pyx_t_4 = NULL;
35933   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
35934     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
35935     if (likely(__pyx_t_4)) {
35936       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
35937       __Pyx_INCREF(__pyx_t_4);
35938       __Pyx_INCREF(function);
35939       __Pyx_DECREF_SET(__pyx_t_2, function);
35940     }
35941   }
35942   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5);
35943   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
35944   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
35945   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2190, __pyx_L1_error)
35946   __Pyx_GOTREF(__pyx_t_1);
35947   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35948   __pyx_v_A = __pyx_t_1;
35949   __pyx_t_1 = 0;
35950 
35951   /* "cylp/cy/CyClpSimplex.pyx":2191
35952  *
35953  *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])
35954  *     B = np.matrix([[1., 0, 0], [0, 0, 1.]])             # <<<<<<<<<<<<<<
35955  *     D = np.matrix([[1., 2.], [0, 1]])
35956  *     a = CyLPArray([5, 2.5])
35957  */
35958   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_np, __pyx_n_s_matrix); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2191, __pyx_L1_error)
35959   __Pyx_GOTREF(__pyx_t_2);
35960   __pyx_t_5 = PyList_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2191, __pyx_L1_error)
35961   __Pyx_GOTREF(__pyx_t_5);
35962   __Pyx_INCREF(__pyx_float_1_);
35963   __Pyx_GIVEREF(__pyx_float_1_);
35964   PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_1_);
35965   __Pyx_INCREF(__pyx_int_0);
35966   __Pyx_GIVEREF(__pyx_int_0);
35967   PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_0);
35968   __Pyx_INCREF(__pyx_int_0);
35969   __Pyx_GIVEREF(__pyx_int_0);
35970   PyList_SET_ITEM(__pyx_t_5, 2, __pyx_int_0);
35971   __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2191, __pyx_L1_error)
35972   __Pyx_GOTREF(__pyx_t_4);
35973   __Pyx_INCREF(__pyx_int_0);
35974   __Pyx_GIVEREF(__pyx_int_0);
35975   PyList_SET_ITEM(__pyx_t_4, 0, __pyx_int_0);
35976   __Pyx_INCREF(__pyx_int_0);
35977   __Pyx_GIVEREF(__pyx_int_0);
35978   PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_0);
35979   __Pyx_INCREF(__pyx_float_1_);
35980   __Pyx_GIVEREF(__pyx_float_1_);
35981   PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_1_);
35982   __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2191, __pyx_L1_error)
35983   __Pyx_GOTREF(__pyx_t_3);
35984   __Pyx_GIVEREF(__pyx_t_5);
35985   PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
35986   __Pyx_GIVEREF(__pyx_t_4);
35987   PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
35988   __pyx_t_5 = 0;
35989   __pyx_t_4 = 0;
35990   __pyx_t_4 = NULL;
35991   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
35992     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
35993     if (likely(__pyx_t_4)) {
35994       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
35995       __Pyx_INCREF(__pyx_t_4);
35996       __Pyx_INCREF(function);
35997       __Pyx_DECREF_SET(__pyx_t_2, function);
35998     }
35999   }
36000   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
36001   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
36002   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
36003   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2191, __pyx_L1_error)
36004   __Pyx_GOTREF(__pyx_t_1);
36005   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36006   __pyx_v_B = __pyx_t_1;
36007   __pyx_t_1 = 0;
36008 
36009   /* "cylp/cy/CyClpSimplex.pyx":2192
36010  *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])
36011  *     B = np.matrix([[1., 0, 0], [0, 0, 1.]])
36012  *     D = np.matrix([[1., 2.], [0, 1]])             # <<<<<<<<<<<<<<
36013  *     a = CyLPArray([5, 2.5])
36014  *     b = CyLPArray([4.2, 3])
36015  */
36016   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_np, __pyx_n_s_matrix); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2192, __pyx_L1_error)
36017   __Pyx_GOTREF(__pyx_t_2);
36018   __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2192, __pyx_L1_error)
36019   __Pyx_GOTREF(__pyx_t_3);
36020   __Pyx_INCREF(__pyx_float_1_);
36021   __Pyx_GIVEREF(__pyx_float_1_);
36022   PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_1_);
36023   __Pyx_INCREF(__pyx_float_2_);
36024   __Pyx_GIVEREF(__pyx_float_2_);
36025   PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_2_);
36026   __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2192, __pyx_L1_error)
36027   __Pyx_GOTREF(__pyx_t_4);
36028   __Pyx_INCREF(__pyx_int_0);
36029   __Pyx_GIVEREF(__pyx_int_0);
36030   PyList_SET_ITEM(__pyx_t_4, 0, __pyx_int_0);
36031   __Pyx_INCREF(__pyx_int_1);
36032   __Pyx_GIVEREF(__pyx_int_1);
36033   PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_1);
36034   __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2192, __pyx_L1_error)
36035   __Pyx_GOTREF(__pyx_t_5);
36036   __Pyx_GIVEREF(__pyx_t_3);
36037   PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
36038   __Pyx_GIVEREF(__pyx_t_4);
36039   PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
36040   __pyx_t_3 = 0;
36041   __pyx_t_4 = 0;
36042   __pyx_t_4 = NULL;
36043   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
36044     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
36045     if (likely(__pyx_t_4)) {
36046       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
36047       __Pyx_INCREF(__pyx_t_4);
36048       __Pyx_INCREF(function);
36049       __Pyx_DECREF_SET(__pyx_t_2, function);
36050     }
36051   }
36052   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5);
36053   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
36054   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36055   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2192, __pyx_L1_error)
36056   __Pyx_GOTREF(__pyx_t_1);
36057   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36058   __pyx_v_D = __pyx_t_1;
36059   __pyx_t_1 = 0;
36060 
36061   /* "cylp/cy/CyClpSimplex.pyx":2193
36062  *     B = np.matrix([[1., 0, 0], [0, 0, 1.]])
36063  *     D = np.matrix([[1., 2.], [0, 1]])
36064  *     a = CyLPArray([5, 2.5])             # <<<<<<<<<<<<<<
36065  *     b = CyLPArray([4.2, 3])
36066  *     x_u= CyLPArray([2., 3.5])
36067  */
36068   __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2193, __pyx_L1_error)
36069   __Pyx_GOTREF(__pyx_t_2);
36070   __Pyx_INCREF(__pyx_int_5);
36071   __Pyx_GIVEREF(__pyx_int_5);
36072   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_int_5);
36073   __Pyx_INCREF(__pyx_float_2_5);
36074   __Pyx_GIVEREF(__pyx_float_2_5);
36075   PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_2_5);
36076   __Pyx_INCREF(__pyx_v_CyLPArray);
36077   __pyx_t_5 = __pyx_v_CyLPArray; __pyx_t_4 = NULL;
36078   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
36079     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
36080     if (likely(__pyx_t_4)) {
36081       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
36082       __Pyx_INCREF(__pyx_t_4);
36083       __Pyx_INCREF(function);
36084       __Pyx_DECREF_SET(__pyx_t_5, function);
36085     }
36086   }
36087   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_2);
36088   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
36089   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36090   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2193, __pyx_L1_error)
36091   __Pyx_GOTREF(__pyx_t_1);
36092   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36093   __pyx_v_a = __pyx_t_1;
36094   __pyx_t_1 = 0;
36095 
36096   /* "cylp/cy/CyClpSimplex.pyx":2194
36097  *     D = np.matrix([[1., 2.], [0, 1]])
36098  *     a = CyLPArray([5, 2.5])
36099  *     b = CyLPArray([4.2, 3])             # <<<<<<<<<<<<<<
36100  *     x_u= CyLPArray([2., 3.5])
36101  *
36102  */
36103   __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2194, __pyx_L1_error)
36104   __Pyx_GOTREF(__pyx_t_5);
36105   __Pyx_INCREF(__pyx_float_4_2);
36106   __Pyx_GIVEREF(__pyx_float_4_2);
36107   PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_4_2);
36108   __Pyx_INCREF(__pyx_int_3);
36109   __Pyx_GIVEREF(__pyx_int_3);
36110   PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_3);
36111   __Pyx_INCREF(__pyx_v_CyLPArray);
36112   __pyx_t_2 = __pyx_v_CyLPArray; __pyx_t_4 = NULL;
36113   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
36114     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
36115     if (likely(__pyx_t_4)) {
36116       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
36117       __Pyx_INCREF(__pyx_t_4);
36118       __Pyx_INCREF(function);
36119       __Pyx_DECREF_SET(__pyx_t_2, function);
36120     }
36121   }
36122   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5);
36123   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
36124   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36125   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2194, __pyx_L1_error)
36126   __Pyx_GOTREF(__pyx_t_1);
36127   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36128   __pyx_v_b = __pyx_t_1;
36129   __pyx_t_1 = 0;
36130 
36131   /* "cylp/cy/CyClpSimplex.pyx":2195
36132  *     a = CyLPArray([5, 2.5])
36133  *     b = CyLPArray([4.2, 3])
36134  *     x_u= CyLPArray([2., 3.5])             # <<<<<<<<<<<<<<
36135  *
36136  *     model += A * x <= a
36137  */
36138   __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2195, __pyx_L1_error)
36139   __Pyx_GOTREF(__pyx_t_2);
36140   __Pyx_INCREF(__pyx_float_2_);
36141   __Pyx_GIVEREF(__pyx_float_2_);
36142   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_2_);
36143   __Pyx_INCREF(__pyx_float_3_5);
36144   __Pyx_GIVEREF(__pyx_float_3_5);
36145   PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_3_5);
36146   __Pyx_INCREF(__pyx_v_CyLPArray);
36147   __pyx_t_5 = __pyx_v_CyLPArray; __pyx_t_4 = NULL;
36148   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
36149     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
36150     if (likely(__pyx_t_4)) {
36151       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
36152       __Pyx_INCREF(__pyx_t_4);
36153       __Pyx_INCREF(function);
36154       __Pyx_DECREF_SET(__pyx_t_5, function);
36155     }
36156   }
36157   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_2);
36158   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
36159   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36160   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2195, __pyx_L1_error)
36161   __Pyx_GOTREF(__pyx_t_1);
36162   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36163   __pyx_v_x_u = __pyx_t_1;
36164   __pyx_t_1 = 0;
36165 
36166   /* "cylp/cy/CyClpSimplex.pyx":2197
36167  *     x_u= CyLPArray([2., 3.5])
36168  *
36169  *     model += A * x <= a             # <<<<<<<<<<<<<<
36170  *     model += 2 <= B * x + D * y <= b
36171  *     model += y >= 0
36172  */
36173   __pyx_t_1 = PyNumber_Multiply(__pyx_v_A, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2197, __pyx_L1_error)
36174   __Pyx_GOTREF(__pyx_t_1);
36175   __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_v_a, Py_LE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2197, __pyx_L1_error)
36176   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36177   __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_model, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2197, __pyx_L1_error)
36178   __Pyx_GOTREF(__pyx_t_1);
36179   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36180   __Pyx_DECREF_SET(__pyx_v_model, __pyx_t_1);
36181   __pyx_t_1 = 0;
36182 
36183   /* "cylp/cy/CyClpSimplex.pyx":2198
36184  *
36185  *     model += A * x <= a
36186  *     model += 2 <= B * x + D * y <= b             # <<<<<<<<<<<<<<
36187  *     model += y >= 0
36188  *     model += 1.1 <= x[1:3] <= x_u
36189  */
36190   __pyx_t_1 = PyNumber_Multiply(__pyx_v_B, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2198, __pyx_L1_error)
36191   __Pyx_GOTREF(__pyx_t_1);
36192   __pyx_t_5 = PyNumber_Multiply(__pyx_v_D, __pyx_v_y); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2198, __pyx_L1_error)
36193   __Pyx_GOTREF(__pyx_t_5);
36194   __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2198, __pyx_L1_error)
36195   __Pyx_GOTREF(__pyx_t_2);
36196   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36197   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36198   __pyx_t_5 = PyObject_RichCompare(__pyx_int_2, __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2198, __pyx_L1_error)
36199   if (__Pyx_PyObject_IsTrue(__pyx_t_5)) {
36200     __Pyx_DECREF(__pyx_t_5);
36201     __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_v_b, Py_LE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2198, __pyx_L1_error)
36202   }
36203   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36204   __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_model, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2198, __pyx_L1_error)
36205   __Pyx_GOTREF(__pyx_t_2);
36206   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36207   __Pyx_DECREF_SET(__pyx_v_model, __pyx_t_2);
36208   __pyx_t_2 = 0;
36209 
36210   /* "cylp/cy/CyClpSimplex.pyx":2199
36211  *     model += A * x <= a
36212  *     model += 2 <= B * x + D * y <= b
36213  *     model += y >= 0             # <<<<<<<<<<<<<<
36214  *     model += 1.1 <= x[1:3] <= x_u
36215  *
36216  */
36217   __pyx_t_2 = PyObject_RichCompare(__pyx_v_y, __pyx_int_0, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2199, __pyx_L1_error)
36218   __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_model, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2199, __pyx_L1_error)
36219   __Pyx_GOTREF(__pyx_t_5);
36220   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36221   __Pyx_DECREF_SET(__pyx_v_model, __pyx_t_5);
36222   __pyx_t_5 = 0;
36223 
36224   /* "cylp/cy/CyClpSimplex.pyx":2200
36225  *     model += 2 <= B * x + D * y <= b
36226  *     model += y >= 0
36227  *     model += 1.1 <= x[1:3] <= x_u             # <<<<<<<<<<<<<<
36228  *
36229  *     c = CyLPArray([1., -2., 3.])
36230  */
36231   __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_x, 1, 3, NULL, NULL, &__pyx_slice__26, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2200, __pyx_L1_error)
36232   __Pyx_GOTREF(__pyx_t_5);
36233   __pyx_t_2 = PyObject_RichCompare(__pyx_float_1_1, __pyx_t_5, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2200, __pyx_L1_error)
36234   if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
36235     __Pyx_DECREF(__pyx_t_2);
36236     __pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_v_x_u, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2200, __pyx_L1_error)
36237   }
36238   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36239   __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_model, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2200, __pyx_L1_error)
36240   __Pyx_GOTREF(__pyx_t_5);
36241   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36242   __Pyx_DECREF_SET(__pyx_v_model, __pyx_t_5);
36243   __pyx_t_5 = 0;
36244 
36245   /* "cylp/cy/CyClpSimplex.pyx":2202
36246  *     model += 1.1 <= x[1:3] <= x_u
36247  *
36248  *     c = CyLPArray([1., -2., 3.])             # <<<<<<<<<<<<<<
36249  *     model.objective = c * x + 2 * y.sum()
36250  *
36251  */
36252   __pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2202, __pyx_L1_error)
36253   __Pyx_GOTREF(__pyx_t_2);
36254   __Pyx_INCREF(__pyx_float_1_);
36255   __Pyx_GIVEREF(__pyx_float_1_);
36256   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_1_);
36257   __Pyx_INCREF(__pyx_float_neg_2_);
36258   __Pyx_GIVEREF(__pyx_float_neg_2_);
36259   PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_neg_2_);
36260   __Pyx_INCREF(__pyx_float_3_);
36261   __Pyx_GIVEREF(__pyx_float_3_);
36262   PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_3_);
36263   __Pyx_INCREF(__pyx_v_CyLPArray);
36264   __pyx_t_1 = __pyx_v_CyLPArray; __pyx_t_4 = NULL;
36265   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
36266     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
36267     if (likely(__pyx_t_4)) {
36268       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
36269       __Pyx_INCREF(__pyx_t_4);
36270       __Pyx_INCREF(function);
36271       __Pyx_DECREF_SET(__pyx_t_1, function);
36272     }
36273   }
36274   __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2);
36275   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
36276   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36277   if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2202, __pyx_L1_error)
36278   __Pyx_GOTREF(__pyx_t_5);
36279   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36280   __pyx_v_c = __pyx_t_5;
36281   __pyx_t_5 = 0;
36282 
36283   /* "cylp/cy/CyClpSimplex.pyx":2203
36284  *
36285  *     c = CyLPArray([1., -2., 3.])
36286  *     model.objective = c * x + 2 * y.sum()             # <<<<<<<<<<<<<<
36287  *
36288  *     return model
36289  */
36290   __pyx_t_5 = PyNumber_Multiply(__pyx_v_c, __pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2203, __pyx_L1_error)
36291   __Pyx_GOTREF(__pyx_t_5);
36292   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_sum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2203, __pyx_L1_error)
36293   __Pyx_GOTREF(__pyx_t_2);
36294   __pyx_t_4 = NULL;
36295   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
36296     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
36297     if (likely(__pyx_t_4)) {
36298       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
36299       __Pyx_INCREF(__pyx_t_4);
36300       __Pyx_INCREF(function);
36301       __Pyx_DECREF_SET(__pyx_t_2, function);
36302     }
36303   }
36304   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
36305   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
36306   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2203, __pyx_L1_error)
36307   __Pyx_GOTREF(__pyx_t_1);
36308   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36309   __pyx_t_2 = PyNumber_Multiply(__pyx_int_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2203, __pyx_L1_error)
36310   __Pyx_GOTREF(__pyx_t_2);
36311   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36312   __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2203, __pyx_L1_error)
36313   __Pyx_GOTREF(__pyx_t_1);
36314   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36315   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36316   if (__Pyx_PyObject_SetAttrStr(__pyx_v_model, __pyx_n_s_objective, __pyx_t_1) < 0) __PYX_ERR(0, 2203, __pyx_L1_error)
36317   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36318 
36319   /* "cylp/cy/CyClpSimplex.pyx":2205
36320  *     model.objective = c * x + 2 * y.sum()
36321  *
36322  *     return model             # <<<<<<<<<<<<<<
36323  *
36324  *
36325  */
36326   __Pyx_XDECREF(__pyx_r);
36327   __Pyx_INCREF(__pyx_v_model);
36328   __pyx_r = __pyx_v_model;
36329   goto __pyx_L0;
36330 
36331   /* "cylp/cy/CyClpSimplex.pyx":2178
36332  *
36333  *
36334  * def getModelExample():             # <<<<<<<<<<<<<<
36335  *     '''
36336  *     Return a model example to be used in doctests.
36337  */
36338 
36339   /* function exit code */
36340   __pyx_L1_error:;
36341   __Pyx_XDECREF(__pyx_t_1);
36342   __Pyx_XDECREF(__pyx_t_2);
36343   __Pyx_XDECREF(__pyx_t_3);
36344   __Pyx_XDECREF(__pyx_t_4);
36345   __Pyx_XDECREF(__pyx_t_5);
36346   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.getModelExample", __pyx_clineno, __pyx_lineno, __pyx_filename);
36347   __pyx_r = NULL;
36348   __pyx_L0:;
36349   __Pyx_XDECREF(__pyx_v_np);
36350   __Pyx_XDECREF(__pyx_v_CyLPModel);
36351   __Pyx_XDECREF(__pyx_v_CyLPArray);
36352   __Pyx_XDECREF(__pyx_v_CyClpSimplex);
36353   __Pyx_XDECREF(__pyx_v_model);
36354   __Pyx_XDECREF(__pyx_v_x);
36355   __Pyx_XDECREF(__pyx_v_y);
36356   __Pyx_XDECREF(__pyx_v_A);
36357   __Pyx_XDECREF(__pyx_v_B);
36358   __Pyx_XDECREF(__pyx_v_D);
36359   __Pyx_XDECREF(__pyx_v_a);
36360   __Pyx_XDECREF(__pyx_v_b);
36361   __Pyx_XDECREF(__pyx_v_x_u);
36362   __Pyx_XDECREF(__pyx_v_c);
36363   __Pyx_XGIVEREF(__pyx_r);
36364   __Pyx_TraceReturn(__pyx_r, 0);
36365   __Pyx_RefNannyFinishContext();
36366   return __pyx_r;
36367 }
36368 
36369 /* "cylp/cy/CyClpSimplex.pyx":2208
36370  *
36371  *
36372  * cpdef cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2):             # <<<<<<<<<<<<<<
36373  *     return cdot(v1.CppSelf, v2.CppSelf)
36374  *
36375  */
36376 
36377 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_3cydot(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36378 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_cydot(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v1, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v2, CYTHON_UNUSED int __pyx_skip_dispatch) {
36379   PyObject *__pyx_r = NULL;
36380   __Pyx_TraceDeclarations
36381   __Pyx_RefNannyDeclarations
36382   PyObject *__pyx_t_1 = NULL;
36383   int __pyx_lineno = 0;
36384   const char *__pyx_filename = NULL;
36385   int __pyx_clineno = 0;
36386   __Pyx_RefNannySetupContext("cydot", 0);
36387   __Pyx_TraceCall("cydot", __pyx_f[0], 2208, 0, __PYX_ERR(0, 2208, __pyx_L1_error));
36388 
36389   /* "cylp/cy/CyClpSimplex.pyx":2209
36390  *
36391  * cpdef cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2):
36392  *     return cdot(v1.CppSelf, v2.CppSelf)             # <<<<<<<<<<<<<<
36393  *
36394  *
36395  */
36396   __Pyx_XDECREF(__pyx_r);
36397   __pyx_t_1 = PyFloat_FromDouble(cdot(__pyx_v_v1->CppSelf, __pyx_v_v2->CppSelf)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2209, __pyx_L1_error)
36398   __Pyx_GOTREF(__pyx_t_1);
36399   __pyx_r = __pyx_t_1;
36400   __pyx_t_1 = 0;
36401   goto __pyx_L0;
36402 
36403   /* "cylp/cy/CyClpSimplex.pyx":2208
36404  *
36405  *
36406  * cpdef cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2):             # <<<<<<<<<<<<<<
36407  *     return cdot(v1.CppSelf, v2.CppSelf)
36408  *
36409  */
36410 
36411   /* function exit code */
36412   __pyx_L1_error:;
36413   __Pyx_XDECREF(__pyx_t_1);
36414   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.cydot", __pyx_clineno, __pyx_lineno, __pyx_filename);
36415   __pyx_r = 0;
36416   __pyx_L0:;
36417   __Pyx_XGIVEREF(__pyx_r);
36418   __Pyx_TraceReturn(__pyx_r, 0);
36419   __Pyx_RefNannyFinishContext();
36420   return __pyx_r;
36421 }
36422 
36423 /* Python wrapper */
36424 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_3cydot(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36425 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_2cydot[] = "cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2)";
36426 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_3cydot(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36427   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v1 = 0;
36428   struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v2 = 0;
36429   int __pyx_lineno = 0;
36430   const char *__pyx_filename = NULL;
36431   int __pyx_clineno = 0;
36432   PyObject *__pyx_r = 0;
36433   __Pyx_RefNannyDeclarations
36434   __Pyx_RefNannySetupContext("cydot (wrapper)", 0);
36435   {
36436     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_v1,&__pyx_n_s_v2,0};
36437     PyObject* values[2] = {0,0};
36438     if (unlikely(__pyx_kwds)) {
36439       Py_ssize_t kw_args;
36440       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
36441       switch (pos_args) {
36442         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36443         CYTHON_FALLTHROUGH;
36444         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36445         CYTHON_FALLTHROUGH;
36446         case  0: break;
36447         default: goto __pyx_L5_argtuple_error;
36448       }
36449       kw_args = PyDict_Size(__pyx_kwds);
36450       switch (pos_args) {
36451         case  0:
36452         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v1)) != 0)) kw_args--;
36453         else goto __pyx_L5_argtuple_error;
36454         CYTHON_FALLTHROUGH;
36455         case  1:
36456         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v2)) != 0)) kw_args--;
36457         else {
36458           __Pyx_RaiseArgtupleInvalid("cydot", 1, 2, 2, 1); __PYX_ERR(0, 2208, __pyx_L3_error)
36459         }
36460       }
36461       if (unlikely(kw_args > 0)) {
36462         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cydot") < 0)) __PYX_ERR(0, 2208, __pyx_L3_error)
36463       }
36464     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
36465       goto __pyx_L5_argtuple_error;
36466     } else {
36467       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36468       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36469     }
36470     __pyx_v_v1 = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[0]);
36471     __pyx_v_v2 = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
36472   }
36473   goto __pyx_L4_argument_unpacking_done;
36474   __pyx_L5_argtuple_error:;
36475   __Pyx_RaiseArgtupleInvalid("cydot", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2208, __pyx_L3_error)
36476   __pyx_L3_error:;
36477   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.cydot", __pyx_clineno, __pyx_lineno, __pyx_filename);
36478   __Pyx_RefNannyFinishContext();
36479   return NULL;
36480   __pyx_L4_argument_unpacking_done:;
36481   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v1), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "v1", 0))) __PYX_ERR(0, 2208, __pyx_L1_error)
36482   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v2), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "v2", 0))) __PYX_ERR(0, 2208, __pyx_L1_error)
36483   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_2cydot(__pyx_self, __pyx_v_v1, __pyx_v_v2);
36484 
36485   /* function exit code */
36486   goto __pyx_L0;
36487   __pyx_L1_error:;
36488   __pyx_r = NULL;
36489   __pyx_L0:;
36490   __Pyx_RefNannyFinishContext();
36491   return __pyx_r;
36492 }
36493 
36494 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_2cydot(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v1, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v2) {
36495   PyObject *__pyx_r = NULL;
36496   __Pyx_TraceDeclarations
36497   __Pyx_RefNannyDeclarations
36498   PyObject *__pyx_t_1 = NULL;
36499   int __pyx_lineno = 0;
36500   const char *__pyx_filename = NULL;
36501   int __pyx_clineno = 0;
36502   __Pyx_RefNannySetupContext("cydot", 0);
36503   __Pyx_TraceCall("cydot (wrapper)", __pyx_f[0], 2208, 0, __PYX_ERR(0, 2208, __pyx_L1_error));
36504   __Pyx_XDECREF(__pyx_r);
36505   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex_cydot(__pyx_v_v1, __pyx_v_v2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2208, __pyx_L1_error)
36506   __Pyx_GOTREF(__pyx_t_1);
36507   __pyx_r = __pyx_t_1;
36508   __pyx_t_1 = 0;
36509   goto __pyx_L0;
36510 
36511   /* function exit code */
36512   __pyx_L1_error:;
36513   __Pyx_XDECREF(__pyx_t_1);
36514   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.cydot", __pyx_clineno, __pyx_lineno, __pyx_filename);
36515   __pyx_r = NULL;
36516   __pyx_L0:;
36517   __Pyx_XGIVEREF(__pyx_r);
36518   __Pyx_TraceReturn(__pyx_r, 0);
36519   __Pyx_RefNannyFinishContext();
36520   return __pyx_r;
36521 }
36522 
36523 /* "cylp/cy/CyClpSimplex.pyx":2212
36524  *
36525  *
36526  * def getMpsExample():             # <<<<<<<<<<<<<<
36527  *     '''
36528  *     Return full path to an MPS example file for doctests
36529  */
36530 
36531 /* Python wrapper */
36532 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_5getMpsExample(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
36533 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_4getMpsExample[] = "getMpsExample()\n\n    Return full path to an MPS example file for doctests\n    ";
36534 static PyMethodDef __pyx_mdef_4cylp_2cy_12CyClpSimplex_5getMpsExample = {"getMpsExample", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_5getMpsExample, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_4getMpsExample};
36535 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_5getMpsExample(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
36536   PyObject *__pyx_r = 0;
36537   __Pyx_RefNannyDeclarations
36538   __Pyx_RefNannySetupContext("getMpsExample (wrapper)", 0);
36539   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_4getMpsExample(__pyx_self);
36540 
36541   /* function exit code */
36542   __Pyx_RefNannyFinishContext();
36543   return __pyx_r;
36544 }
36545 
36546 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_4getMpsExample(CYTHON_UNUSED PyObject *__pyx_self) {
36547   PyObject *__pyx_v_os = NULL;
36548   PyObject *__pyx_v_inspect = NULL;
36549   PyObject *__pyx_v_curpath = NULL;
36550   PyObject *__pyx_r = NULL;
36551   __Pyx_TraceDeclarations
36552   __Pyx_RefNannyDeclarations
36553   PyObject *__pyx_t_1 = NULL;
36554   PyObject *__pyx_t_2 = NULL;
36555   PyObject *__pyx_t_3 = NULL;
36556   PyObject *__pyx_t_4 = NULL;
36557   PyObject *__pyx_t_5 = NULL;
36558   PyObject *__pyx_t_6 = NULL;
36559   PyObject *__pyx_t_7 = NULL;
36560   int __pyx_t_8;
36561   int __pyx_lineno = 0;
36562   const char *__pyx_filename = NULL;
36563   int __pyx_clineno = 0;
36564   __Pyx_TraceFrameInit(__pyx_codeobj__27)
36565   __Pyx_RefNannySetupContext("getMpsExample", 0);
36566   __Pyx_TraceCall("getMpsExample", __pyx_f[0], 2212, 0, __PYX_ERR(0, 2212, __pyx_L1_error));
36567 
36568   /* "cylp/cy/CyClpSimplex.pyx":2216
36569  *     Return full path to an MPS example file for doctests
36570  *     '''
36571  *     import os             # <<<<<<<<<<<<<<
36572  *     import inspect
36573  *     curpath = os.path.dirname(inspect.getfile(inspect.currentframe()))
36574  */
36575   __pyx_t_1 = __Pyx_Import(__pyx_n_s_os, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2216, __pyx_L1_error)
36576   __Pyx_GOTREF(__pyx_t_1);
36577   __pyx_v_os = __pyx_t_1;
36578   __pyx_t_1 = 0;
36579 
36580   /* "cylp/cy/CyClpSimplex.pyx":2217
36581  *     '''
36582  *     import os
36583  *     import inspect             # <<<<<<<<<<<<<<
36584  *     curpath = os.path.dirname(inspect.getfile(inspect.currentframe()))
36585  *     return os.path.join(curpath, '../input/p0033.mps')
36586  */
36587   __pyx_t_1 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, 0, -1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2217, __pyx_L1_error)
36588   __Pyx_GOTREF(__pyx_t_1);
36589   __pyx_v_inspect = __pyx_t_1;
36590   __pyx_t_1 = 0;
36591 
36592   /* "cylp/cy/CyClpSimplex.pyx":2218
36593  *     import os
36594  *     import inspect
36595  *     curpath = os.path.dirname(inspect.getfile(inspect.currentframe()))             # <<<<<<<<<<<<<<
36596  *     return os.path.join(curpath, '../input/p0033.mps')
36597  *
36598  */
36599   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_os, __pyx_n_s_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2218, __pyx_L1_error)
36600   __Pyx_GOTREF(__pyx_t_2);
36601   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_dirname); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2218, __pyx_L1_error)
36602   __Pyx_GOTREF(__pyx_t_3);
36603   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36604   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inspect, __pyx_n_s_getfile); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2218, __pyx_L1_error)
36605   __Pyx_GOTREF(__pyx_t_4);
36606   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_inspect, __pyx_n_s_currentframe); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2218, __pyx_L1_error)
36607   __Pyx_GOTREF(__pyx_t_6);
36608   __pyx_t_7 = NULL;
36609   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
36610     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
36611     if (likely(__pyx_t_7)) {
36612       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
36613       __Pyx_INCREF(__pyx_t_7);
36614       __Pyx_INCREF(function);
36615       __Pyx_DECREF_SET(__pyx_t_6, function);
36616     }
36617   }
36618   __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
36619   __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
36620   if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2218, __pyx_L1_error)
36621   __Pyx_GOTREF(__pyx_t_5);
36622   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
36623   __pyx_t_6 = NULL;
36624   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
36625     __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
36626     if (likely(__pyx_t_6)) {
36627       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
36628       __Pyx_INCREF(__pyx_t_6);
36629       __Pyx_INCREF(function);
36630       __Pyx_DECREF_SET(__pyx_t_4, function);
36631     }
36632   }
36633   __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
36634   __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
36635   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
36636   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2218, __pyx_L1_error)
36637   __Pyx_GOTREF(__pyx_t_2);
36638   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36639   __pyx_t_4 = NULL;
36640   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
36641     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
36642     if (likely(__pyx_t_4)) {
36643       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
36644       __Pyx_INCREF(__pyx_t_4);
36645       __Pyx_INCREF(function);
36646       __Pyx_DECREF_SET(__pyx_t_3, function);
36647     }
36648   }
36649   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
36650   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
36651   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36652   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2218, __pyx_L1_error)
36653   __Pyx_GOTREF(__pyx_t_1);
36654   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
36655   __pyx_v_curpath = __pyx_t_1;
36656   __pyx_t_1 = 0;
36657 
36658   /* "cylp/cy/CyClpSimplex.pyx":2219
36659  *     import inspect
36660  *     curpath = os.path.dirname(inspect.getfile(inspect.currentframe()))
36661  *     return os.path.join(curpath, '../input/p0033.mps')             # <<<<<<<<<<<<<<
36662  *
36663  *
36664  */
36665   __Pyx_XDECREF(__pyx_r);
36666   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_os, __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2219, __pyx_L1_error)
36667   __Pyx_GOTREF(__pyx_t_3);
36668   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_join); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2219, __pyx_L1_error)
36669   __Pyx_GOTREF(__pyx_t_2);
36670   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
36671   __pyx_t_3 = NULL;
36672   __pyx_t_8 = 0;
36673   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
36674     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
36675     if (likely(__pyx_t_3)) {
36676       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
36677       __Pyx_INCREF(__pyx_t_3);
36678       __Pyx_INCREF(function);
36679       __Pyx_DECREF_SET(__pyx_t_2, function);
36680       __pyx_t_8 = 1;
36681     }
36682   }
36683   #if CYTHON_FAST_PYCALL
36684   if (PyFunction_Check(__pyx_t_2)) {
36685     PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_curpath, __pyx_kp_s_input_p0033_mps};
36686     __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2219, __pyx_L1_error)
36687     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
36688     __Pyx_GOTREF(__pyx_t_1);
36689   } else
36690   #endif
36691   #if CYTHON_FAST_PYCCALL
36692   if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
36693     PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_curpath, __pyx_kp_s_input_p0033_mps};
36694     __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2219, __pyx_L1_error)
36695     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
36696     __Pyx_GOTREF(__pyx_t_1);
36697   } else
36698   #endif
36699   {
36700     __pyx_t_4 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2219, __pyx_L1_error)
36701     __Pyx_GOTREF(__pyx_t_4);
36702     if (__pyx_t_3) {
36703       __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
36704     }
36705     __Pyx_INCREF(__pyx_v_curpath);
36706     __Pyx_GIVEREF(__pyx_v_curpath);
36707     PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_v_curpath);
36708     __Pyx_INCREF(__pyx_kp_s_input_p0033_mps);
36709     __Pyx_GIVEREF(__pyx_kp_s_input_p0033_mps);
36710     PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_kp_s_input_p0033_mps);
36711     __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2219, __pyx_L1_error)
36712     __Pyx_GOTREF(__pyx_t_1);
36713     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
36714   }
36715   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36716   __pyx_r = __pyx_t_1;
36717   __pyx_t_1 = 0;
36718   goto __pyx_L0;
36719 
36720   /* "cylp/cy/CyClpSimplex.pyx":2212
36721  *
36722  *
36723  * def getMpsExample():             # <<<<<<<<<<<<<<
36724  *     '''
36725  *     Return full path to an MPS example file for doctests
36726  */
36727 
36728   /* function exit code */
36729   __pyx_L1_error:;
36730   __Pyx_XDECREF(__pyx_t_1);
36731   __Pyx_XDECREF(__pyx_t_2);
36732   __Pyx_XDECREF(__pyx_t_3);
36733   __Pyx_XDECREF(__pyx_t_4);
36734   __Pyx_XDECREF(__pyx_t_5);
36735   __Pyx_XDECREF(__pyx_t_6);
36736   __Pyx_XDECREF(__pyx_t_7);
36737   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.getMpsExample", __pyx_clineno, __pyx_lineno, __pyx_filename);
36738   __pyx_r = NULL;
36739   __pyx_L0:;
36740   __Pyx_XDECREF(__pyx_v_os);
36741   __Pyx_XDECREF(__pyx_v_inspect);
36742   __Pyx_XDECREF(__pyx_v_curpath);
36743   __Pyx_XGIVEREF(__pyx_r);
36744   __Pyx_TraceReturn(__pyx_r, 0);
36745   __Pyx_RefNannyFinishContext();
36746   return __pyx_r;
36747 }
36748 
36749 /* "cylp/cy/CyClpSimplex.pyx":2222
36750  *
36751  *
36752  * cdef int RunIsPivotAcceptable(void * ptr):             # <<<<<<<<<<<<<<
36753  *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
36754  *     return CyWrapper.isPivotAcceptable()
36755  */
36756 
36757 static int __pyx_f_4cylp_2cy_12CyClpSimplex_RunIsPivotAcceptable(void *__pyx_v_ptr) {
36758   struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_CyWrapper = 0;
36759   int __pyx_r;
36760   __Pyx_TraceDeclarations
36761   __Pyx_RefNannyDeclarations
36762   PyObject *__pyx_t_1 = NULL;
36763   PyObject *__pyx_t_2 = NULL;
36764   PyObject *__pyx_t_3 = NULL;
36765   int __pyx_t_4;
36766   int __pyx_lineno = 0;
36767   const char *__pyx_filename = NULL;
36768   int __pyx_clineno = 0;
36769   __Pyx_RefNannySetupContext("RunIsPivotAcceptable", 0);
36770   __Pyx_TraceCall("RunIsPivotAcceptable", __pyx_f[0], 2222, 0, __PYX_ERR(0, 2222, __pyx_L1_error));
36771 
36772   /* "cylp/cy/CyClpSimplex.pyx":2223
36773  *
36774  * cdef int RunIsPivotAcceptable(void * ptr):
36775  *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)             # <<<<<<<<<<<<<<
36776  *     return CyWrapper.isPivotAcceptable()
36777  *
36778  */
36779   __pyx_t_1 = ((PyObject *)__pyx_v_ptr);
36780   __Pyx_INCREF(__pyx_t_1);
36781   __pyx_v_CyWrapper = ((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_t_1);
36782   __pyx_t_1 = 0;
36783 
36784   /* "cylp/cy/CyClpSimplex.pyx":2224
36785  * cdef int RunIsPivotAcceptable(void * ptr):
36786  *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
36787  *     return CyWrapper.isPivotAcceptable()             # <<<<<<<<<<<<<<
36788  *
36789  *
36790  */
36791   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_CyWrapper), __pyx_n_s_isPivotAcceptable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2224, __pyx_L1_error)
36792   __Pyx_GOTREF(__pyx_t_2);
36793   __pyx_t_3 = NULL;
36794   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
36795     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
36796     if (likely(__pyx_t_3)) {
36797       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
36798       __Pyx_INCREF(__pyx_t_3);
36799       __Pyx_INCREF(function);
36800       __Pyx_DECREF_SET(__pyx_t_2, function);
36801     }
36802   }
36803   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
36804   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
36805   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2224, __pyx_L1_error)
36806   __Pyx_GOTREF(__pyx_t_1);
36807   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36808   __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2224, __pyx_L1_error)
36809   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36810   __pyx_r = __pyx_t_4;
36811   goto __pyx_L0;
36812 
36813   /* "cylp/cy/CyClpSimplex.pyx":2222
36814  *
36815  *
36816  * cdef int RunIsPivotAcceptable(void * ptr):             # <<<<<<<<<<<<<<
36817  *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
36818  *     return CyWrapper.isPivotAcceptable()
36819  */
36820 
36821   /* function exit code */
36822   __pyx_L1_error:;
36823   __Pyx_XDECREF(__pyx_t_1);
36824   __Pyx_XDECREF(__pyx_t_2);
36825   __Pyx_XDECREF(__pyx_t_3);
36826   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.RunIsPivotAcceptable", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
36827   __pyx_r = 0;
36828   __pyx_L0:;
36829   __Pyx_XDECREF((PyObject *)__pyx_v_CyWrapper);
36830   __Pyx_TraceReturn(Py_None, 0);
36831   __Pyx_RefNannyFinishContext();
36832   return __pyx_r;
36833 }
36834 
36835 /* "cylp/cy/CyClpSimplex.pyx":2227
36836  *
36837  *
36838  * cdef int RunVarSelCriteria(void * ptr, int varInd):             # <<<<<<<<<<<<<<
36839  *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
36840  *     return CyWrapper.checkVar(varInd)
36841  */
36842 
36843 static int __pyx_f_4cylp_2cy_12CyClpSimplex_RunVarSelCriteria(void *__pyx_v_ptr, int __pyx_v_varInd) {
36844   struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_CyWrapper = 0;
36845   int __pyx_r;
36846   __Pyx_TraceDeclarations
36847   __Pyx_RefNannyDeclarations
36848   PyObject *__pyx_t_1 = NULL;
36849   PyObject *__pyx_t_2 = NULL;
36850   PyObject *__pyx_t_3 = NULL;
36851   PyObject *__pyx_t_4 = NULL;
36852   int __pyx_t_5;
36853   int __pyx_lineno = 0;
36854   const char *__pyx_filename = NULL;
36855   int __pyx_clineno = 0;
36856   __Pyx_RefNannySetupContext("RunVarSelCriteria", 0);
36857   __Pyx_TraceCall("RunVarSelCriteria", __pyx_f[0], 2227, 0, __PYX_ERR(0, 2227, __pyx_L1_error));
36858 
36859   /* "cylp/cy/CyClpSimplex.pyx":2228
36860  *
36861  * cdef int RunVarSelCriteria(void * ptr, int varInd):
36862  *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)             # <<<<<<<<<<<<<<
36863  *     return CyWrapper.checkVar(varInd)
36864  *
36865  */
36866   __pyx_t_1 = ((PyObject *)__pyx_v_ptr);
36867   __Pyx_INCREF(__pyx_t_1);
36868   __pyx_v_CyWrapper = ((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_t_1);
36869   __pyx_t_1 = 0;
36870 
36871   /* "cylp/cy/CyClpSimplex.pyx":2229
36872  * cdef int RunVarSelCriteria(void * ptr, int varInd):
36873  *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
36874  *     return CyWrapper.checkVar(varInd)             # <<<<<<<<<<<<<<
36875  *
36876  *
36877  */
36878   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_CyWrapper), __pyx_n_s_checkVar); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2229, __pyx_L1_error)
36879   __Pyx_GOTREF(__pyx_t_2);
36880   __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_varInd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2229, __pyx_L1_error)
36881   __Pyx_GOTREF(__pyx_t_3);
36882   __pyx_t_4 = NULL;
36883   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
36884     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
36885     if (likely(__pyx_t_4)) {
36886       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
36887       __Pyx_INCREF(__pyx_t_4);
36888       __Pyx_INCREF(function);
36889       __Pyx_DECREF_SET(__pyx_t_2, function);
36890     }
36891   }
36892   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
36893   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
36894   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
36895   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2229, __pyx_L1_error)
36896   __Pyx_GOTREF(__pyx_t_1);
36897   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36898   __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2229, __pyx_L1_error)
36899   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36900   __pyx_r = __pyx_t_5;
36901   goto __pyx_L0;
36902 
36903   /* "cylp/cy/CyClpSimplex.pyx":2227
36904  *
36905  *
36906  * cdef int RunVarSelCriteria(void * ptr, int varInd):             # <<<<<<<<<<<<<<
36907  *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
36908  *     return CyWrapper.checkVar(varInd)
36909  */
36910 
36911   /* function exit code */
36912   __pyx_L1_error:;
36913   __Pyx_XDECREF(__pyx_t_1);
36914   __Pyx_XDECREF(__pyx_t_2);
36915   __Pyx_XDECREF(__pyx_t_3);
36916   __Pyx_XDECREF(__pyx_t_4);
36917   __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.RunVarSelCriteria", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
36918   __pyx_r = 0;
36919   __pyx_L0:;
36920   __Pyx_XDECREF((PyObject *)__pyx_v_CyWrapper);
36921   __Pyx_TraceReturn(Py_None, 0);
36922   __Pyx_RefNannyFinishContext();
36923   return __pyx_r;
36924 }
36925 
36926 /* "(tree fragment)":1
36927  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
36928  *     cdef tuple state
36929  *     cdef object _dict
36930  */
36931 
36932 /* Python wrapper */
36933 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
36934 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__[] = "VarStatus.__reduce_cython__(self)";
36935 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
36936   PyObject *__pyx_r = 0;
36937   __Pyx_RefNannyDeclarations
36938   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
36939   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *)__pyx_v_self));
36940 
36941   /* function exit code */
36942   __Pyx_RefNannyFinishContext();
36943   return __pyx_r;
36944 }
36945 
36946 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *__pyx_v_self) {
36947   PyObject *__pyx_v_state = 0;
36948   PyObject *__pyx_v__dict = 0;
36949   int __pyx_v_use_setstate;
36950   PyObject *__pyx_r = NULL;
36951   __Pyx_TraceDeclarations
36952   __Pyx_RefNannyDeclarations
36953   PyObject *__pyx_t_1 = NULL;
36954   int __pyx_t_2;
36955   int __pyx_t_3;
36956   PyObject *__pyx_t_4 = NULL;
36957   PyObject *__pyx_t_5 = NULL;
36958   int __pyx_lineno = 0;
36959   const char *__pyx_filename = NULL;
36960   int __pyx_clineno = 0;
36961   __Pyx_RefNannySetupContext("__reduce_cython__", 0);
36962   __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
36963 
36964   /* "(tree fragment)":5
36965  *     cdef object _dict
36966  *     cdef bint use_setstate
36967  *     state = ()             # <<<<<<<<<<<<<<
36968  *     _dict = getattr(self, '__dict__', None)
36969  *     if _dict is not None:
36970  */
36971   __Pyx_INCREF(__pyx_empty_tuple);
36972   __pyx_v_state = __pyx_empty_tuple;
36973 
36974   /* "(tree fragment)":6
36975  *     cdef bint use_setstate
36976  *     state = ()
36977  *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
36978  *     if _dict is not None:
36979  *         state += (_dict,)
36980  */
36981   __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
36982   __Pyx_GOTREF(__pyx_t_1);
36983   __pyx_v__dict = __pyx_t_1;
36984   __pyx_t_1 = 0;
36985 
36986   /* "(tree fragment)":7
36987  *     state = ()
36988  *     _dict = getattr(self, '__dict__', None)
36989  *     if _dict is not None:             # <<<<<<<<<<<<<<
36990  *         state += (_dict,)
36991  *         use_setstate = True
36992  */
36993   __pyx_t_2 = (__pyx_v__dict != Py_None);
36994   __pyx_t_3 = (__pyx_t_2 != 0);
36995   if (__pyx_t_3) {
36996 
36997     /* "(tree fragment)":8
36998  *     _dict = getattr(self, '__dict__', None)
36999  *     if _dict is not None:
37000  *         state += (_dict,)             # <<<<<<<<<<<<<<
37001  *         use_setstate = True
37002  *     else:
37003  */
37004     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
37005     __Pyx_GOTREF(__pyx_t_1);
37006     __Pyx_INCREF(__pyx_v__dict);
37007     __Pyx_GIVEREF(__pyx_v__dict);
37008     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict);
37009     __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
37010     __Pyx_GOTREF(__pyx_t_4);
37011     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37012     __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
37013     __pyx_t_4 = 0;
37014 
37015     /* "(tree fragment)":9
37016  *     if _dict is not None:
37017  *         state += (_dict,)
37018  *         use_setstate = True             # <<<<<<<<<<<<<<
37019  *     else:
37020  *         use_setstate = False
37021  */
37022     __pyx_v_use_setstate = 1;
37023 
37024     /* "(tree fragment)":7
37025  *     state = ()
37026  *     _dict = getattr(self, '__dict__', None)
37027  *     if _dict is not None:             # <<<<<<<<<<<<<<
37028  *         state += (_dict,)
37029  *         use_setstate = True
37030  */
37031     goto __pyx_L3;
37032   }
37033 
37034   /* "(tree fragment)":11
37035  *         use_setstate = True
37036  *     else:
37037  *         use_setstate = False             # <<<<<<<<<<<<<<
37038  *     if use_setstate:
37039  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state
37040  */
37041   /*else*/ {
37042     __pyx_v_use_setstate = 0;
37043   }
37044   __pyx_L3:;
37045 
37046   /* "(tree fragment)":12
37047  *     else:
37048  *         use_setstate = False
37049  *     if use_setstate:             # <<<<<<<<<<<<<<
37050  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state
37051  *     else:
37052  */
37053   __pyx_t_3 = (__pyx_v_use_setstate != 0);
37054   if (__pyx_t_3) {
37055 
37056     /* "(tree fragment)":13
37057  *         use_setstate = False
37058  *     if use_setstate:
37059  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state             # <<<<<<<<<<<<<<
37060  *     else:
37061  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)
37062  */
37063     __Pyx_XDECREF(__pyx_r);
37064     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_VarStatus); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
37065     __Pyx_GOTREF(__pyx_t_4);
37066     __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
37067     __Pyx_GOTREF(__pyx_t_1);
37068     __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37069     __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37070     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37071     __Pyx_INCREF(__pyx_int_222419149);
37072     __Pyx_GIVEREF(__pyx_int_222419149);
37073     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_222419149);
37074     __Pyx_INCREF(Py_None);
37075     __Pyx_GIVEREF(Py_None);
37076     PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
37077     __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
37078     __Pyx_GOTREF(__pyx_t_5);
37079     __Pyx_GIVEREF(__pyx_t_4);
37080     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
37081     __Pyx_GIVEREF(__pyx_t_1);
37082     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
37083     __Pyx_INCREF(__pyx_v_state);
37084     __Pyx_GIVEREF(__pyx_v_state);
37085     PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
37086     __pyx_t_4 = 0;
37087     __pyx_t_1 = 0;
37088     __pyx_r = __pyx_t_5;
37089     __pyx_t_5 = 0;
37090     goto __pyx_L0;
37091 
37092     /* "(tree fragment)":12
37093  *     else:
37094  *         use_setstate = False
37095  *     if use_setstate:             # <<<<<<<<<<<<<<
37096  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state
37097  *     else:
37098  */
37099   }
37100 
37101   /* "(tree fragment)":15
37102  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state
37103  *     else:
37104  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)             # <<<<<<<<<<<<<<
37105  * def __setstate_cython__(self, __pyx_state):
37106  *     __pyx_unpickle_VarStatus__set_state(self, __pyx_state)
37107  */
37108   /*else*/ {
37109     __Pyx_XDECREF(__pyx_r);
37110     __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_VarStatus); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
37111     __Pyx_GOTREF(__pyx_t_5);
37112     __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
37113     __Pyx_GOTREF(__pyx_t_1);
37114     __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37115     __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37116     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
37117     __Pyx_INCREF(__pyx_int_222419149);
37118     __Pyx_GIVEREF(__pyx_int_222419149);
37119     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_222419149);
37120     __Pyx_INCREF(__pyx_v_state);
37121     __Pyx_GIVEREF(__pyx_v_state);
37122     PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
37123     __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
37124     __Pyx_GOTREF(__pyx_t_4);
37125     __Pyx_GIVEREF(__pyx_t_5);
37126     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
37127     __Pyx_GIVEREF(__pyx_t_1);
37128     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
37129     __pyx_t_5 = 0;
37130     __pyx_t_1 = 0;
37131     __pyx_r = __pyx_t_4;
37132     __pyx_t_4 = 0;
37133     goto __pyx_L0;
37134   }
37135 
37136   /* "(tree fragment)":1
37137  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
37138  *     cdef tuple state
37139  *     cdef object _dict
37140  */
37141 
37142   /* function exit code */
37143   __pyx_L1_error:;
37144   __Pyx_XDECREF(__pyx_t_1);
37145   __Pyx_XDECREF(__pyx_t_4);
37146   __Pyx_XDECREF(__pyx_t_5);
37147   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.VarStatus.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
37148   __pyx_r = NULL;
37149   __pyx_L0:;
37150   __Pyx_XDECREF(__pyx_v_state);
37151   __Pyx_XDECREF(__pyx_v__dict);
37152   __Pyx_XGIVEREF(__pyx_r);
37153   __Pyx_TraceReturn(__pyx_r, 0);
37154   __Pyx_RefNannyFinishContext();
37155   return __pyx_r;
37156 }
37157 
37158 /* "(tree fragment)":16
37159  *     else:
37160  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)
37161  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
37162  *     __pyx_unpickle_VarStatus__set_state(self, __pyx_state)
37163  */
37164 
37165 /* Python wrapper */
37166 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
37167 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_9VarStatus_2__setstate_cython__[] = "VarStatus.__setstate_cython__(self, __pyx_state)";
37168 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
37169   PyObject *__pyx_r = 0;
37170   __Pyx_RefNannyDeclarations
37171   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
37172   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus_2__setstate_cython__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
37173 
37174   /* function exit code */
37175   __Pyx_RefNannyFinishContext();
37176   return __pyx_r;
37177 }
37178 
37179 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus_2__setstate_cython__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
37180   PyObject *__pyx_r = NULL;
37181   __Pyx_TraceDeclarations
37182   __Pyx_RefNannyDeclarations
37183   PyObject *__pyx_t_1 = NULL;
37184   int __pyx_lineno = 0;
37185   const char *__pyx_filename = NULL;
37186   int __pyx_clineno = 0;
37187   __Pyx_RefNannySetupContext("__setstate_cython__", 0);
37188   __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 16, 0, __PYX_ERR(1, 16, __pyx_L1_error));
37189 
37190   /* "(tree fragment)":17
37191  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)
37192  * def __setstate_cython__(self, __pyx_state):
37193  *     __pyx_unpickle_VarStatus__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
37194  */
37195   if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error)
37196   __pyx_t_1 = __pyx_f_4cylp_2cy_12CyClpSimplex___pyx_unpickle_VarStatus__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
37197   __Pyx_GOTREF(__pyx_t_1);
37198   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37199 
37200   /* "(tree fragment)":16
37201  *     else:
37202  *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)
37203  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
37204  *     __pyx_unpickle_VarStatus__set_state(self, __pyx_state)
37205  */
37206 
37207   /* function exit code */
37208   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37209   goto __pyx_L0;
37210   __pyx_L1_error:;
37211   __Pyx_XDECREF(__pyx_t_1);
37212   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.VarStatus.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
37213   __pyx_r = NULL;
37214   __pyx_L0:;
37215   __Pyx_XGIVEREF(__pyx_r);
37216   __Pyx_TraceReturn(__pyx_r, 0);
37217   __Pyx_RefNannyFinishContext();
37218   return __pyx_r;
37219 }
37220 
37221 /* "(tree fragment)":1
37222  * def __pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
37223  *     cdef object __pyx_PickleError
37224  *     cdef object __pyx_result
37225  */
37226 
37227 /* Python wrapper */
37228 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_7__pyx_unpickle_VarStatus(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37229 static char __pyx_doc_4cylp_2cy_12CyClpSimplex_6__pyx_unpickle_VarStatus[] = "__pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state)";
37230 static PyMethodDef __pyx_mdef_4cylp_2cy_12CyClpSimplex_7__pyx_unpickle_VarStatus = {"__pyx_unpickle_VarStatus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_7__pyx_unpickle_VarStatus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_6__pyx_unpickle_VarStatus};
37231 static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_7__pyx_unpickle_VarStatus(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37232   PyObject *__pyx_v___pyx_type = 0;
37233   long __pyx_v___pyx_checksum;
37234   PyObject *__pyx_v___pyx_state = 0;
37235   int __pyx_lineno = 0;
37236   const char *__pyx_filename = NULL;
37237   int __pyx_clineno = 0;
37238   PyObject *__pyx_r = 0;
37239   __Pyx_RefNannyDeclarations
37240   __Pyx_RefNannySetupContext("__pyx_unpickle_VarStatus (wrapper)", 0);
37241   {
37242     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
37243     PyObject* values[3] = {0,0,0};
37244     if (unlikely(__pyx_kwds)) {
37245       Py_ssize_t kw_args;
37246       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
37247       switch (pos_args) {
37248         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
37249         CYTHON_FALLTHROUGH;
37250         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
37251         CYTHON_FALLTHROUGH;
37252         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37253         CYTHON_FALLTHROUGH;
37254         case  0: break;
37255         default: goto __pyx_L5_argtuple_error;
37256       }
37257       kw_args = PyDict_Size(__pyx_kwds);
37258       switch (pos_args) {
37259         case  0:
37260         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--;
37261         else goto __pyx_L5_argtuple_error;
37262         CYTHON_FALLTHROUGH;
37263         case  1:
37264         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--;
37265         else {
37266           __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_VarStatus", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
37267         }
37268         CYTHON_FALLTHROUGH;
37269         case  2:
37270         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
37271         else {
37272           __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_VarStatus", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
37273         }
37274       }
37275       if (unlikely(kw_args > 0)) {
37276         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_VarStatus") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
37277       }
37278     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
37279       goto __pyx_L5_argtuple_error;
37280     } else {
37281       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
37282       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
37283       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
37284     }
37285     __pyx_v___pyx_type = values[0];
37286     __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
37287     __pyx_v___pyx_state = values[2];
37288   }
37289   goto __pyx_L4_argument_unpacking_done;
37290   __pyx_L5_argtuple_error:;
37291   __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_VarStatus", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error)
37292   __pyx_L3_error:;
37293   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.__pyx_unpickle_VarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
37294   __Pyx_RefNannyFinishContext();
37295   return NULL;
37296   __pyx_L4_argument_unpacking_done:;
37297   __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_6__pyx_unpickle_VarStatus(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
37298 
37299   /* function exit code */
37300   __Pyx_RefNannyFinishContext();
37301   return __pyx_r;
37302 }
37303 
37304 static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_6__pyx_unpickle_VarStatus(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
37305   PyObject *__pyx_v___pyx_PickleError = 0;
37306   PyObject *__pyx_v___pyx_result = 0;
37307   PyObject *__pyx_r = NULL;
37308   __Pyx_TraceDeclarations
37309   __Pyx_RefNannyDeclarations
37310   int __pyx_t_1;
37311   PyObject *__pyx_t_2 = NULL;
37312   PyObject *__pyx_t_3 = NULL;
37313   PyObject *__pyx_t_4 = NULL;
37314   PyObject *__pyx_t_5 = NULL;
37315   int __pyx_t_6;
37316   int __pyx_lineno = 0;
37317   const char *__pyx_filename = NULL;
37318   int __pyx_clineno = 0;
37319   __Pyx_TraceFrameInit(__pyx_codeobj__28)
37320   __Pyx_RefNannySetupContext("__pyx_unpickle_VarStatus", 0);
37321   __Pyx_TraceCall("__pyx_unpickle_VarStatus", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));
37322 
37323   /* "(tree fragment)":4
37324  *     cdef object __pyx_PickleError
37325  *     cdef object __pyx_result
37326  *     if __pyx_checksum != 0xd41d8cd:             # <<<<<<<<<<<<<<
37327  *         from pickle import PickleError as __pyx_PickleError
37328  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
37329  */
37330   __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xd41d8cd) != 0);
37331   if (__pyx_t_1) {
37332 
37333     /* "(tree fragment)":5
37334  *     cdef object __pyx_result
37335  *     if __pyx_checksum != 0xd41d8cd:
37336  *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
37337  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
37338  *     __pyx_result = VarStatus.__new__(__pyx_type)
37339  */
37340     __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
37341     __Pyx_GOTREF(__pyx_t_2);
37342     __Pyx_INCREF(__pyx_n_s_PickleError);
37343     __Pyx_GIVEREF(__pyx_n_s_PickleError);
37344     PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
37345     __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, -1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
37346     __Pyx_GOTREF(__pyx_t_3);
37347     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
37348     __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
37349     __Pyx_GOTREF(__pyx_t_2);
37350     __Pyx_INCREF(__pyx_t_2);
37351     __pyx_v___pyx_PickleError = __pyx_t_2;
37352     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
37353     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
37354 
37355     /* "(tree fragment)":6
37356  *     if __pyx_checksum != 0xd41d8cd:
37357  *         from pickle import PickleError as __pyx_PickleError
37358  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)             # <<<<<<<<<<<<<<
37359  *     __pyx_result = VarStatus.__new__(__pyx_type)
37360  *     if __pyx_state is not None:
37361  */
37362     __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
37363     __Pyx_GOTREF(__pyx_t_2);
37364     __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xd4, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
37365     __Pyx_GOTREF(__pyx_t_4);
37366     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
37367     __Pyx_INCREF(__pyx_v___pyx_PickleError);
37368     __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
37369     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
37370       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
37371       if (likely(__pyx_t_5)) {
37372         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
37373         __Pyx_INCREF(__pyx_t_5);
37374         __Pyx_INCREF(function);
37375         __Pyx_DECREF_SET(__pyx_t_2, function);
37376       }
37377     }
37378     __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
37379     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
37380     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
37381     if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
37382     __Pyx_GOTREF(__pyx_t_3);
37383     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
37384     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
37385     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
37386     __PYX_ERR(1, 6, __pyx_L1_error)
37387 
37388     /* "(tree fragment)":4
37389  *     cdef object __pyx_PickleError
37390  *     cdef object __pyx_result
37391  *     if __pyx_checksum != 0xd41d8cd:             # <<<<<<<<<<<<<<
37392  *         from pickle import PickleError as __pyx_PickleError
37393  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
37394  */
37395   }
37396 
37397   /* "(tree fragment)":7
37398  *         from pickle import PickleError as __pyx_PickleError
37399  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
37400  *     __pyx_result = VarStatus.__new__(__pyx_type)             # <<<<<<<<<<<<<<
37401  *     if __pyx_state is not None:
37402  *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
37403  */
37404   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error)
37405   __Pyx_GOTREF(__pyx_t_2);
37406   __pyx_t_4 = NULL;
37407   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
37408     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
37409     if (likely(__pyx_t_4)) {
37410       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
37411       __Pyx_INCREF(__pyx_t_4);
37412       __Pyx_INCREF(function);
37413       __Pyx_DECREF_SET(__pyx_t_2, function);
37414     }
37415   }
37416   __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
37417   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
37418   if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
37419   __Pyx_GOTREF(__pyx_t_3);
37420   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
37421   __pyx_v___pyx_result = __pyx_t_3;
37422   __pyx_t_3 = 0;
37423 
37424   /* "(tree fragment)":8
37425  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
37426  *     __pyx_result = VarStatus.__new__(__pyx_type)
37427  *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
37428  *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
37429  *     return __pyx_result
37430  */
37431   __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
37432   __pyx_t_6 = (__pyx_t_1 != 0);
37433   if (__pyx_t_6) {
37434 
37435     /* "(tree fragment)":9
37436  *     __pyx_result = VarStatus.__new__(__pyx_type)
37437  *     if __pyx_state is not None:
37438  *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
37439  *     return __pyx_result
37440  * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
37441  */
37442     if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error)
37443     __pyx_t_3 = __pyx_f_4cylp_2cy_12CyClpSimplex___pyx_unpickle_VarStatus__set_state(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error)
37444     __Pyx_GOTREF(__pyx_t_3);
37445     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
37446 
37447     /* "(tree fragment)":8
37448  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
37449  *     __pyx_result = VarStatus.__new__(__pyx_type)
37450  *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
37451  *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
37452  *     return __pyx_result
37453  */
37454   }
37455 
37456   /* "(tree fragment)":10
37457  *     if __pyx_state is not None:
37458  *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
37459  *     return __pyx_result             # <<<<<<<<<<<<<<
37460  * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
37461  *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
37462  */
37463   __Pyx_XDECREF(__pyx_r);
37464   __Pyx_INCREF(__pyx_v___pyx_result);
37465   __pyx_r = __pyx_v___pyx_result;
37466   goto __pyx_L0;
37467 
37468   /* "(tree fragment)":1
37469  * def __pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
37470  *     cdef object __pyx_PickleError
37471  *     cdef object __pyx_result
37472  */
37473 
37474   /* function exit code */
37475   __pyx_L1_error:;
37476   __Pyx_XDECREF(__pyx_t_2);
37477   __Pyx_XDECREF(__pyx_t_3);
37478   __Pyx_XDECREF(__pyx_t_4);
37479   __Pyx_XDECREF(__pyx_t_5);
37480   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.__pyx_unpickle_VarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
37481   __pyx_r = NULL;
37482   __pyx_L0:;
37483   __Pyx_XDECREF(__pyx_v___pyx_PickleError);
37484   __Pyx_XDECREF(__pyx_v___pyx_result);
37485   __Pyx_XGIVEREF(__pyx_r);
37486   __Pyx_TraceReturn(__pyx_r, 0);
37487   __Pyx_RefNannyFinishContext();
37488   return __pyx_r;
37489 }
37490 
37491 /* "(tree fragment)":11
37492  *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
37493  *     return __pyx_result
37494  * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
37495  *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
37496  *         __pyx_result.__dict__.update(__pyx_state[0])
37497  */
37498 
37499 static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex___pyx_unpickle_VarStatus__set_state(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
37500   PyObject *__pyx_r = NULL;
37501   __Pyx_TraceDeclarations
37502   __Pyx_RefNannyDeclarations
37503   int __pyx_t_1;
37504   Py_ssize_t __pyx_t_2;
37505   int __pyx_t_3;
37506   int __pyx_t_4;
37507   PyObject *__pyx_t_5 = NULL;
37508   PyObject *__pyx_t_6 = NULL;
37509   PyObject *__pyx_t_7 = NULL;
37510   PyObject *__pyx_t_8 = NULL;
37511   int __pyx_lineno = 0;
37512   const char *__pyx_filename = NULL;
37513   int __pyx_clineno = 0;
37514   __Pyx_RefNannySetupContext("__pyx_unpickle_VarStatus__set_state", 0);
37515   __Pyx_TraceCall("__pyx_unpickle_VarStatus__set_state", __pyx_f[1], 11, 0, __PYX_ERR(1, 11, __pyx_L1_error));
37516 
37517   /* "(tree fragment)":12
37518  *     return __pyx_result
37519  * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
37520  *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
37521  *         __pyx_result.__dict__.update(__pyx_state[0])
37522  */
37523   if (unlikely(__pyx_v___pyx_state == Py_None)) {
37524     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
37525     __PYX_ERR(1, 12, __pyx_L1_error)
37526   }
37527   __pyx_t_2 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 12, __pyx_L1_error)
37528   __pyx_t_3 = ((__pyx_t_2 > 0) != 0);
37529   if (__pyx_t_3) {
37530   } else {
37531     __pyx_t_1 = __pyx_t_3;
37532     goto __pyx_L4_bool_binop_done;
37533   }
37534   __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 12, __pyx_L1_error)
37535   __pyx_t_4 = (__pyx_t_3 != 0);
37536   __pyx_t_1 = __pyx_t_4;
37537   __pyx_L4_bool_binop_done:;
37538   if (__pyx_t_1) {
37539 
37540     /* "(tree fragment)":13
37541  * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
37542  *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
37543  *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
37544  */
37545     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
37546     __Pyx_GOTREF(__pyx_t_6);
37547     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
37548     __Pyx_GOTREF(__pyx_t_7);
37549     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
37550     if (unlikely(__pyx_v___pyx_state == Py_None)) {
37551       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
37552       __PYX_ERR(1, 13, __pyx_L1_error)
37553     }
37554     __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
37555     __Pyx_GOTREF(__pyx_t_6);
37556     __pyx_t_8 = NULL;
37557     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
37558       __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
37559       if (likely(__pyx_t_8)) {
37560         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
37561         __Pyx_INCREF(__pyx_t_8);
37562         __Pyx_INCREF(function);
37563         __Pyx_DECREF_SET(__pyx_t_7, function);
37564       }
37565     }
37566     __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
37567     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
37568     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
37569     if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
37570     __Pyx_GOTREF(__pyx_t_5);
37571     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
37572     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
37573 
37574     /* "(tree fragment)":12
37575  *     return __pyx_result
37576  * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
37577  *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
37578  *         __pyx_result.__dict__.update(__pyx_state[0])
37579  */
37580   }
37581 
37582   /* "(tree fragment)":11
37583  *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
37584  *     return __pyx_result
37585  * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
37586  *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
37587  *         __pyx_result.__dict__.update(__pyx_state[0])
37588  */
37589 
37590   /* function exit code */
37591   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37592   goto __pyx_L0;
37593   __pyx_L1_error:;
37594   __Pyx_XDECREF(__pyx_t_5);
37595   __Pyx_XDECREF(__pyx_t_6);
37596   __Pyx_XDECREF(__pyx_t_7);
37597   __Pyx_XDECREF(__pyx_t_8);
37598   __Pyx_AddTraceback("cylp.cy.CyClpSimplex.__pyx_unpickle_VarStatus__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
37599   __pyx_r = 0;
37600   __pyx_L0:;
37601   __Pyx_XGIVEREF(__pyx_r);
37602   __Pyx_TraceReturn(__pyx_r, 0);
37603   __Pyx_RefNannyFinishContext();
37604   return __pyx_r;
37605 }
37606 
37607 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":258
37608  *         # experimental exception made for __getbuffer__ and __releasebuffer__
37609  *         # -- the details of this may change.
37610  *         def __getbuffer__(ndarray self, Py_buffer* info, int flags):             # <<<<<<<<<<<<<<
37611  *             # This implementation of getbuffer is geared towards Cython
37612  *             # requirements, and does not yet fulfill the PEP.
37613  */
37614 
37615 /* Python wrapper */
37616 static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
37617 static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
37618   int __pyx_r;
37619   __Pyx_RefNannyDeclarations
37620   __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
37621   __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
37622 
37623   /* function exit code */
37624   __Pyx_RefNannyFinishContext();
37625   return __pyx_r;
37626 }
37627 
37628 static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
37629   int __pyx_v_i;
37630   int __pyx_v_ndim;
37631   int __pyx_v_endian_detector;
37632   int __pyx_v_little_endian;
37633   int __pyx_v_t;
37634   char *__pyx_v_f;
37635   PyArray_Descr *__pyx_v_descr = 0;
37636   int __pyx_v_offset;
37637   int __pyx_r;
37638   __Pyx_TraceDeclarations
37639   __Pyx_RefNannyDeclarations
37640   int __pyx_t_1;
37641   int __pyx_t_2;
37642   PyObject *__pyx_t_3 = NULL;
37643   int __pyx_t_4;
37644   int __pyx_t_5;
37645   int __pyx_t_6;
37646   PyArray_Descr *__pyx_t_7;
37647   PyObject *__pyx_t_8 = NULL;
37648   char *__pyx_t_9;
37649   int __pyx_lineno = 0;
37650   const char *__pyx_filename = NULL;
37651   int __pyx_clineno = 0;
37652   if (__pyx_v_info == NULL) {
37653     PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
37654     return -1;
37655   }
37656   __Pyx_RefNannySetupContext("__getbuffer__", 0);
37657   __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
37658   __Pyx_GIVEREF(__pyx_v_info->obj);
37659   __Pyx_TraceCall("__getbuffer__", __pyx_f[2], 258, 0, __PYX_ERR(2, 258, __pyx_L1_error));
37660 
37661   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":265
37662  *
37663  *             cdef int i, ndim
37664  *             cdef int endian_detector = 1             # <<<<<<<<<<<<<<
37665  *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
37666  *
37667  */
37668   __pyx_v_endian_detector = 1;
37669 
37670   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":266
37671  *             cdef int i, ndim
37672  *             cdef int endian_detector = 1
37673  *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
37674  *
37675  *             ndim = PyArray_NDIM(self)
37676  */
37677   __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
37678 
37679   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":268
37680  *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
37681  *
37682  *             ndim = PyArray_NDIM(self)             # <<<<<<<<<<<<<<
37683  *
37684  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
37685  */
37686   __pyx_v_ndim = PyArray_NDIM(__pyx_v_self);
37687 
37688   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":270
37689  *             ndim = PyArray_NDIM(self)
37690  *
37691  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)             # <<<<<<<<<<<<<<
37692  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
37693  *                 raise ValueError(u"ndarray is not C contiguous")
37694  */
37695   __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0);
37696   if (__pyx_t_2) {
37697   } else {
37698     __pyx_t_1 = __pyx_t_2;
37699     goto __pyx_L4_bool_binop_done;
37700   }
37701 
37702   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":271
37703  *
37704  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
37705  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):             # <<<<<<<<<<<<<<
37706  *                 raise ValueError(u"ndarray is not C contiguous")
37707  *
37708  */
37709   __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0);
37710   __pyx_t_1 = __pyx_t_2;
37711   __pyx_L4_bool_binop_done:;
37712 
37713   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":270
37714  *             ndim = PyArray_NDIM(self)
37715  *
37716  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)             # <<<<<<<<<<<<<<
37717  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
37718  *                 raise ValueError(u"ndarray is not C contiguous")
37719  */
37720   if (unlikely(__pyx_t_1)) {
37721 
37722     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":272
37723  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
37724  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
37725  *                 raise ValueError(u"ndarray is not C contiguous")             # <<<<<<<<<<<<<<
37726  *
37727  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
37728  */
37729     __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 272, __pyx_L1_error)
37730     __Pyx_GOTREF(__pyx_t_3);
37731     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
37732     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
37733     __PYX_ERR(2, 272, __pyx_L1_error)
37734 
37735     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":270
37736  *             ndim = PyArray_NDIM(self)
37737  *
37738  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)             # <<<<<<<<<<<<<<
37739  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
37740  *                 raise ValueError(u"ndarray is not C contiguous")
37741  */
37742   }
37743 
37744   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":274
37745  *                 raise ValueError(u"ndarray is not C contiguous")
37746  *
37747  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)             # <<<<<<<<<<<<<<
37748  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
37749  *                 raise ValueError(u"ndarray is not Fortran contiguous")
37750  */
37751   __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0);
37752   if (__pyx_t_2) {
37753   } else {
37754     __pyx_t_1 = __pyx_t_2;
37755     goto __pyx_L7_bool_binop_done;
37756   }
37757 
37758   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":275
37759  *
37760  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
37761  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):             # <<<<<<<<<<<<<<
37762  *                 raise ValueError(u"ndarray is not Fortran contiguous")
37763  *
37764  */
37765   __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0);
37766   __pyx_t_1 = __pyx_t_2;
37767   __pyx_L7_bool_binop_done:;
37768 
37769   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":274
37770  *                 raise ValueError(u"ndarray is not C contiguous")
37771  *
37772  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)             # <<<<<<<<<<<<<<
37773  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
37774  *                 raise ValueError(u"ndarray is not Fortran contiguous")
37775  */
37776   if (unlikely(__pyx_t_1)) {
37777 
37778     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":276
37779  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
37780  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
37781  *                 raise ValueError(u"ndarray is not Fortran contiguous")             # <<<<<<<<<<<<<<
37782  *
37783  *             info.buf = PyArray_DATA(self)
37784  */
37785     __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 276, __pyx_L1_error)
37786     __Pyx_GOTREF(__pyx_t_3);
37787     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
37788     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
37789     __PYX_ERR(2, 276, __pyx_L1_error)
37790 
37791     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":274
37792  *                 raise ValueError(u"ndarray is not C contiguous")
37793  *
37794  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)             # <<<<<<<<<<<<<<
37795  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
37796  *                 raise ValueError(u"ndarray is not Fortran contiguous")
37797  */
37798   }
37799 
37800   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":278
37801  *                 raise ValueError(u"ndarray is not Fortran contiguous")
37802  *
37803  *             info.buf = PyArray_DATA(self)             # <<<<<<<<<<<<<<
37804  *             info.ndim = ndim
37805  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
37806  */
37807   __pyx_v_info->buf = PyArray_DATA(__pyx_v_self);
37808 
37809   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":279
37810  *
37811  *             info.buf = PyArray_DATA(self)
37812  *             info.ndim = ndim             # <<<<<<<<<<<<<<
37813  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
37814  *                 # Allocate new buffer for strides and shape info.
37815  */
37816   __pyx_v_info->ndim = __pyx_v_ndim;
37817 
37818   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":280
37819  *             info.buf = PyArray_DATA(self)
37820  *             info.ndim = ndim
37821  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
37822  *                 # Allocate new buffer for strides and shape info.
37823  *                 # This is allocated as one block, strides first.
37824  */
37825   __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0);
37826   if (__pyx_t_1) {
37827 
37828     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":283
37829  *                 # Allocate new buffer for strides and shape info.
37830  *                 # This is allocated as one block, strides first.
37831  *                 info.strides = <Py_ssize_t*>PyObject_Malloc(sizeof(Py_ssize_t) * 2 * <size_t>ndim)             # <<<<<<<<<<<<<<
37832  *                 info.shape = info.strides + ndim
37833  *                 for i in range(ndim):
37834  */
37835     __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim))));
37836 
37837     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":284
37838  *                 # This is allocated as one block, strides first.
37839  *                 info.strides = <Py_ssize_t*>PyObject_Malloc(sizeof(Py_ssize_t) * 2 * <size_t>ndim)
37840  *                 info.shape = info.strides + ndim             # <<<<<<<<<<<<<<
37841  *                 for i in range(ndim):
37842  *                     info.strides[i] = PyArray_STRIDES(self)[i]
37843  */
37844     __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim);
37845 
37846     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":285
37847  *                 info.strides = <Py_ssize_t*>PyObject_Malloc(sizeof(Py_ssize_t) * 2 * <size_t>ndim)
37848  *                 info.shape = info.strides + ndim
37849  *                 for i in range(ndim):             # <<<<<<<<<<<<<<
37850  *                     info.strides[i] = PyArray_STRIDES(self)[i]
37851  *                     info.shape[i] = PyArray_DIMS(self)[i]
37852  */
37853     __pyx_t_4 = __pyx_v_ndim;
37854     __pyx_t_5 = __pyx_t_4;
37855     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
37856       __pyx_v_i = __pyx_t_6;
37857 
37858       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":286
37859  *                 info.shape = info.strides + ndim
37860  *                 for i in range(ndim):
37861  *                     info.strides[i] = PyArray_STRIDES(self)[i]             # <<<<<<<<<<<<<<
37862  *                     info.shape[i] = PyArray_DIMS(self)[i]
37863  *             else:
37864  */
37865       (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]);
37866 
37867       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":287
37868  *                 for i in range(ndim):
37869  *                     info.strides[i] = PyArray_STRIDES(self)[i]
37870  *                     info.shape[i] = PyArray_DIMS(self)[i]             # <<<<<<<<<<<<<<
37871  *             else:
37872  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
37873  */
37874       (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]);
37875     }
37876 
37877     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":280
37878  *             info.buf = PyArray_DATA(self)
37879  *             info.ndim = ndim
37880  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
37881  *                 # Allocate new buffer for strides and shape info.
37882  *                 # This is allocated as one block, strides first.
37883  */
37884     goto __pyx_L9;
37885   }
37886 
37887   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":289
37888  *                     info.shape[i] = PyArray_DIMS(self)[i]
37889  *             else:
37890  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)             # <<<<<<<<<<<<<<
37891  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
37892  *             info.suboffsets = NULL
37893  */
37894   /*else*/ {
37895     __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self));
37896 
37897     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":290
37898  *             else:
37899  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
37900  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)             # <<<<<<<<<<<<<<
37901  *             info.suboffsets = NULL
37902  *             info.itemsize = PyArray_ITEMSIZE(self)
37903  */
37904     __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self));
37905   }
37906   __pyx_L9:;
37907 
37908   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":291
37909  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
37910  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
37911  *             info.suboffsets = NULL             # <<<<<<<<<<<<<<
37912  *             info.itemsize = PyArray_ITEMSIZE(self)
37913  *             info.readonly = not PyArray_ISWRITEABLE(self)
37914  */
37915   __pyx_v_info->suboffsets = NULL;
37916 
37917   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":292
37918  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
37919  *             info.suboffsets = NULL
37920  *             info.itemsize = PyArray_ITEMSIZE(self)             # <<<<<<<<<<<<<<
37921  *             info.readonly = not PyArray_ISWRITEABLE(self)
37922  *
37923  */
37924   __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self);
37925 
37926   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":293
37927  *             info.suboffsets = NULL
37928  *             info.itemsize = PyArray_ITEMSIZE(self)
37929  *             info.readonly = not PyArray_ISWRITEABLE(self)             # <<<<<<<<<<<<<<
37930  *
37931  *             cdef int t
37932  */
37933   __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0));
37934 
37935   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":296
37936  *
37937  *             cdef int t
37938  *             cdef char* f = NULL             # <<<<<<<<<<<<<<
37939  *             cdef dtype descr = <dtype>PyArray_DESCR(self)
37940  *             cdef int offset
37941  */
37942   __pyx_v_f = NULL;
37943 
37944   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":297
37945  *             cdef int t
37946  *             cdef char* f = NULL
37947  *             cdef dtype descr = <dtype>PyArray_DESCR(self)             # <<<<<<<<<<<<<<
37948  *             cdef int offset
37949  *
37950  */
37951   __pyx_t_7 = PyArray_DESCR(__pyx_v_self);
37952   __pyx_t_3 = ((PyObject *)__pyx_t_7);
37953   __Pyx_INCREF(__pyx_t_3);
37954   __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3);
37955   __pyx_t_3 = 0;
37956 
37957   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":300
37958  *             cdef int offset
37959  *
37960  *             info.obj = self             # <<<<<<<<<<<<<<
37961  *
37962  *             if not PyDataType_HASFIELDS(descr):
37963  */
37964   __Pyx_INCREF(((PyObject *)__pyx_v_self));
37965   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
37966   __Pyx_GOTREF(__pyx_v_info->obj);
37967   __Pyx_DECREF(__pyx_v_info->obj);
37968   __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
37969 
37970   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":302
37971  *             info.obj = self
37972  *
37973  *             if not PyDataType_HASFIELDS(descr):             # <<<<<<<<<<<<<<
37974  *                 t = descr.type_num
37975  *                 if ((descr.byteorder == c'>' and little_endian) or
37976  */
37977   __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0);
37978   if (__pyx_t_1) {
37979 
37980     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":303
37981  *
37982  *             if not PyDataType_HASFIELDS(descr):
37983  *                 t = descr.type_num             # <<<<<<<<<<<<<<
37984  *                 if ((descr.byteorder == c'>' and little_endian) or
37985  *                     (descr.byteorder == c'<' and not little_endian)):
37986  */
37987     __pyx_t_4 = __pyx_v_descr->type_num;
37988     __pyx_v_t = __pyx_t_4;
37989 
37990     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":304
37991  *             if not PyDataType_HASFIELDS(descr):
37992  *                 t = descr.type_num
37993  *                 if ((descr.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
37994  *                     (descr.byteorder == c'<' and not little_endian)):
37995  *                     raise ValueError(u"Non-native byte order not supported")
37996  */
37997     __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0);
37998     if (!__pyx_t_2) {
37999       goto __pyx_L15_next_or;
38000     } else {
38001     }
38002     __pyx_t_2 = (__pyx_v_little_endian != 0);
38003     if (!__pyx_t_2) {
38004     } else {
38005       __pyx_t_1 = __pyx_t_2;
38006       goto __pyx_L14_bool_binop_done;
38007     }
38008     __pyx_L15_next_or:;
38009 
38010     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":305
38011  *                 t = descr.type_num
38012  *                 if ((descr.byteorder == c'>' and little_endian) or
38013  *                     (descr.byteorder == c'<' and not little_endian)):             # <<<<<<<<<<<<<<
38014  *                     raise ValueError(u"Non-native byte order not supported")
38015  *                 if   t == NPY_BYTE:        f = "b"
38016  */
38017     __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0);
38018     if (__pyx_t_2) {
38019     } else {
38020       __pyx_t_1 = __pyx_t_2;
38021       goto __pyx_L14_bool_binop_done;
38022     }
38023     __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0);
38024     __pyx_t_1 = __pyx_t_2;
38025     __pyx_L14_bool_binop_done:;
38026 
38027     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":304
38028  *             if not PyDataType_HASFIELDS(descr):
38029  *                 t = descr.type_num
38030  *                 if ((descr.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
38031  *                     (descr.byteorder == c'<' and not little_endian)):
38032  *                     raise ValueError(u"Non-native byte order not supported")
38033  */
38034     if (unlikely(__pyx_t_1)) {
38035 
38036       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":306
38037  *                 if ((descr.byteorder == c'>' and little_endian) or
38038  *                     (descr.byteorder == c'<' and not little_endian)):
38039  *                     raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
38040  *                 if   t == NPY_BYTE:        f = "b"
38041  *                 elif t == NPY_UBYTE:       f = "B"
38042  */
38043       __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 306, __pyx_L1_error)
38044       __Pyx_GOTREF(__pyx_t_3);
38045       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
38046       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38047       __PYX_ERR(2, 306, __pyx_L1_error)
38048 
38049       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":304
38050  *             if not PyDataType_HASFIELDS(descr):
38051  *                 t = descr.type_num
38052  *                 if ((descr.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
38053  *                     (descr.byteorder == c'<' and not little_endian)):
38054  *                     raise ValueError(u"Non-native byte order not supported")
38055  */
38056     }
38057 
38058     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":307
38059  *                     (descr.byteorder == c'<' and not little_endian)):
38060  *                     raise ValueError(u"Non-native byte order not supported")
38061  *                 if   t == NPY_BYTE:        f = "b"             # <<<<<<<<<<<<<<
38062  *                 elif t == NPY_UBYTE:       f = "B"
38063  *                 elif t == NPY_SHORT:       f = "h"
38064  */
38065     switch (__pyx_v_t) {
38066       case NPY_BYTE:
38067       __pyx_v_f = ((char *)"b");
38068       break;
38069       case NPY_UBYTE:
38070 
38071       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":308
38072  *                     raise ValueError(u"Non-native byte order not supported")
38073  *                 if   t == NPY_BYTE:        f = "b"
38074  *                 elif t == NPY_UBYTE:       f = "B"             # <<<<<<<<<<<<<<
38075  *                 elif t == NPY_SHORT:       f = "h"
38076  *                 elif t == NPY_USHORT:      f = "H"
38077  */
38078       __pyx_v_f = ((char *)"B");
38079       break;
38080       case NPY_SHORT:
38081 
38082       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":309
38083  *                 if   t == NPY_BYTE:        f = "b"
38084  *                 elif t == NPY_UBYTE:       f = "B"
38085  *                 elif t == NPY_SHORT:       f = "h"             # <<<<<<<<<<<<<<
38086  *                 elif t == NPY_USHORT:      f = "H"
38087  *                 elif t == NPY_INT:         f = "i"
38088  */
38089       __pyx_v_f = ((char *)"h");
38090       break;
38091       case NPY_USHORT:
38092 
38093       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":310
38094  *                 elif t == NPY_UBYTE:       f = "B"
38095  *                 elif t == NPY_SHORT:       f = "h"
38096  *                 elif t == NPY_USHORT:      f = "H"             # <<<<<<<<<<<<<<
38097  *                 elif t == NPY_INT:         f = "i"
38098  *                 elif t == NPY_UINT:        f = "I"
38099  */
38100       __pyx_v_f = ((char *)"H");
38101       break;
38102       case NPY_INT:
38103 
38104       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":311
38105  *                 elif t == NPY_SHORT:       f = "h"
38106  *                 elif t == NPY_USHORT:      f = "H"
38107  *                 elif t == NPY_INT:         f = "i"             # <<<<<<<<<<<<<<
38108  *                 elif t == NPY_UINT:        f = "I"
38109  *                 elif t == NPY_LONG:        f = "l"
38110  */
38111       __pyx_v_f = ((char *)"i");
38112       break;
38113       case NPY_UINT:
38114 
38115       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":312
38116  *                 elif t == NPY_USHORT:      f = "H"
38117  *                 elif t == NPY_INT:         f = "i"
38118  *                 elif t == NPY_UINT:        f = "I"             # <<<<<<<<<<<<<<
38119  *                 elif t == NPY_LONG:        f = "l"
38120  *                 elif t == NPY_ULONG:       f = "L"
38121  */
38122       __pyx_v_f = ((char *)"I");
38123       break;
38124       case NPY_LONG:
38125 
38126       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":313
38127  *                 elif t == NPY_INT:         f = "i"
38128  *                 elif t == NPY_UINT:        f = "I"
38129  *                 elif t == NPY_LONG:        f = "l"             # <<<<<<<<<<<<<<
38130  *                 elif t == NPY_ULONG:       f = "L"
38131  *                 elif t == NPY_LONGLONG:    f = "q"
38132  */
38133       __pyx_v_f = ((char *)"l");
38134       break;
38135       case NPY_ULONG:
38136 
38137       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":314
38138  *                 elif t == NPY_UINT:        f = "I"
38139  *                 elif t == NPY_LONG:        f = "l"
38140  *                 elif t == NPY_ULONG:       f = "L"             # <<<<<<<<<<<<<<
38141  *                 elif t == NPY_LONGLONG:    f = "q"
38142  *                 elif t == NPY_ULONGLONG:   f = "Q"
38143  */
38144       __pyx_v_f = ((char *)"L");
38145       break;
38146       case NPY_LONGLONG:
38147 
38148       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":315
38149  *                 elif t == NPY_LONG:        f = "l"
38150  *                 elif t == NPY_ULONG:       f = "L"
38151  *                 elif t == NPY_LONGLONG:    f = "q"             # <<<<<<<<<<<<<<
38152  *                 elif t == NPY_ULONGLONG:   f = "Q"
38153  *                 elif t == NPY_FLOAT:       f = "f"
38154  */
38155       __pyx_v_f = ((char *)"q");
38156       break;
38157       case NPY_ULONGLONG:
38158 
38159       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":316
38160  *                 elif t == NPY_ULONG:       f = "L"
38161  *                 elif t == NPY_LONGLONG:    f = "q"
38162  *                 elif t == NPY_ULONGLONG:   f = "Q"             # <<<<<<<<<<<<<<
38163  *                 elif t == NPY_FLOAT:       f = "f"
38164  *                 elif t == NPY_DOUBLE:      f = "d"
38165  */
38166       __pyx_v_f = ((char *)"Q");
38167       break;
38168       case NPY_FLOAT:
38169 
38170       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":317
38171  *                 elif t == NPY_LONGLONG:    f = "q"
38172  *                 elif t == NPY_ULONGLONG:   f = "Q"
38173  *                 elif t == NPY_FLOAT:       f = "f"             # <<<<<<<<<<<<<<
38174  *                 elif t == NPY_DOUBLE:      f = "d"
38175  *                 elif t == NPY_LONGDOUBLE:  f = "g"
38176  */
38177       __pyx_v_f = ((char *)"f");
38178       break;
38179       case NPY_DOUBLE:
38180 
38181       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":318
38182  *                 elif t == NPY_ULONGLONG:   f = "Q"
38183  *                 elif t == NPY_FLOAT:       f = "f"
38184  *                 elif t == NPY_DOUBLE:      f = "d"             # <<<<<<<<<<<<<<
38185  *                 elif t == NPY_LONGDOUBLE:  f = "g"
38186  *                 elif t == NPY_CFLOAT:      f = "Zf"
38187  */
38188       __pyx_v_f = ((char *)"d");
38189       break;
38190       case NPY_LONGDOUBLE:
38191 
38192       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":319
38193  *                 elif t == NPY_FLOAT:       f = "f"
38194  *                 elif t == NPY_DOUBLE:      f = "d"
38195  *                 elif t == NPY_LONGDOUBLE:  f = "g"             # <<<<<<<<<<<<<<
38196  *                 elif t == NPY_CFLOAT:      f = "Zf"
38197  *                 elif t == NPY_CDOUBLE:     f = "Zd"
38198  */
38199       __pyx_v_f = ((char *)"g");
38200       break;
38201       case NPY_CFLOAT:
38202 
38203       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":320
38204  *                 elif t == NPY_DOUBLE:      f = "d"
38205  *                 elif t == NPY_LONGDOUBLE:  f = "g"
38206  *                 elif t == NPY_CFLOAT:      f = "Zf"             # <<<<<<<<<<<<<<
38207  *                 elif t == NPY_CDOUBLE:     f = "Zd"
38208  *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
38209  */
38210       __pyx_v_f = ((char *)"Zf");
38211       break;
38212       case NPY_CDOUBLE:
38213 
38214       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":321
38215  *                 elif t == NPY_LONGDOUBLE:  f = "g"
38216  *                 elif t == NPY_CFLOAT:      f = "Zf"
38217  *                 elif t == NPY_CDOUBLE:     f = "Zd"             # <<<<<<<<<<<<<<
38218  *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
38219  *                 elif t == NPY_OBJECT:      f = "O"
38220  */
38221       __pyx_v_f = ((char *)"Zd");
38222       break;
38223       case NPY_CLONGDOUBLE:
38224 
38225       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":322
38226  *                 elif t == NPY_CFLOAT:      f = "Zf"
38227  *                 elif t == NPY_CDOUBLE:     f = "Zd"
38228  *                 elif t == NPY_CLONGDOUBLE: f = "Zg"             # <<<<<<<<<<<<<<
38229  *                 elif t == NPY_OBJECT:      f = "O"
38230  *                 else:
38231  */
38232       __pyx_v_f = ((char *)"Zg");
38233       break;
38234       case NPY_OBJECT:
38235 
38236       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":323
38237  *                 elif t == NPY_CDOUBLE:     f = "Zd"
38238  *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
38239  *                 elif t == NPY_OBJECT:      f = "O"             # <<<<<<<<<<<<<<
38240  *                 else:
38241  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
38242  */
38243       __pyx_v_f = ((char *)"O");
38244       break;
38245       default:
38246 
38247       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":325
38248  *                 elif t == NPY_OBJECT:      f = "O"
38249  *                 else:
38250  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
38251  *                 info.format = f
38252  *                 return
38253  */
38254       __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 325, __pyx_L1_error)
38255       __Pyx_GOTREF(__pyx_t_3);
38256       __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 325, __pyx_L1_error)
38257       __Pyx_GOTREF(__pyx_t_8);
38258       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38259       __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 325, __pyx_L1_error)
38260       __Pyx_GOTREF(__pyx_t_3);
38261       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
38262       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
38263       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38264       __PYX_ERR(2, 325, __pyx_L1_error)
38265       break;
38266     }
38267 
38268     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":326
38269  *                 else:
38270  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
38271  *                 info.format = f             # <<<<<<<<<<<<<<
38272  *                 return
38273  *             else:
38274  */
38275     __pyx_v_info->format = __pyx_v_f;
38276 
38277     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":327
38278  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
38279  *                 info.format = f
38280  *                 return             # <<<<<<<<<<<<<<
38281  *             else:
38282  *                 info.format = <char*>PyObject_Malloc(_buffer_format_string_len)
38283  */
38284     __pyx_r = 0;
38285     goto __pyx_L0;
38286 
38287     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":302
38288  *             info.obj = self
38289  *
38290  *             if not PyDataType_HASFIELDS(descr):             # <<<<<<<<<<<<<<
38291  *                 t = descr.type_num
38292  *                 if ((descr.byteorder == c'>' and little_endian) or
38293  */
38294   }
38295 
38296   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":329
38297  *                 return
38298  *             else:
38299  *                 info.format = <char*>PyObject_Malloc(_buffer_format_string_len)             # <<<<<<<<<<<<<<
38300  *                 info.format[0] = c'^' # Native data types, manual alignment
38301  *                 offset = 0
38302  */
38303   /*else*/ {
38304     __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF));
38305 
38306     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":330
38307  *             else:
38308  *                 info.format = <char*>PyObject_Malloc(_buffer_format_string_len)
38309  *                 info.format[0] = c'^' # Native data types, manual alignment             # <<<<<<<<<<<<<<
38310  *                 offset = 0
38311  *                 f = _util_dtypestring(descr, info.format + 1,
38312  */
38313     (__pyx_v_info->format[0]) = '^';
38314 
38315     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":331
38316  *                 info.format = <char*>PyObject_Malloc(_buffer_format_string_len)
38317  *                 info.format[0] = c'^' # Native data types, manual alignment
38318  *                 offset = 0             # <<<<<<<<<<<<<<
38319  *                 f = _util_dtypestring(descr, info.format + 1,
38320  *                                       info.format + _buffer_format_string_len,
38321  */
38322     __pyx_v_offset = 0;
38323 
38324     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":332
38325  *                 info.format[0] = c'^' # Native data types, manual alignment
38326  *                 offset = 0
38327  *                 f = _util_dtypestring(descr, info.format + 1,             # <<<<<<<<<<<<<<
38328  *                                       info.format + _buffer_format_string_len,
38329  *                                       &offset)
38330  */
38331     __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 332, __pyx_L1_error)
38332     __pyx_v_f = __pyx_t_9;
38333 
38334     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":335
38335  *                                       info.format + _buffer_format_string_len,
38336  *                                       &offset)
38337  *                 f[0] = c'\0' # Terminate format string             # <<<<<<<<<<<<<<
38338  *
38339  *         def __releasebuffer__(ndarray self, Py_buffer* info):
38340  */
38341     (__pyx_v_f[0]) = '\x00';
38342   }
38343 
38344   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":258
38345  *         # experimental exception made for __getbuffer__ and __releasebuffer__
38346  *         # -- the details of this may change.
38347  *         def __getbuffer__(ndarray self, Py_buffer* info, int flags):             # <<<<<<<<<<<<<<
38348  *             # This implementation of getbuffer is geared towards Cython
38349  *             # requirements, and does not yet fulfill the PEP.
38350  */
38351 
38352   /* function exit code */
38353   __pyx_r = 0;
38354   goto __pyx_L0;
38355   __pyx_L1_error:;
38356   __Pyx_XDECREF(__pyx_t_3);
38357   __Pyx_XDECREF(__pyx_t_8);
38358   __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
38359   __pyx_r = -1;
38360   if (__pyx_v_info->obj != NULL) {
38361     __Pyx_GOTREF(__pyx_v_info->obj);
38362     __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
38363   }
38364   goto __pyx_L2;
38365   __pyx_L0:;
38366   if (__pyx_v_info->obj == Py_None) {
38367     __Pyx_GOTREF(__pyx_v_info->obj);
38368     __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
38369   }
38370   __pyx_L2:;
38371   __Pyx_XDECREF((PyObject *)__pyx_v_descr);
38372   __Pyx_TraceReturn(Py_None, 0);
38373   __Pyx_RefNannyFinishContext();
38374   return __pyx_r;
38375 }
38376 
38377 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":337
38378  *                 f[0] = c'\0' # Terminate format string
38379  *
38380  *         def __releasebuffer__(ndarray self, Py_buffer* info):             # <<<<<<<<<<<<<<
38381  *             if PyArray_HASFIELDS(self):
38382  *                 PyObject_Free(info.format)
38383  */
38384 
38385 /* Python wrapper */
38386 static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/
38387 static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
38388   __Pyx_RefNannyDeclarations
38389   __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0);
38390   __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info));
38391 
38392   /* function exit code */
38393   __Pyx_RefNannyFinishContext();
38394 }
38395 
38396 static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
38397   __Pyx_TraceDeclarations
38398   __Pyx_RefNannyDeclarations
38399   int __pyx_t_1;
38400   int __pyx_lineno = 0;
38401   const char *__pyx_filename = NULL;
38402   int __pyx_clineno = 0;
38403   __Pyx_RefNannySetupContext("__releasebuffer__", 0);
38404   __Pyx_TraceCall("__releasebuffer__", __pyx_f[2], 337, 0, __PYX_ERR(2, 337, __pyx_L1_error));
38405 
38406   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":338
38407  *
38408  *         def __releasebuffer__(ndarray self, Py_buffer* info):
38409  *             if PyArray_HASFIELDS(self):             # <<<<<<<<<<<<<<
38410  *                 PyObject_Free(info.format)
38411  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
38412  */
38413   __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0);
38414   if (__pyx_t_1) {
38415 
38416     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":339
38417  *         def __releasebuffer__(ndarray self, Py_buffer* info):
38418  *             if PyArray_HASFIELDS(self):
38419  *                 PyObject_Free(info.format)             # <<<<<<<<<<<<<<
38420  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
38421  *                 PyObject_Free(info.strides)
38422  */
38423     PyObject_Free(__pyx_v_info->format);
38424 
38425     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":338
38426  *
38427  *         def __releasebuffer__(ndarray self, Py_buffer* info):
38428  *             if PyArray_HASFIELDS(self):             # <<<<<<<<<<<<<<
38429  *                 PyObject_Free(info.format)
38430  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
38431  */
38432   }
38433 
38434   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":340
38435  *             if PyArray_HASFIELDS(self):
38436  *                 PyObject_Free(info.format)
38437  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
38438  *                 PyObject_Free(info.strides)
38439  *                 # info.shape was stored after info.strides in the same block
38440  */
38441   __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0);
38442   if (__pyx_t_1) {
38443 
38444     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":341
38445  *                 PyObject_Free(info.format)
38446  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
38447  *                 PyObject_Free(info.strides)             # <<<<<<<<<<<<<<
38448  *                 # info.shape was stored after info.strides in the same block
38449  *
38450  */
38451     PyObject_Free(__pyx_v_info->strides);
38452 
38453     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":340
38454  *             if PyArray_HASFIELDS(self):
38455  *                 PyObject_Free(info.format)
38456  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
38457  *                 PyObject_Free(info.strides)
38458  *                 # info.shape was stored after info.strides in the same block
38459  */
38460   }
38461 
38462   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":337
38463  *                 f[0] = c'\0' # Terminate format string
38464  *
38465  *         def __releasebuffer__(ndarray self, Py_buffer* info):             # <<<<<<<<<<<<<<
38466  *             if PyArray_HASFIELDS(self):
38467  *                 PyObject_Free(info.format)
38468  */
38469 
38470   /* function exit code */
38471   goto __pyx_L0;
38472   __pyx_L1_error:;
38473   __Pyx_WriteUnraisable("numpy.ndarray.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
38474   __pyx_L0:;
38475   __Pyx_TraceReturn(Py_None, 0);
38476   __Pyx_RefNannyFinishContext();
38477 }
38478 
38479 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":820
38480  * ctypedef npy_cdouble     complex_t
38481  *
38482  * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
38483  *     return PyArray_MultiIterNew(1, <void*>a)
38484  *
38485  */
38486 
38487 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
38488   PyObject *__pyx_r = NULL;
38489   __Pyx_TraceDeclarations
38490   __Pyx_RefNannyDeclarations
38491   PyObject *__pyx_t_1 = NULL;
38492   int __pyx_lineno = 0;
38493   const char *__pyx_filename = NULL;
38494   int __pyx_clineno = 0;
38495   __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
38496   __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[2], 820, 0, __PYX_ERR(2, 820, __pyx_L1_error));
38497 
38498   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":821
38499  *
38500  * cdef inline object PyArray_MultiIterNew1(a):
38501  *     return PyArray_MultiIterNew(1, <void*>a)             # <<<<<<<<<<<<<<
38502  *
38503  * cdef inline object PyArray_MultiIterNew2(a, b):
38504  */
38505   __Pyx_XDECREF(__pyx_r);
38506   __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 821, __pyx_L1_error)
38507   __Pyx_GOTREF(__pyx_t_1);
38508   __pyx_r = __pyx_t_1;
38509   __pyx_t_1 = 0;
38510   goto __pyx_L0;
38511 
38512   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":820
38513  * ctypedef npy_cdouble     complex_t
38514  *
38515  * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
38516  *     return PyArray_MultiIterNew(1, <void*>a)
38517  *
38518  */
38519 
38520   /* function exit code */
38521   __pyx_L1_error:;
38522   __Pyx_XDECREF(__pyx_t_1);
38523   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
38524   __pyx_r = 0;
38525   __pyx_L0:;
38526   __Pyx_XGIVEREF(__pyx_r);
38527   __Pyx_TraceReturn(__pyx_r, 0);
38528   __Pyx_RefNannyFinishContext();
38529   return __pyx_r;
38530 }
38531 
38532 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":823
38533  *     return PyArray_MultiIterNew(1, <void*>a)
38534  *
38535  * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
38536  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
38537  *
38538  */
38539 
38540 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
38541   PyObject *__pyx_r = NULL;
38542   __Pyx_TraceDeclarations
38543   __Pyx_RefNannyDeclarations
38544   PyObject *__pyx_t_1 = NULL;
38545   int __pyx_lineno = 0;
38546   const char *__pyx_filename = NULL;
38547   int __pyx_clineno = 0;
38548   __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
38549   __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[2], 823, 0, __PYX_ERR(2, 823, __pyx_L1_error));
38550 
38551   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":824
38552  *
38553  * cdef inline object PyArray_MultiIterNew2(a, b):
38554  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)             # <<<<<<<<<<<<<<
38555  *
38556  * cdef inline object PyArray_MultiIterNew3(a, b, c):
38557  */
38558   __Pyx_XDECREF(__pyx_r);
38559   __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 824, __pyx_L1_error)
38560   __Pyx_GOTREF(__pyx_t_1);
38561   __pyx_r = __pyx_t_1;
38562   __pyx_t_1 = 0;
38563   goto __pyx_L0;
38564 
38565   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":823
38566  *     return PyArray_MultiIterNew(1, <void*>a)
38567  *
38568  * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
38569  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
38570  *
38571  */
38572 
38573   /* function exit code */
38574   __pyx_L1_error:;
38575   __Pyx_XDECREF(__pyx_t_1);
38576   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
38577   __pyx_r = 0;
38578   __pyx_L0:;
38579   __Pyx_XGIVEREF(__pyx_r);
38580   __Pyx_TraceReturn(__pyx_r, 0);
38581   __Pyx_RefNannyFinishContext();
38582   return __pyx_r;
38583 }
38584 
38585 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":826
38586  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
38587  *
38588  * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
38589  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
38590  *
38591  */
38592 
38593 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
38594   PyObject *__pyx_r = NULL;
38595   __Pyx_TraceDeclarations
38596   __Pyx_RefNannyDeclarations
38597   PyObject *__pyx_t_1 = NULL;
38598   int __pyx_lineno = 0;
38599   const char *__pyx_filename = NULL;
38600   int __pyx_clineno = 0;
38601   __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
38602   __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[2], 826, 0, __PYX_ERR(2, 826, __pyx_L1_error));
38603 
38604   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":827
38605  *
38606  * cdef inline object PyArray_MultiIterNew3(a, b, c):
38607  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)             # <<<<<<<<<<<<<<
38608  *
38609  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
38610  */
38611   __Pyx_XDECREF(__pyx_r);
38612   __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 827, __pyx_L1_error)
38613   __Pyx_GOTREF(__pyx_t_1);
38614   __pyx_r = __pyx_t_1;
38615   __pyx_t_1 = 0;
38616   goto __pyx_L0;
38617 
38618   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":826
38619  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
38620  *
38621  * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
38622  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
38623  *
38624  */
38625 
38626   /* function exit code */
38627   __pyx_L1_error:;
38628   __Pyx_XDECREF(__pyx_t_1);
38629   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
38630   __pyx_r = 0;
38631   __pyx_L0:;
38632   __Pyx_XGIVEREF(__pyx_r);
38633   __Pyx_TraceReturn(__pyx_r, 0);
38634   __Pyx_RefNannyFinishContext();
38635   return __pyx_r;
38636 }
38637 
38638 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":829
38639  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
38640  *
38641  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
38642  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
38643  *
38644  */
38645 
38646 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
38647   PyObject *__pyx_r = NULL;
38648   __Pyx_TraceDeclarations
38649   __Pyx_RefNannyDeclarations
38650   PyObject *__pyx_t_1 = NULL;
38651   int __pyx_lineno = 0;
38652   const char *__pyx_filename = NULL;
38653   int __pyx_clineno = 0;
38654   __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
38655   __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[2], 829, 0, __PYX_ERR(2, 829, __pyx_L1_error));
38656 
38657   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":830
38658  *
38659  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
38660  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)             # <<<<<<<<<<<<<<
38661  *
38662  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
38663  */
38664   __Pyx_XDECREF(__pyx_r);
38665   __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 830, __pyx_L1_error)
38666   __Pyx_GOTREF(__pyx_t_1);
38667   __pyx_r = __pyx_t_1;
38668   __pyx_t_1 = 0;
38669   goto __pyx_L0;
38670 
38671   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":829
38672  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
38673  *
38674  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
38675  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
38676  *
38677  */
38678 
38679   /* function exit code */
38680   __pyx_L1_error:;
38681   __Pyx_XDECREF(__pyx_t_1);
38682   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
38683   __pyx_r = 0;
38684   __pyx_L0:;
38685   __Pyx_XGIVEREF(__pyx_r);
38686   __Pyx_TraceReturn(__pyx_r, 0);
38687   __Pyx_RefNannyFinishContext();
38688   return __pyx_r;
38689 }
38690 
38691 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":832
38692  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
38693  *
38694  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
38695  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
38696  *
38697  */
38698 
38699 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
38700   PyObject *__pyx_r = NULL;
38701   __Pyx_TraceDeclarations
38702   __Pyx_RefNannyDeclarations
38703   PyObject *__pyx_t_1 = NULL;
38704   int __pyx_lineno = 0;
38705   const char *__pyx_filename = NULL;
38706   int __pyx_clineno = 0;
38707   __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
38708   __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[2], 832, 0, __PYX_ERR(2, 832, __pyx_L1_error));
38709 
38710   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":833
38711  *
38712  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
38713  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)             # <<<<<<<<<<<<<<
38714  *
38715  * cdef inline tuple PyDataType_SHAPE(dtype d):
38716  */
38717   __Pyx_XDECREF(__pyx_r);
38718   __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 833, __pyx_L1_error)
38719   __Pyx_GOTREF(__pyx_t_1);
38720   __pyx_r = __pyx_t_1;
38721   __pyx_t_1 = 0;
38722   goto __pyx_L0;
38723 
38724   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":832
38725  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
38726  *
38727  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
38728  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
38729  *
38730  */
38731 
38732   /* function exit code */
38733   __pyx_L1_error:;
38734   __Pyx_XDECREF(__pyx_t_1);
38735   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
38736   __pyx_r = 0;
38737   __pyx_L0:;
38738   __Pyx_XGIVEREF(__pyx_r);
38739   __Pyx_TraceReturn(__pyx_r, 0);
38740   __Pyx_RefNannyFinishContext();
38741   return __pyx_r;
38742 }
38743 
38744 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":835
38745  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
38746  *
38747  * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
38748  *     if PyDataType_HASSUBARRAY(d):
38749  *         return <tuple>d.subarray.shape
38750  */
38751 
38752 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
38753   PyObject *__pyx_r = NULL;
38754   __Pyx_TraceDeclarations
38755   __Pyx_RefNannyDeclarations
38756   int __pyx_t_1;
38757   int __pyx_lineno = 0;
38758   const char *__pyx_filename = NULL;
38759   int __pyx_clineno = 0;
38760   __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
38761   __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[2], 835, 0, __PYX_ERR(2, 835, __pyx_L1_error));
38762 
38763   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":836
38764  *
38765  * cdef inline tuple PyDataType_SHAPE(dtype d):
38766  *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
38767  *         return <tuple>d.subarray.shape
38768  *     else:
38769  */
38770   __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0);
38771   if (__pyx_t_1) {
38772 
38773     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":837
38774  * cdef inline tuple PyDataType_SHAPE(dtype d):
38775  *     if PyDataType_HASSUBARRAY(d):
38776  *         return <tuple>d.subarray.shape             # <<<<<<<<<<<<<<
38777  *     else:
38778  *         return ()
38779  */
38780     __Pyx_XDECREF(__pyx_r);
38781     __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape));
38782     __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
38783     goto __pyx_L0;
38784 
38785     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":836
38786  *
38787  * cdef inline tuple PyDataType_SHAPE(dtype d):
38788  *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
38789  *         return <tuple>d.subarray.shape
38790  *     else:
38791  */
38792   }
38793 
38794   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":839
38795  *         return <tuple>d.subarray.shape
38796  *     else:
38797  *         return ()             # <<<<<<<<<<<<<<
38798  *
38799  * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:
38800  */
38801   /*else*/ {
38802     __Pyx_XDECREF(__pyx_r);
38803     __Pyx_INCREF(__pyx_empty_tuple);
38804     __pyx_r = __pyx_empty_tuple;
38805     goto __pyx_L0;
38806   }
38807 
38808   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":835
38809  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
38810  *
38811  * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
38812  *     if PyDataType_HASSUBARRAY(d):
38813  *         return <tuple>d.subarray.shape
38814  */
38815 
38816   /* function exit code */
38817   __pyx_L1_error:;
38818   __Pyx_AddTraceback("numpy.PyDataType_SHAPE", __pyx_clineno, __pyx_lineno, __pyx_filename);
38819   __pyx_r = 0;
38820   __pyx_L0:;
38821   __Pyx_XGIVEREF(__pyx_r);
38822   __Pyx_TraceReturn(__pyx_r, 0);
38823   __Pyx_RefNannyFinishContext();
38824   return __pyx_r;
38825 }
38826 
38827 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":841
38828  *         return ()
38829  *
38830  * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:             # <<<<<<<<<<<<<<
38831  *     # Recursive utility function used in __getbuffer__ to get format
38832  *     # string. The new location in the format string is returned.
38833  */
38834 
38835 static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) {
38836   PyArray_Descr *__pyx_v_child = 0;
38837   int __pyx_v_endian_detector;
38838   int __pyx_v_little_endian;
38839   PyObject *__pyx_v_fields = 0;
38840   PyObject *__pyx_v_childname = NULL;
38841   PyObject *__pyx_v_new_offset = NULL;
38842   PyObject *__pyx_v_t = NULL;
38843   char *__pyx_r;
38844   __Pyx_TraceDeclarations
38845   __Pyx_RefNannyDeclarations
38846   PyObject *__pyx_t_1 = NULL;
38847   Py_ssize_t __pyx_t_2;
38848   PyObject *__pyx_t_3 = NULL;
38849   PyObject *__pyx_t_4 = NULL;
38850   int __pyx_t_5;
38851   int __pyx_t_6;
38852   int __pyx_t_7;
38853   long __pyx_t_8;
38854   char *__pyx_t_9;
38855   int __pyx_lineno = 0;
38856   const char *__pyx_filename = NULL;
38857   int __pyx_clineno = 0;
38858   __Pyx_RefNannySetupContext("_util_dtypestring", 0);
38859   __Pyx_TraceCall("_util_dtypestring", __pyx_f[2], 841, 0, __PYX_ERR(2, 841, __pyx_L1_error));
38860 
38861   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":846
38862  *
38863  *     cdef dtype child
38864  *     cdef int endian_detector = 1             # <<<<<<<<<<<<<<
38865  *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
38866  *     cdef tuple fields
38867  */
38868   __pyx_v_endian_detector = 1;
38869 
38870   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":847
38871  *     cdef dtype child
38872  *     cdef int endian_detector = 1
38873  *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
38874  *     cdef tuple fields
38875  *
38876  */
38877   __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
38878 
38879   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":850
38880  *     cdef tuple fields
38881  *
38882  *     for childname in descr.names:             # <<<<<<<<<<<<<<
38883  *         fields = descr.fields[childname]
38884  *         child, new_offset = fields
38885  */
38886   if (unlikely(__pyx_v_descr->names == Py_None)) {
38887     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
38888     __PYX_ERR(2, 850, __pyx_L1_error)
38889   }
38890   __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
38891   for (;;) {
38892     if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
38893     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
38894     __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(2, 850, __pyx_L1_error)
38895     #else
38896     __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 850, __pyx_L1_error)
38897     __Pyx_GOTREF(__pyx_t_3);
38898     #endif
38899     __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3);
38900     __pyx_t_3 = 0;
38901 
38902     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":851
38903  *
38904  *     for childname in descr.names:
38905  *         fields = descr.fields[childname]             # <<<<<<<<<<<<<<
38906  *         child, new_offset = fields
38907  *
38908  */
38909     if (unlikely(__pyx_v_descr->fields == Py_None)) {
38910       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
38911       __PYX_ERR(2, 851, __pyx_L1_error)
38912     }
38913     __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 851, __pyx_L1_error)
38914     __Pyx_GOTREF(__pyx_t_3);
38915     if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 851, __pyx_L1_error)
38916     __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3));
38917     __pyx_t_3 = 0;
38918 
38919     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":852
38920  *     for childname in descr.names:
38921  *         fields = descr.fields[childname]
38922  *         child, new_offset = fields             # <<<<<<<<<<<<<<
38923  *
38924  *         if (end - f) - <int>(new_offset - offset[0]) < 15:
38925  */
38926     if (likely(__pyx_v_fields != Py_None)) {
38927       PyObject* sequence = __pyx_v_fields;
38928       Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
38929       if (unlikely(size != 2)) {
38930         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
38931         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
38932         __PYX_ERR(2, 852, __pyx_L1_error)
38933       }
38934       #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
38935       __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
38936       __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
38937       __Pyx_INCREF(__pyx_t_3);
38938       __Pyx_INCREF(__pyx_t_4);
38939       #else
38940       __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error)
38941       __Pyx_GOTREF(__pyx_t_3);
38942       __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 852, __pyx_L1_error)
38943       __Pyx_GOTREF(__pyx_t_4);
38944       #endif
38945     } else {
38946       __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 852, __pyx_L1_error)
38947     }
38948     if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 852, __pyx_L1_error)
38949     __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3));
38950     __pyx_t_3 = 0;
38951     __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4);
38952     __pyx_t_4 = 0;
38953 
38954     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":854
38955  *         child, new_offset = fields
38956  *
38957  *         if (end - f) - <int>(new_offset - offset[0]) < 15:             # <<<<<<<<<<<<<<
38958  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
38959  *
38960  */
38961     __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 854, __pyx_L1_error)
38962     __Pyx_GOTREF(__pyx_t_4);
38963     __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 854, __pyx_L1_error)
38964     __Pyx_GOTREF(__pyx_t_3);
38965     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38966     __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 854, __pyx_L1_error)
38967     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38968     __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0);
38969     if (unlikely(__pyx_t_6)) {
38970 
38971       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":855
38972  *
38973  *         if (end - f) - <int>(new_offset - offset[0]) < 15:
38974  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
38975  *
38976  *         if ((child.byteorder == c'>' and little_endian) or
38977  */
38978       __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error)
38979       __Pyx_GOTREF(__pyx_t_3);
38980       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
38981       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38982       __PYX_ERR(2, 855, __pyx_L1_error)
38983 
38984       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":854
38985  *         child, new_offset = fields
38986  *
38987  *         if (end - f) - <int>(new_offset - offset[0]) < 15:             # <<<<<<<<<<<<<<
38988  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
38989  *
38990  */
38991     }
38992 
38993     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":857
38994  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
38995  *
38996  *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
38997  *             (child.byteorder == c'<' and not little_endian)):
38998  *             raise ValueError(u"Non-native byte order not supported")
38999  */
39000     __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0);
39001     if (!__pyx_t_7) {
39002       goto __pyx_L8_next_or;
39003     } else {
39004     }
39005     __pyx_t_7 = (__pyx_v_little_endian != 0);
39006     if (!__pyx_t_7) {
39007     } else {
39008       __pyx_t_6 = __pyx_t_7;
39009       goto __pyx_L7_bool_binop_done;
39010     }
39011     __pyx_L8_next_or:;
39012 
39013     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":858
39014  *
39015  *         if ((child.byteorder == c'>' and little_endian) or
39016  *             (child.byteorder == c'<' and not little_endian)):             # <<<<<<<<<<<<<<
39017  *             raise ValueError(u"Non-native byte order not supported")
39018  *             # One could encode it in the format string and have Cython
39019  */
39020     __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0);
39021     if (__pyx_t_7) {
39022     } else {
39023       __pyx_t_6 = __pyx_t_7;
39024       goto __pyx_L7_bool_binop_done;
39025     }
39026     __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0);
39027     __pyx_t_6 = __pyx_t_7;
39028     __pyx_L7_bool_binop_done:;
39029 
39030     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":857
39031  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
39032  *
39033  *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
39034  *             (child.byteorder == c'<' and not little_endian)):
39035  *             raise ValueError(u"Non-native byte order not supported")
39036  */
39037     if (unlikely(__pyx_t_6)) {
39038 
39039       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":859
39040  *         if ((child.byteorder == c'>' and little_endian) or
39041  *             (child.byteorder == c'<' and not little_endian)):
39042  *             raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
39043  *             # One could encode it in the format string and have Cython
39044  *             # complain instead, BUT: < and > in format strings also imply
39045  */
39046       __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 859, __pyx_L1_error)
39047       __Pyx_GOTREF(__pyx_t_3);
39048       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
39049       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39050       __PYX_ERR(2, 859, __pyx_L1_error)
39051 
39052       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":857
39053  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
39054  *
39055  *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
39056  *             (child.byteorder == c'<' and not little_endian)):
39057  *             raise ValueError(u"Non-native byte order not supported")
39058  */
39059     }
39060 
39061     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":869
39062  *
39063  *         # Output padding bytes
39064  *         while offset[0] < new_offset:             # <<<<<<<<<<<<<<
39065  *             f[0] = 120 # "x"; pad byte
39066  *             f += 1
39067  */
39068     while (1) {
39069       __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 869, __pyx_L1_error)
39070       __Pyx_GOTREF(__pyx_t_3);
39071       __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 869, __pyx_L1_error)
39072       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39073       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 869, __pyx_L1_error)
39074       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39075       if (!__pyx_t_6) break;
39076 
39077       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":870
39078  *         # Output padding bytes
39079  *         while offset[0] < new_offset:
39080  *             f[0] = 120 # "x"; pad byte             # <<<<<<<<<<<<<<
39081  *             f += 1
39082  *             offset[0] += 1
39083  */
39084       (__pyx_v_f[0]) = 0x78;
39085 
39086       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":871
39087  *         while offset[0] < new_offset:
39088  *             f[0] = 120 # "x"; pad byte
39089  *             f += 1             # <<<<<<<<<<<<<<
39090  *             offset[0] += 1
39091  *
39092  */
39093       __pyx_v_f = (__pyx_v_f + 1);
39094 
39095       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":872
39096  *             f[0] = 120 # "x"; pad byte
39097  *             f += 1
39098  *             offset[0] += 1             # <<<<<<<<<<<<<<
39099  *
39100  *         offset[0] += child.itemsize
39101  */
39102       __pyx_t_8 = 0;
39103       (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1);
39104     }
39105 
39106     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":874
39107  *             offset[0] += 1
39108  *
39109  *         offset[0] += child.itemsize             # <<<<<<<<<<<<<<
39110  *
39111  *         if not PyDataType_HASFIELDS(child):
39112  */
39113     __pyx_t_8 = 0;
39114     (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize);
39115 
39116     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":876
39117  *         offset[0] += child.itemsize
39118  *
39119  *         if not PyDataType_HASFIELDS(child):             # <<<<<<<<<<<<<<
39120  *             t = child.type_num
39121  *             if end - f < 5:
39122  */
39123     __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0);
39124     if (__pyx_t_6) {
39125 
39126       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":877
39127  *
39128  *         if not PyDataType_HASFIELDS(child):
39129  *             t = child.type_num             # <<<<<<<<<<<<<<
39130  *             if end - f < 5:
39131  *                 raise RuntimeError(u"Format string allocated too short.")
39132  */
39133       __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 877, __pyx_L1_error)
39134       __Pyx_GOTREF(__pyx_t_4);
39135       __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4);
39136       __pyx_t_4 = 0;
39137 
39138       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":878
39139  *         if not PyDataType_HASFIELDS(child):
39140  *             t = child.type_num
39141  *             if end - f < 5:             # <<<<<<<<<<<<<<
39142  *                 raise RuntimeError(u"Format string allocated too short.")
39143  *
39144  */
39145       __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0);
39146       if (unlikely(__pyx_t_6)) {
39147 
39148         /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":879
39149  *             t = child.type_num
39150  *             if end - f < 5:
39151  *                 raise RuntimeError(u"Format string allocated too short.")             # <<<<<<<<<<<<<<
39152  *
39153  *             # Until ticket #99 is fixed, use integers to avoid warnings
39154  */
39155         __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 879, __pyx_L1_error)
39156         __Pyx_GOTREF(__pyx_t_4);
39157         __Pyx_Raise(__pyx_t_4, 0, 0, 0);
39158         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39159         __PYX_ERR(2, 879, __pyx_L1_error)
39160 
39161         /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":878
39162  *         if not PyDataType_HASFIELDS(child):
39163  *             t = child.type_num
39164  *             if end - f < 5:             # <<<<<<<<<<<<<<
39165  *                 raise RuntimeError(u"Format string allocated too short.")
39166  *
39167  */
39168       }
39169 
39170       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":882
39171  *
39172  *             # Until ticket #99 is fixed, use integers to avoid warnings
39173  *             if   t == NPY_BYTE:        f[0] =  98 #"b"             # <<<<<<<<<<<<<<
39174  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
39175  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
39176  */
39177       __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 882, __pyx_L1_error)
39178       __Pyx_GOTREF(__pyx_t_4);
39179       __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 882, __pyx_L1_error)
39180       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39181       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 882, __pyx_L1_error)
39182       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39183       if (__pyx_t_6) {
39184         (__pyx_v_f[0]) = 98;
39185         goto __pyx_L15;
39186       }
39187 
39188       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":883
39189  *             # Until ticket #99 is fixed, use integers to avoid warnings
39190  *             if   t == NPY_BYTE:        f[0] =  98 #"b"
39191  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"             # <<<<<<<<<<<<<<
39192  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
39193  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
39194  */
39195       __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error)
39196       __Pyx_GOTREF(__pyx_t_3);
39197       __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error)
39198       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39199       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error)
39200       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39201       if (__pyx_t_6) {
39202         (__pyx_v_f[0]) = 66;
39203         goto __pyx_L15;
39204       }
39205 
39206       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":884
39207  *             if   t == NPY_BYTE:        f[0] =  98 #"b"
39208  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
39209  *             elif t == NPY_SHORT:       f[0] = 104 #"h"             # <<<<<<<<<<<<<<
39210  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
39211  *             elif t == NPY_INT:         f[0] = 105 #"i"
39212  */
39213       __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error)
39214       __Pyx_GOTREF(__pyx_t_4);
39215       __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error)
39216       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39217       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error)
39218       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39219       if (__pyx_t_6) {
39220         (__pyx_v_f[0]) = 0x68;
39221         goto __pyx_L15;
39222       }
39223 
39224       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":885
39225  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
39226  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
39227  *             elif t == NPY_USHORT:      f[0] =  72 #"H"             # <<<<<<<<<<<<<<
39228  *             elif t == NPY_INT:         f[0] = 105 #"i"
39229  *             elif t == NPY_UINT:        f[0] =  73 #"I"
39230  */
39231       __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error)
39232       __Pyx_GOTREF(__pyx_t_3);
39233       __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error)
39234       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39235       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error)
39236       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39237       if (__pyx_t_6) {
39238         (__pyx_v_f[0]) = 72;
39239         goto __pyx_L15;
39240       }
39241 
39242       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":886
39243  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
39244  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
39245  *             elif t == NPY_INT:         f[0] = 105 #"i"             # <<<<<<<<<<<<<<
39246  *             elif t == NPY_UINT:        f[0] =  73 #"I"
39247  *             elif t == NPY_LONG:        f[0] = 108 #"l"
39248  */
39249       __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error)
39250       __Pyx_GOTREF(__pyx_t_4);
39251       __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error)
39252       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39253       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error)
39254       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39255       if (__pyx_t_6) {
39256         (__pyx_v_f[0]) = 0x69;
39257         goto __pyx_L15;
39258       }
39259 
39260       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":887
39261  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
39262  *             elif t == NPY_INT:         f[0] = 105 #"i"
39263  *             elif t == NPY_UINT:        f[0] =  73 #"I"             # <<<<<<<<<<<<<<
39264  *             elif t == NPY_LONG:        f[0] = 108 #"l"
39265  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
39266  */
39267       __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error)
39268       __Pyx_GOTREF(__pyx_t_3);
39269       __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error)
39270       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39271       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error)
39272       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39273       if (__pyx_t_6) {
39274         (__pyx_v_f[0]) = 73;
39275         goto __pyx_L15;
39276       }
39277 
39278       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":888
39279  *             elif t == NPY_INT:         f[0] = 105 #"i"
39280  *             elif t == NPY_UINT:        f[0] =  73 #"I"
39281  *             elif t == NPY_LONG:        f[0] = 108 #"l"             # <<<<<<<<<<<<<<
39282  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
39283  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
39284  */
39285       __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error)
39286       __Pyx_GOTREF(__pyx_t_4);
39287       __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error)
39288       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39289       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error)
39290       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39291       if (__pyx_t_6) {
39292         (__pyx_v_f[0]) = 0x6C;
39293         goto __pyx_L15;
39294       }
39295 
39296       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":889
39297  *             elif t == NPY_UINT:        f[0] =  73 #"I"
39298  *             elif t == NPY_LONG:        f[0] = 108 #"l"
39299  *             elif t == NPY_ULONG:       f[0] = 76  #"L"             # <<<<<<<<<<<<<<
39300  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
39301  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
39302  */
39303       __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error)
39304       __Pyx_GOTREF(__pyx_t_3);
39305       __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error)
39306       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39307       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error)
39308       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39309       if (__pyx_t_6) {
39310         (__pyx_v_f[0]) = 76;
39311         goto __pyx_L15;
39312       }
39313 
39314       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":890
39315  *             elif t == NPY_LONG:        f[0] = 108 #"l"
39316  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
39317  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"             # <<<<<<<<<<<<<<
39318  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
39319  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
39320  */
39321       __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error)
39322       __Pyx_GOTREF(__pyx_t_4);
39323       __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error)
39324       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39325       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error)
39326       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39327       if (__pyx_t_6) {
39328         (__pyx_v_f[0]) = 0x71;
39329         goto __pyx_L15;
39330       }
39331 
39332       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":891
39333  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
39334  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
39335  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"             # <<<<<<<<<<<<<<
39336  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
39337  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
39338  */
39339       __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error)
39340       __Pyx_GOTREF(__pyx_t_3);
39341       __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error)
39342       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39343       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error)
39344       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39345       if (__pyx_t_6) {
39346         (__pyx_v_f[0]) = 81;
39347         goto __pyx_L15;
39348       }
39349 
39350       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":892
39351  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
39352  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
39353  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"             # <<<<<<<<<<<<<<
39354  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
39355  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
39356  */
39357       __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error)
39358       __Pyx_GOTREF(__pyx_t_4);
39359       __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error)
39360       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39361       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error)
39362       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39363       if (__pyx_t_6) {
39364         (__pyx_v_f[0]) = 0x66;
39365         goto __pyx_L15;
39366       }
39367 
39368       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":893
39369  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
39370  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
39371  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"             # <<<<<<<<<<<<<<
39372  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
39373  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
39374  */
39375       __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error)
39376       __Pyx_GOTREF(__pyx_t_3);
39377       __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error)
39378       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39379       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error)
39380       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39381       if (__pyx_t_6) {
39382         (__pyx_v_f[0]) = 0x64;
39383         goto __pyx_L15;
39384       }
39385 
39386       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":894
39387  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
39388  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
39389  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"             # <<<<<<<<<<<<<<
39390  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
39391  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
39392  */
39393       __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error)
39394       __Pyx_GOTREF(__pyx_t_4);
39395       __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error)
39396       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39397       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error)
39398       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39399       if (__pyx_t_6) {
39400         (__pyx_v_f[0]) = 0x67;
39401         goto __pyx_L15;
39402       }
39403 
39404       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":895
39405  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
39406  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
39407  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf             # <<<<<<<<<<<<<<
39408  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
39409  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
39410  */
39411       __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error)
39412       __Pyx_GOTREF(__pyx_t_3);
39413       __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error)
39414       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39415       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error)
39416       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39417       if (__pyx_t_6) {
39418         (__pyx_v_f[0]) = 90;
39419         (__pyx_v_f[1]) = 0x66;
39420         __pyx_v_f = (__pyx_v_f + 1);
39421         goto __pyx_L15;
39422       }
39423 
39424       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":896
39425  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
39426  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
39427  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd             # <<<<<<<<<<<<<<
39428  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
39429  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
39430  */
39431       __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error)
39432       __Pyx_GOTREF(__pyx_t_4);
39433       __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error)
39434       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39435       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error)
39436       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39437       if (__pyx_t_6) {
39438         (__pyx_v_f[0]) = 90;
39439         (__pyx_v_f[1]) = 0x64;
39440         __pyx_v_f = (__pyx_v_f + 1);
39441         goto __pyx_L15;
39442       }
39443 
39444       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":897
39445  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
39446  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
39447  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg             # <<<<<<<<<<<<<<
39448  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
39449  *             else:
39450  */
39451       __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error)
39452       __Pyx_GOTREF(__pyx_t_3);
39453       __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error)
39454       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39455       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error)
39456       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39457       if (__pyx_t_6) {
39458         (__pyx_v_f[0]) = 90;
39459         (__pyx_v_f[1]) = 0x67;
39460         __pyx_v_f = (__pyx_v_f + 1);
39461         goto __pyx_L15;
39462       }
39463 
39464       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":898
39465  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
39466  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
39467  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"             # <<<<<<<<<<<<<<
39468  *             else:
39469  *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
39470  */
39471       __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error)
39472       __Pyx_GOTREF(__pyx_t_4);
39473       __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error)
39474       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39475       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error)
39476       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39477       if (likely(__pyx_t_6)) {
39478         (__pyx_v_f[0]) = 79;
39479         goto __pyx_L15;
39480       }
39481 
39482       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":900
39483  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
39484  *             else:
39485  *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
39486  *             f += 1
39487  *         else:
39488  */
39489       /*else*/ {
39490         __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 900, __pyx_L1_error)
39491         __Pyx_GOTREF(__pyx_t_3);
39492         __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 900, __pyx_L1_error)
39493         __Pyx_GOTREF(__pyx_t_4);
39494         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39495         __Pyx_Raise(__pyx_t_4, 0, 0, 0);
39496         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39497         __PYX_ERR(2, 900, __pyx_L1_error)
39498       }
39499       __pyx_L15:;
39500 
39501       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":901
39502  *             else:
39503  *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
39504  *             f += 1             # <<<<<<<<<<<<<<
39505  *         else:
39506  *             # Cython ignores struct boundary information ("T{...}"),
39507  */
39508       __pyx_v_f = (__pyx_v_f + 1);
39509 
39510       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":876
39511  *         offset[0] += child.itemsize
39512  *
39513  *         if not PyDataType_HASFIELDS(child):             # <<<<<<<<<<<<<<
39514  *             t = child.type_num
39515  *             if end - f < 5:
39516  */
39517       goto __pyx_L13;
39518     }
39519 
39520     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":905
39521  *             # Cython ignores struct boundary information ("T{...}"),
39522  *             # so don't output it
39523  *             f = _util_dtypestring(child, f, end, offset)             # <<<<<<<<<<<<<<
39524  *     return f
39525  *
39526  */
39527     /*else*/ {
39528       __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 905, __pyx_L1_error)
39529       __pyx_v_f = __pyx_t_9;
39530     }
39531     __pyx_L13:;
39532 
39533     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":850
39534  *     cdef tuple fields
39535  *
39536  *     for childname in descr.names:             # <<<<<<<<<<<<<<
39537  *         fields = descr.fields[childname]
39538  *         child, new_offset = fields
39539  */
39540   }
39541   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39542 
39543   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":906
39544  *             # so don't output it
39545  *             f = _util_dtypestring(child, f, end, offset)
39546  *     return f             # <<<<<<<<<<<<<<
39547  *
39548  *
39549  */
39550   __pyx_r = __pyx_v_f;
39551   goto __pyx_L0;
39552 
39553   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":841
39554  *         return ()
39555  *
39556  * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:             # <<<<<<<<<<<<<<
39557  *     # Recursive utility function used in __getbuffer__ to get format
39558  *     # string. The new location in the format string is returned.
39559  */
39560 
39561   /* function exit code */
39562   __pyx_L1_error:;
39563   __Pyx_XDECREF(__pyx_t_1);
39564   __Pyx_XDECREF(__pyx_t_3);
39565   __Pyx_XDECREF(__pyx_t_4);
39566   __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename);
39567   __pyx_r = NULL;
39568   __pyx_L0:;
39569   __Pyx_XDECREF((PyObject *)__pyx_v_child);
39570   __Pyx_XDECREF(__pyx_v_fields);
39571   __Pyx_XDECREF(__pyx_v_childname);
39572   __Pyx_XDECREF(__pyx_v_new_offset);
39573   __Pyx_XDECREF(__pyx_v_t);
39574   __Pyx_TraceReturn(Py_None, 0);
39575   __Pyx_RefNannyFinishContext();
39576   return __pyx_r;
39577 }
39578 
39579 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1021
39580  *     int _import_umath() except -1
39581  *
39582  * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
39583  *     Py_INCREF(base) # important to do this before stealing the reference below!
39584  *     PyArray_SetBaseObject(arr, base)
39585  */
39586 
39587 static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
39588   __Pyx_TraceDeclarations
39589   __Pyx_RefNannyDeclarations
39590   int __pyx_lineno = 0;
39591   const char *__pyx_filename = NULL;
39592   int __pyx_clineno = 0;
39593   __Pyx_RefNannySetupContext("set_array_base", 0);
39594   __Pyx_TraceCall("set_array_base", __pyx_f[2], 1021, 0, __PYX_ERR(2, 1021, __pyx_L1_error));
39595 
39596   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1022
39597  *
39598  * cdef inline void set_array_base(ndarray arr, object base):
39599  *     Py_INCREF(base) # important to do this before stealing the reference below!             # <<<<<<<<<<<<<<
39600  *     PyArray_SetBaseObject(arr, base)
39601  *
39602  */
39603   Py_INCREF(__pyx_v_base);
39604 
39605   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1023
39606  * cdef inline void set_array_base(ndarray arr, object base):
39607  *     Py_INCREF(base) # important to do this before stealing the reference below!
39608  *     PyArray_SetBaseObject(arr, base)             # <<<<<<<<<<<<<<
39609  *
39610  * cdef inline object get_array_base(ndarray arr):
39611  */
39612   (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base));
39613 
39614   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1021
39615  *     int _import_umath() except -1
39616  *
39617  * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
39618  *     Py_INCREF(base) # important to do this before stealing the reference below!
39619  *     PyArray_SetBaseObject(arr, base)
39620  */
39621 
39622   /* function exit code */
39623   goto __pyx_L0;
39624   __pyx_L1_error:;
39625   __Pyx_WriteUnraisable("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
39626   __pyx_L0:;
39627   __Pyx_TraceReturn(Py_None, 0);
39628   __Pyx_RefNannyFinishContext();
39629 }
39630 
39631 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1025
39632  *     PyArray_SetBaseObject(arr, base)
39633  *
39634  * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
39635  *     base = PyArray_BASE(arr)
39636  *     if base is NULL:
39637  */
39638 
39639 static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
39640   PyObject *__pyx_v_base;
39641   PyObject *__pyx_r = NULL;
39642   __Pyx_TraceDeclarations
39643   __Pyx_RefNannyDeclarations
39644   int __pyx_t_1;
39645   int __pyx_lineno = 0;
39646   const char *__pyx_filename = NULL;
39647   int __pyx_clineno = 0;
39648   __Pyx_RefNannySetupContext("get_array_base", 0);
39649   __Pyx_TraceCall("get_array_base", __pyx_f[2], 1025, 0, __PYX_ERR(2, 1025, __pyx_L1_error));
39650 
39651   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1026
39652  *
39653  * cdef inline object get_array_base(ndarray arr):
39654  *     base = PyArray_BASE(arr)             # <<<<<<<<<<<<<<
39655  *     if base is NULL:
39656  *         return None
39657  */
39658   __pyx_v_base = PyArray_BASE(__pyx_v_arr);
39659 
39660   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1027
39661  * cdef inline object get_array_base(ndarray arr):
39662  *     base = PyArray_BASE(arr)
39663  *     if base is NULL:             # <<<<<<<<<<<<<<
39664  *         return None
39665  *     return <object>base
39666  */
39667   __pyx_t_1 = ((__pyx_v_base == NULL) != 0);
39668   if (__pyx_t_1) {
39669 
39670     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1028
39671  *     base = PyArray_BASE(arr)
39672  *     if base is NULL:
39673  *         return None             # <<<<<<<<<<<<<<
39674  *     return <object>base
39675  *
39676  */
39677     __Pyx_XDECREF(__pyx_r);
39678     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
39679     goto __pyx_L0;
39680 
39681     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1027
39682  * cdef inline object get_array_base(ndarray arr):
39683  *     base = PyArray_BASE(arr)
39684  *     if base is NULL:             # <<<<<<<<<<<<<<
39685  *         return None
39686  *     return <object>base
39687  */
39688   }
39689 
39690   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1029
39691  *     if base is NULL:
39692  *         return None
39693  *     return <object>base             # <<<<<<<<<<<<<<
39694  *
39695  * # Versions of the import_* functions which are more suitable for
39696  */
39697   __Pyx_XDECREF(__pyx_r);
39698   __Pyx_INCREF(((PyObject *)__pyx_v_base));
39699   __pyx_r = ((PyObject *)__pyx_v_base);
39700   goto __pyx_L0;
39701 
39702   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1025
39703  *     PyArray_SetBaseObject(arr, base)
39704  *
39705  * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
39706  *     base = PyArray_BASE(arr)
39707  *     if base is NULL:
39708  */
39709 
39710   /* function exit code */
39711   __pyx_L1_error:;
39712   __Pyx_AddTraceback("numpy.get_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
39713   __pyx_r = 0;
39714   __pyx_L0:;
39715   __Pyx_XGIVEREF(__pyx_r);
39716   __Pyx_TraceReturn(__pyx_r, 0);
39717   __Pyx_RefNannyFinishContext();
39718   return __pyx_r;
39719 }
39720 
39721 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033
39722  * # Versions of the import_* functions which are more suitable for
39723  * # Cython code.
39724  * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
39725  *     try:
39726  *         _import_array()
39727  */
39728 
39729 static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
39730   int __pyx_r;
39731   __Pyx_TraceDeclarations
39732   __Pyx_RefNannyDeclarations
39733   PyObject *__pyx_t_1 = NULL;
39734   PyObject *__pyx_t_2 = NULL;
39735   PyObject *__pyx_t_3 = NULL;
39736   int __pyx_t_4;
39737   PyObject *__pyx_t_5 = NULL;
39738   PyObject *__pyx_t_6 = NULL;
39739   PyObject *__pyx_t_7 = NULL;
39740   PyObject *__pyx_t_8 = NULL;
39741   int __pyx_lineno = 0;
39742   const char *__pyx_filename = NULL;
39743   int __pyx_clineno = 0;
39744   __Pyx_RefNannySetupContext("import_array", 0);
39745   __Pyx_TraceCall("import_array", __pyx_f[2], 1033, 0, __PYX_ERR(2, 1033, __pyx_L1_error));
39746 
39747   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034
39748  * # Cython code.
39749  * cdef inline int import_array() except -1:
39750  *     try:             # <<<<<<<<<<<<<<
39751  *         _import_array()
39752  *     except Exception:
39753  */
39754   {
39755     __Pyx_PyThreadState_declare
39756     __Pyx_PyThreadState_assign
39757     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
39758     __Pyx_XGOTREF(__pyx_t_1);
39759     __Pyx_XGOTREF(__pyx_t_2);
39760     __Pyx_XGOTREF(__pyx_t_3);
39761     /*try:*/ {
39762 
39763       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1035
39764  * cdef inline int import_array() except -1:
39765  *     try:
39766  *         _import_array()             # <<<<<<<<<<<<<<
39767  *     except Exception:
39768  *         raise ImportError("numpy.core.multiarray failed to import")
39769  */
39770       __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1035, __pyx_L3_error)
39771 
39772       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034
39773  * # Cython code.
39774  * cdef inline int import_array() except -1:
39775  *     try:             # <<<<<<<<<<<<<<
39776  *         _import_array()
39777  *     except Exception:
39778  */
39779     }
39780     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
39781     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
39782     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
39783     goto __pyx_L8_try_end;
39784     __pyx_L3_error:;
39785 
39786     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1036
39787  *     try:
39788  *         _import_array()
39789  *     except Exception:             # <<<<<<<<<<<<<<
39790  *         raise ImportError("numpy.core.multiarray failed to import")
39791  *
39792  */
39793     __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
39794     if (__pyx_t_4) {
39795       __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
39796       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1036, __pyx_L5_except_error)
39797       __Pyx_GOTREF(__pyx_t_5);
39798       __Pyx_GOTREF(__pyx_t_6);
39799       __Pyx_GOTREF(__pyx_t_7);
39800 
39801       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037
39802  *         _import_array()
39803  *     except Exception:
39804  *         raise ImportError("numpy.core.multiarray failed to import")             # <<<<<<<<<<<<<<
39805  *
39806  * cdef inline int import_umath() except -1:
39807  */
39808       __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1037, __pyx_L5_except_error)
39809       __Pyx_GOTREF(__pyx_t_8);
39810       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
39811       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
39812       __PYX_ERR(2, 1037, __pyx_L5_except_error)
39813     }
39814     goto __pyx_L5_except_error;
39815     __pyx_L5_except_error:;
39816 
39817     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034
39818  * # Cython code.
39819  * cdef inline int import_array() except -1:
39820  *     try:             # <<<<<<<<<<<<<<
39821  *         _import_array()
39822  *     except Exception:
39823  */
39824     __Pyx_XGIVEREF(__pyx_t_1);
39825     __Pyx_XGIVEREF(__pyx_t_2);
39826     __Pyx_XGIVEREF(__pyx_t_3);
39827     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
39828     goto __pyx_L1_error;
39829     __pyx_L8_try_end:;
39830   }
39831 
39832   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033
39833  * # Versions of the import_* functions which are more suitable for
39834  * # Cython code.
39835  * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
39836  *     try:
39837  *         _import_array()
39838  */
39839 
39840   /* function exit code */
39841   __pyx_r = 0;
39842   goto __pyx_L0;
39843   __pyx_L1_error:;
39844   __Pyx_XDECREF(__pyx_t_5);
39845   __Pyx_XDECREF(__pyx_t_6);
39846   __Pyx_XDECREF(__pyx_t_7);
39847   __Pyx_XDECREF(__pyx_t_8);
39848   __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
39849   __pyx_r = -1;
39850   __pyx_L0:;
39851   __Pyx_TraceReturn(Py_None, 0);
39852   __Pyx_RefNannyFinishContext();
39853   return __pyx_r;
39854 }
39855 
39856 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039
39857  *         raise ImportError("numpy.core.multiarray failed to import")
39858  *
39859  * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
39860  *     try:
39861  *         _import_umath()
39862  */
39863 
39864 static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
39865   int __pyx_r;
39866   __Pyx_TraceDeclarations
39867   __Pyx_RefNannyDeclarations
39868   PyObject *__pyx_t_1 = NULL;
39869   PyObject *__pyx_t_2 = NULL;
39870   PyObject *__pyx_t_3 = NULL;
39871   int __pyx_t_4;
39872   PyObject *__pyx_t_5 = NULL;
39873   PyObject *__pyx_t_6 = NULL;
39874   PyObject *__pyx_t_7 = NULL;
39875   PyObject *__pyx_t_8 = NULL;
39876   int __pyx_lineno = 0;
39877   const char *__pyx_filename = NULL;
39878   int __pyx_clineno = 0;
39879   __Pyx_RefNannySetupContext("import_umath", 0);
39880   __Pyx_TraceCall("import_umath", __pyx_f[2], 1039, 0, __PYX_ERR(2, 1039, __pyx_L1_error));
39881 
39882   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040
39883  *
39884  * cdef inline int import_umath() except -1:
39885  *     try:             # <<<<<<<<<<<<<<
39886  *         _import_umath()
39887  *     except Exception:
39888  */
39889   {
39890     __Pyx_PyThreadState_declare
39891     __Pyx_PyThreadState_assign
39892     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
39893     __Pyx_XGOTREF(__pyx_t_1);
39894     __Pyx_XGOTREF(__pyx_t_2);
39895     __Pyx_XGOTREF(__pyx_t_3);
39896     /*try:*/ {
39897 
39898       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1041
39899  * cdef inline int import_umath() except -1:
39900  *     try:
39901  *         _import_umath()             # <<<<<<<<<<<<<<
39902  *     except Exception:
39903  *         raise ImportError("numpy.core.umath failed to import")
39904  */
39905       __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1041, __pyx_L3_error)
39906 
39907       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040
39908  *
39909  * cdef inline int import_umath() except -1:
39910  *     try:             # <<<<<<<<<<<<<<
39911  *         _import_umath()
39912  *     except Exception:
39913  */
39914     }
39915     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
39916     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
39917     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
39918     goto __pyx_L8_try_end;
39919     __pyx_L3_error:;
39920 
39921     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1042
39922  *     try:
39923  *         _import_umath()
39924  *     except Exception:             # <<<<<<<<<<<<<<
39925  *         raise ImportError("numpy.core.umath failed to import")
39926  *
39927  */
39928     __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
39929     if (__pyx_t_4) {
39930       __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
39931       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1042, __pyx_L5_except_error)
39932       __Pyx_GOTREF(__pyx_t_5);
39933       __Pyx_GOTREF(__pyx_t_6);
39934       __Pyx_GOTREF(__pyx_t_7);
39935 
39936       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043
39937  *         _import_umath()
39938  *     except Exception:
39939  *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
39940  *
39941  * cdef inline int import_ufunc() except -1:
39942  */
39943       __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1043, __pyx_L5_except_error)
39944       __Pyx_GOTREF(__pyx_t_8);
39945       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
39946       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
39947       __PYX_ERR(2, 1043, __pyx_L5_except_error)
39948     }
39949     goto __pyx_L5_except_error;
39950     __pyx_L5_except_error:;
39951 
39952     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040
39953  *
39954  * cdef inline int import_umath() except -1:
39955  *     try:             # <<<<<<<<<<<<<<
39956  *         _import_umath()
39957  *     except Exception:
39958  */
39959     __Pyx_XGIVEREF(__pyx_t_1);
39960     __Pyx_XGIVEREF(__pyx_t_2);
39961     __Pyx_XGIVEREF(__pyx_t_3);
39962     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
39963     goto __pyx_L1_error;
39964     __pyx_L8_try_end:;
39965   }
39966 
39967   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039
39968  *         raise ImportError("numpy.core.multiarray failed to import")
39969  *
39970  * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
39971  *     try:
39972  *         _import_umath()
39973  */
39974 
39975   /* function exit code */
39976   __pyx_r = 0;
39977   goto __pyx_L0;
39978   __pyx_L1_error:;
39979   __Pyx_XDECREF(__pyx_t_5);
39980   __Pyx_XDECREF(__pyx_t_6);
39981   __Pyx_XDECREF(__pyx_t_7);
39982   __Pyx_XDECREF(__pyx_t_8);
39983   __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
39984   __pyx_r = -1;
39985   __pyx_L0:;
39986   __Pyx_TraceReturn(Py_None, 0);
39987   __Pyx_RefNannyFinishContext();
39988   return __pyx_r;
39989 }
39990 
39991 /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045
39992  *         raise ImportError("numpy.core.umath failed to import")
39993  *
39994  * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
39995  *     try:
39996  *         _import_umath()
39997  */
39998 
39999 static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
40000   int __pyx_r;
40001   __Pyx_TraceDeclarations
40002   __Pyx_RefNannyDeclarations
40003   PyObject *__pyx_t_1 = NULL;
40004   PyObject *__pyx_t_2 = NULL;
40005   PyObject *__pyx_t_3 = NULL;
40006   int __pyx_t_4;
40007   PyObject *__pyx_t_5 = NULL;
40008   PyObject *__pyx_t_6 = NULL;
40009   PyObject *__pyx_t_7 = NULL;
40010   PyObject *__pyx_t_8 = NULL;
40011   int __pyx_lineno = 0;
40012   const char *__pyx_filename = NULL;
40013   int __pyx_clineno = 0;
40014   __Pyx_RefNannySetupContext("import_ufunc", 0);
40015   __Pyx_TraceCall("import_ufunc", __pyx_f[2], 1045, 0, __PYX_ERR(2, 1045, __pyx_L1_error));
40016 
40017   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046
40018  *
40019  * cdef inline int import_ufunc() except -1:
40020  *     try:             # <<<<<<<<<<<<<<
40021  *         _import_umath()
40022  *     except Exception:
40023  */
40024   {
40025     __Pyx_PyThreadState_declare
40026     __Pyx_PyThreadState_assign
40027     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
40028     __Pyx_XGOTREF(__pyx_t_1);
40029     __Pyx_XGOTREF(__pyx_t_2);
40030     __Pyx_XGOTREF(__pyx_t_3);
40031     /*try:*/ {
40032 
40033       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1047
40034  * cdef inline int import_ufunc() except -1:
40035  *     try:
40036  *         _import_umath()             # <<<<<<<<<<<<<<
40037  *     except Exception:
40038  *         raise ImportError("numpy.core.umath failed to import")
40039  */
40040       __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1047, __pyx_L3_error)
40041 
40042       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046
40043  *
40044  * cdef inline int import_ufunc() except -1:
40045  *     try:             # <<<<<<<<<<<<<<
40046  *         _import_umath()
40047  *     except Exception:
40048  */
40049     }
40050     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
40051     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
40052     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
40053     goto __pyx_L8_try_end;
40054     __pyx_L3_error:;
40055 
40056     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1048
40057  *     try:
40058  *         _import_umath()
40059  *     except Exception:             # <<<<<<<<<<<<<<
40060  *         raise ImportError("numpy.core.umath failed to import")
40061  */
40062     __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
40063     if (__pyx_t_4) {
40064       __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
40065       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1048, __pyx_L5_except_error)
40066       __Pyx_GOTREF(__pyx_t_5);
40067       __Pyx_GOTREF(__pyx_t_6);
40068       __Pyx_GOTREF(__pyx_t_7);
40069 
40070       /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1049
40071  *         _import_umath()
40072  *     except Exception:
40073  *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
40074  */
40075       __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1049, __pyx_L5_except_error)
40076       __Pyx_GOTREF(__pyx_t_8);
40077       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
40078       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
40079       __PYX_ERR(2, 1049, __pyx_L5_except_error)
40080     }
40081     goto __pyx_L5_except_error;
40082     __pyx_L5_except_error:;
40083 
40084     /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046
40085  *
40086  * cdef inline int import_ufunc() except -1:
40087  *     try:             # <<<<<<<<<<<<<<
40088  *         _import_umath()
40089  *     except Exception:
40090  */
40091     __Pyx_XGIVEREF(__pyx_t_1);
40092     __Pyx_XGIVEREF(__pyx_t_2);
40093     __Pyx_XGIVEREF(__pyx_t_3);
40094     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
40095     goto __pyx_L1_error;
40096     __pyx_L8_try_end:;
40097   }
40098 
40099   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045
40100  *         raise ImportError("numpy.core.umath failed to import")
40101  *
40102  * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
40103  *     try:
40104  *         _import_umath()
40105  */
40106 
40107   /* function exit code */
40108   __pyx_r = 0;
40109   goto __pyx_L0;
40110   __pyx_L1_error:;
40111   __Pyx_XDECREF(__pyx_t_5);
40112   __Pyx_XDECREF(__pyx_t_6);
40113   __Pyx_XDECREF(__pyx_t_7);
40114   __Pyx_XDECREF(__pyx_t_8);
40115   __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
40116   __pyx_r = -1;
40117   __pyx_L0:;
40118   __Pyx_TraceReturn(Py_None, 0);
40119   __Pyx_RefNannyFinishContext();
40120   return __pyx_r;
40121 }
40122 static struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
40123 
40124 static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyTypeObject *t, PyObject *a, PyObject *k) {
40125   struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *p;
40126   PyObject *o;
40127   if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
40128     o = (*t->tp_alloc)(t, 0);
40129   } else {
40130     o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
40131   }
40132   if (unlikely(!o)) return 0;
40133   p = ((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)o);
40134   p->__pyx_vtab = __pyx_vtabptr_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
40135   p->vars = Py_None; Py_INCREF(Py_None);
40136   p->varSelCriteria = Py_None; Py_INCREF(Py_None);
40137   p->coinModel = ((struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *)Py_None); Py_INCREF(Py_None);
40138   p->cyLPModel = Py_None; Py_INCREF(Py_None);
40139   p->cbcModel = ((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)Py_None); Py_INCREF(Py_None);
40140   p->_Hessian = Py_None; Py_INCREF(Py_None);
40141   p->cyPivot = ((struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *)Py_None); Py_INCREF(Py_None);
40142   p->cyDualPivot = ((struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *)Py_None); Py_INCREF(Py_None);
40143   if (unlikely(__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_1__cinit__(o, a, k) < 0)) goto bad;
40144   return o;
40145   bad:
40146   Py_DECREF(o); o = 0;
40147   return NULL;
40148 }
40149 
40150 static void __pyx_tp_dealloc_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyObject *o) {
40151   struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *p = (struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)o;
40152   #if CYTHON_USE_TP_FINALIZE
40153   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
40154     if (PyObject_CallFinalizerFromDealloc(o)) return;
40155   }
40156   #endif
40157   PyObject_GC_UnTrack(o);
40158   {
40159     PyObject *etype, *eval, *etb;
40160     PyErr_Fetch(&etype, &eval, &etb);
40161     __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
40162     __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3__dealloc__(o);
40163     __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
40164     PyErr_Restore(etype, eval, etb);
40165   }
40166   Py_CLEAR(p->vars);
40167   Py_CLEAR(p->varSelCriteria);
40168   Py_CLEAR(p->coinModel);
40169   Py_CLEAR(p->cyLPModel);
40170   Py_CLEAR(p->cbcModel);
40171   Py_CLEAR(p->_Hessian);
40172   Py_CLEAR(p->cyPivot);
40173   Py_CLEAR(p->cyDualPivot);
40174   (*Py_TYPE(o)->tp_free)(o);
40175 }
40176 
40177 static int __pyx_tp_traverse_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyObject *o, visitproc v, void *a) {
40178   int e;
40179   struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *p = (struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)o;
40180   if (p->vars) {
40181     e = (*v)(p->vars, a); if (e) return e;
40182   }
40183   if (p->varSelCriteria) {
40184     e = (*v)(p->varSelCriteria, a); if (e) return e;
40185   }
40186   if (p->coinModel) {
40187     e = (*v)(((PyObject *)p->coinModel), a); if (e) return e;
40188   }
40189   if (p->cyLPModel) {
40190     e = (*v)(p->cyLPModel, a); if (e) return e;
40191   }
40192   if (p->cbcModel) {
40193     e = (*v)(((PyObject *)p->cbcModel), a); if (e) return e;
40194   }
40195   if (p->_Hessian) {
40196     e = (*v)(p->_Hessian, a); if (e) return e;
40197   }
40198   if (p->cyPivot) {
40199     e = (*v)(((PyObject *)p->cyPivot), a); if (e) return e;
40200   }
40201   if (p->cyDualPivot) {
40202     e = (*v)(((PyObject *)p->cyDualPivot), a); if (e) return e;
40203   }
40204   return 0;
40205 }
40206 
40207 static int __pyx_tp_clear_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyObject *o) {
40208   PyObject* tmp;
40209   struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *p = (struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)o;
40210   tmp = ((PyObject*)p->vars);
40211   p->vars = Py_None; Py_INCREF(Py_None);
40212   Py_XDECREF(tmp);
40213   tmp = ((PyObject*)p->varSelCriteria);
40214   p->varSelCriteria = Py_None; Py_INCREF(Py_None);
40215   Py_XDECREF(tmp);
40216   tmp = ((PyObject*)p->coinModel);
40217   p->coinModel = ((struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *)Py_None); Py_INCREF(Py_None);
40218   Py_XDECREF(tmp);
40219   tmp = ((PyObject*)p->cyLPModel);
40220   p->cyLPModel = Py_None; Py_INCREF(Py_None);
40221   Py_XDECREF(tmp);
40222   tmp = ((PyObject*)p->cbcModel);
40223   p->cbcModel = ((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)Py_None); Py_INCREF(Py_None);
40224   Py_XDECREF(tmp);
40225   tmp = ((PyObject*)p->_Hessian);
40226   p->_Hessian = Py_None; Py_INCREF(Py_None);
40227   Py_XDECREF(tmp);
40228   tmp = ((PyObject*)p->cyPivot);
40229   p->cyPivot = ((struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *)Py_None); Py_INCREF(Py_None);
40230   Py_XDECREF(tmp);
40231   tmp = ((PyObject*)p->cyDualPivot);
40232   p->cyDualPivot = ((struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *)Py_None); Py_INCREF(Py_None);
40233   Py_XDECREF(tmp);
40234   return 0;
40235 }
40236 
40237 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_basicVariables(PyObject *o, CYTHON_UNUSED void *x) {
40238   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables_1__get__(o);
40239 }
40240 
40241 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rhs(PyObject *o, CYTHON_UNUSED void *x) {
40242   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs_1__get__(o);
40243 }
40244 
40245 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_basisInverse(PyObject *o, CYTHON_UNUSED void *x) {
40246   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse_1__get__(o);
40247 }
40248 
40249 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_tableau(PyObject *o, CYTHON_UNUSED void *x) {
40250   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau_1__get__(o);
40251 }
40252 
40253 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objective(PyObject *o, CYTHON_UNUSED void *x) {
40254   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_3__get__(o);
40255 }
40256 
40257 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40258   if (v) {
40259     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_1__set__(o, v);
40260   }
40261   else {
40262     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40263     return -1;
40264   }
40265 }
40266 
40267 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveCoefficients(PyObject *o, CYTHON_UNUSED void *x) {
40268   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_3__get__(o);
40269 }
40270 
40271 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveCoefficients(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40272   if (v) {
40273     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_1__set__(o, v);
40274   }
40275   else {
40276     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40277     return -1;
40278   }
40279 }
40280 
40281 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_iteration(PyObject *o, CYTHON_UNUSED void *x) {
40282   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration_1__get__(o);
40283 }
40284 
40285 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nRows(PyObject *o, CYTHON_UNUSED void *x) {
40286   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows_1__get__(o);
40287 }
40288 
40289 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nConstraints(PyObject *o, CYTHON_UNUSED void *x) {
40290   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints_1__get__(o);
40291 }
40292 
40293 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nVariables(PyObject *o, CYTHON_UNUSED void *x) {
40294   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables_1__get__(o);
40295 }
40296 
40297 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nCols(PyObject *o, CYTHON_UNUSED void *x) {
40298   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols_1__get__(o);
40299 }
40300 
40301 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_coefMatrix(PyObject *o, CYTHON_UNUSED void *x) {
40302   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_1__get__(o);
40303 }
40304 
40305 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_coefMatrix(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40306   if (v) {
40307     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_3__set__(o, v);
40308   }
40309   else {
40310     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40311     return -1;
40312   }
40313 }
40314 
40315 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_matrix(PyObject *o, CYTHON_UNUSED void *x) {
40316   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_1__get__(o);
40317 }
40318 
40319 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_matrix(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40320   if (v) {
40321     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_3__set__(o, v);
40322   }
40323   else {
40324     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40325     return -1;
40326   }
40327 }
40328 
40329 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraints(PyObject *o, CYTHON_UNUSED void *x) {
40330   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints_1__get__(o);
40331 }
40332 
40333 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variableNames(PyObject *o, CYTHON_UNUSED void *x) {
40334   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames_1__get__(o);
40335 }
40336 
40337 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variables(PyObject *o, CYTHON_UNUSED void *x) {
40338   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables_1__get__(o);
40339 }
40340 
40341 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveValue(PyObject *o, CYTHON_UNUSED void *x) {
40342   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue_1__get__(o);
40343 }
40344 
40345 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalVariableSolution(PyObject *o, CYTHON_UNUSED void *x) {
40346   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution_1__get__(o);
40347 }
40348 
40349 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalVariableSolutionAll(PyObject *o, CYTHON_UNUSED void *x) {
40350   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll_1__get__(o);
40351 }
40352 
40353 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_solution(PyObject *o, CYTHON_UNUSED void *x) {
40354   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution_1__get__(o);
40355 }
40356 
40357 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_cost(PyObject *o, CYTHON_UNUSED void *x) {
40358   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost_1__get__(o);
40359 }
40360 
40361 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualVariableSolution(PyObject *o, CYTHON_UNUSED void *x) {
40362   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution_1__get__(o);
40363 }
40364 
40365 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalConstraintSolution(PyObject *o, CYTHON_UNUSED void *x) {
40366   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution_1__get__(o);
40367 }
40368 
40369 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualConstraintSolution(PyObject *o, CYTHON_UNUSED void *x) {
40370   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution_1__get__(o);
40371 }
40372 
40373 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_reducedCosts(PyObject *o, CYTHON_UNUSED void *x) {
40374   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_1__get__(o);
40375 }
40376 
40377 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_reducedCosts(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40378   if (v) {
40379     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_3__set__(o, v);
40380   }
40381   else {
40382     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40383     return -1;
40384   }
40385 }
40386 
40387 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveOffset(PyObject *o, CYTHON_UNUSED void *x) {
40388   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_1__get__(o);
40389 }
40390 
40391 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveOffset(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40392   if (v) {
40393     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_3__set__(o, v);
40394   }
40395   else {
40396     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40397     return -1;
40398   }
40399 }
40400 
40401 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesUpper(PyObject *o, CYTHON_UNUSED void *x) {
40402   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_1__get__(o);
40403 }
40404 
40405 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesUpper(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40406   if (v) {
40407     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_3__set__(o, v);
40408   }
40409   else {
40410     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40411     return -1;
40412   }
40413 }
40414 
40415 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesLower(PyObject *o, CYTHON_UNUSED void *x) {
40416   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_1__get__(o);
40417 }
40418 
40419 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesLower(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40420   if (v) {
40421     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_3__set__(o, v);
40422   }
40423   else {
40424     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40425     return -1;
40426   }
40427 }
40428 
40429 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsUpper(PyObject *o, CYTHON_UNUSED void *x) {
40430   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_1__get__(o);
40431 }
40432 
40433 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsUpper(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40434   if (v) {
40435     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_3__set__(o, v);
40436   }
40437   else {
40438     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40439     return -1;
40440   }
40441 }
40442 
40443 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsLower(PyObject *o, CYTHON_UNUSED void *x) {
40444   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_1__get__(o);
40445 }
40446 
40447 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsLower(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40448   if (v) {
40449     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_3__set__(o, v);
40450   }
40451   else {
40452     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40453     return -1;
40454   }
40455 }
40456 
40457 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_lower(PyObject *o, CYTHON_UNUSED void *x) {
40458   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower_1__get__(o);
40459 }
40460 
40461 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_upper(PyObject *o, CYTHON_UNUSED void *x) {
40462   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper_1__get__(o);
40463 }
40464 
40465 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variableScale(PyObject *o, CYTHON_UNUSED void *x) {
40466   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale_1__get__(o);
40467 }
40468 
40469 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintScale(PyObject *o, CYTHON_UNUSED void *x) {
40470   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale_1__get__(o);
40471 }
40472 
40473 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_integerInformation(PyObject *o, CYTHON_UNUSED void *x) {
40474   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation_1__get__(o);
40475 }
40476 
40477 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_status(PyObject *o, CYTHON_UNUSED void *x) {
40478   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status_1__get__(o);
40479 }
40480 
40481 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_freeOrSuperBasicVarInds(PyObject *o, CYTHON_UNUSED void *x) {
40482   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds_1__get__(o);
40483 }
40484 
40485 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_notBasicOrFixedOrFlaggedVarInds(PyObject *o, CYTHON_UNUSED void *x) {
40486   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds_1__get__(o);
40487 }
40488 
40489 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFree(PyObject *o, CYTHON_UNUSED void *x) {
40490   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree_1__get__(o);
40491 }
40492 
40493 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsBasic(PyObject *o, CYTHON_UNUSED void *x) {
40494   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic_1__get__(o);
40495 }
40496 
40497 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsAtUpperBound(PyObject *o, CYTHON_UNUSED void *x) {
40498   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound_1__get__(o);
40499 }
40500 
40501 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsAtLowerBound(PyObject *o, CYTHON_UNUSED void *x) {
40502   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound_1__get__(o);
40503 }
40504 
40505 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsSuperBasic(PyObject *o, CYTHON_UNUSED void *x) {
40506   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic_1__get__(o);
40507 }
40508 
40509 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFixed(PyObject *o, CYTHON_UNUSED void *x) {
40510   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed_1__get__(o);
40511 }
40512 
40513 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFlagged(PyObject *o, CYTHON_UNUSED void *x) {
40514   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged_1__get__(o);
40515 }
40516 
40517 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFree(PyObject *o, CYTHON_UNUSED void *x) {
40518   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree_1__get__(o);
40519 }
40520 
40521 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotBasic(PyObject *o, CYTHON_UNUSED void *x) {
40522   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic_1__get__(o);
40523 }
40524 
40525 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotAtUpperBound(PyObject *o, CYTHON_UNUSED void *x) {
40526   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound_1__get__(o);
40527 }
40528 
40529 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotAtLowerBound(PyObject *o, CYTHON_UNUSED void *x) {
40530   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound_1__get__(o);
40531 }
40532 
40533 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotSuperBasic(PyObject *o, CYTHON_UNUSED void *x) {
40534   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic_1__get__(o);
40535 }
40536 
40537 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFixed(PyObject *o, CYTHON_UNUSED void *x) {
40538   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed_1__get__(o);
40539 }
40540 
40541 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFlagged(PyObject *o, CYTHON_UNUSED void *x) {
40542   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged_1__get__(o);
40543 }
40544 
40545 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_Hessian(PyObject *o, CYTHON_UNUSED void *x) {
40546   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_1__get__(o);
40547 }
40548 
40549 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_Hessian(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40550   if (v) {
40551     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_3__set__(o, v);
40552   }
40553   else {
40554     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40555     return -1;
40556   }
40557 }
40558 
40559 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualTolerance(PyObject *o, CYTHON_UNUSED void *x) {
40560   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_1__get__(o);
40561 }
40562 
40563 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualTolerance(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40564   if (v) {
40565     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_3__set__(o, v);
40566   }
40567   else {
40568     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40569     return -1;
40570   }
40571 }
40572 
40573 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalTolerance(PyObject *o, CYTHON_UNUSED void *x) {
40574   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_1__get__(o);
40575 }
40576 
40577 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalTolerance(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40578   if (v) {
40579     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_3__set__(o, v);
40580   }
40581   else {
40582     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40583     return -1;
40584   }
40585 }
40586 
40587 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_maxNumIteration(PyObject *o, CYTHON_UNUSED void *x) {
40588   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_1__get__(o);
40589 }
40590 
40591 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_maxNumIteration(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40592   if (v) {
40593     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_3__set__(o, v);
40594   }
40595   else {
40596     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40597     return -1;
40598   }
40599 }
40600 
40601 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_logLevel(PyObject *o, CYTHON_UNUSED void *x) {
40602   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_1__get__(o);
40603 }
40604 
40605 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_logLevel(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40606   if (v) {
40607     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_3__set__(o, v);
40608   }
40609   else {
40610     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40611     return -1;
40612   }
40613 }
40614 
40615 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_automaticScaling(PyObject *o, CYTHON_UNUSED void *x) {
40616   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_1__get__(o);
40617 }
40618 
40619 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_automaticScaling(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40620   if (v) {
40621     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_3__set__(o, v);
40622   }
40623   else {
40624     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40625     return -1;
40626   }
40627 }
40628 
40629 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_scaling(PyObject *o, CYTHON_UNUSED void *x) {
40630   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_1__get__(o);
40631 }
40632 
40633 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_scaling(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40634   if (v) {
40635     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_3__set__(o, v);
40636   }
40637   else {
40638     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40639     return -1;
40640   }
40641 }
40642 
40643 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_infeasibilityCost(PyObject *o, CYTHON_UNUSED void *x) {
40644   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_1__get__(o);
40645 }
40646 
40647 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_infeasibilityCost(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40648   if (v) {
40649     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_3__set__(o, v);
40650   }
40651   else {
40652     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40653     return -1;
40654   }
40655 }
40656 
40657 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_numberPrimalInfeasibilities(PyObject *o, CYTHON_UNUSED void *x) {
40658   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities_1__get__(o);
40659 }
40660 
40661 static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_optimizationDirection(PyObject *o, CYTHON_UNUSED void *x) {
40662   return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_1__get__(o);
40663 }
40664 
40665 static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_optimizationDirection(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
40666   if (v) {
40667     return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_3__set__(o, v);
40668   }
40669   else {
40670     PyErr_SetString(PyExc_NotImplementedError, "__del__");
40671     return -1;
40672   }
40673 }
40674 
40675 static PyMethodDef __pyx_methods_4cylp_2cy_12CyClpSimplex_CyClpSimplex[] = {
40676   {"getReducedCosts", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts},
40677   {"getStatusArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray},
40678   {"getRightHandSide", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9getRightHandSide, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8getRightHandSide},
40679   {"getStatusCode", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11getStatusCode, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10getStatusCode},
40680   {"getStatusString", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13getStatusString, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12getStatusString},
40681   {"setColumnLower", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15setColumnLower, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14setColumnLower},
40682   {"setColumnUpper", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17setColumnUpper, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16setColumnUpper},
40683   {"setRowLower", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_19setRowLower, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18setRowLower},
40684   {"setRowUpper", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21setRowUpper, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20setRowUpper},
40685   {"useCustomPrimal", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23useCustomPrimal, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22useCustomPrimal},
40686   {"getUseCustomPrimal", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25getUseCustomPrimal, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24getUseCustomPrimal},
40687   {"flagged", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27flagged, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_26flagged},
40688   {"setFlagged", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_29setFlagged, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged},
40689   {"largestDualError", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31largestDualError, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError},
40690   {"pivotRow", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_33pivotRow, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_32pivotRow},
40691   {"setPivotRow", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_35setPivotRow, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_34setPivotRow},
40692   {"sequenceIn", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_37sequenceIn, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_36sequenceIn},
40693   {"setSequenceIn", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_39setSequenceIn, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_38setSequenceIn},
40694   {"getVariableNames", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_41getVariableNames, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_40getVariableNames},
40695   {"setVariableName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_42setVariableName},
40696   {"setConstraintName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_44setConstraintName},
40697   {"getPivotVariable", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_46getPivotVariable},
40698   {"CLP_getVarStatus", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_48CLP_getVarStatus},
40699   {"CLP_setVarStatus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_51CLP_setVarStatus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_50CLP_setVarStatus},
40700   {"setVariableStatus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_53setVariableStatus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_52setVariableStatus},
40701   {"getVariableStatus", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_55getVariableStatus, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus},
40702   {"setConstraintStatus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_57setConstraintStatus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_56setConstraintStatus},
40703   {"getConstraintStatus", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_59getConstraintStatus, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus},
40704   {"setColumnUpperArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_61setColumnUpperArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_60setColumnUpperArray},
40705   {"setColumnUpperFirstElements", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_63setColumnUpperFirstElements, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_62setColumnUpperFirstElements},
40706   {"setColumnLowerArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_65setColumnLowerArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_64setColumnLowerArray},
40707   {"setColumnLowerFirstElements", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_67setColumnLowerFirstElements, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_66setColumnLowerFirstElements},
40708   {"setColumnLowerSubset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_69setColumnLowerSubset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_68setColumnLowerSubset},
40709   {"setColumnUpperSubset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_71setColumnUpperSubset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_70setColumnUpperSubset},
40710   {"setRowUpperArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_73setRowUpperArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray},
40711   {"setRowLowerArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_75setRowLowerArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray},
40712   {"setObjectiveArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_77setObjectiveArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray},
40713   {"CLP_dualConstraintSolution", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_79CLP_dualConstraintSolution, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution},
40714   {"initialSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_81initialSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_80initialSolve},
40715   {"initialPrimalSolve", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_83initialPrimalSolve, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_82initialPrimalSolve},
40716   {"initialDualSolve", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_85initialDualSolve, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_84initialDualSolve},
40717   {"addConstraint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_89addConstraint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_88addConstraint},
40718   {"removeConstraint", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_91removeConstraint, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint},
40719   {"addVariable", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_93addVariable, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_92addVariable},
40720   {"removeVariable", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_95removeVariable, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable},
40721   {"getVarByName", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_97getVarByName, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName},
40722   {"getVarNameByIndex", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_99getVarNameByIndex, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex},
40723   {"CLP_addConstraint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_101CLP_addConstraint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_100CLP_addConstraint},
40724   {"CLP_deleteConstraints", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_103CLP_deleteConstraints, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_102CLP_deleteConstraints},
40725   {"CLP_deleteVariables", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_105CLP_deleteVariables, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_104CLP_deleteVariables},
40726   {"CLP_addVariable", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_107CLP_addVariable, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_106CLP_addVariable},
40727   {"addVariables", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_109addVariables, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_108addVariables},
40728   {"addConstraints", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_111addConstraints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_110addConstraints},
40729   {"readMps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_112readMps},
40730   {"extractCyLPModel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_115extractCyLPModel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_114extractCyLPModel},
40731   {"_extractStartFinish", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_117_extractStartFinish, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_116_extractStartFinish},
40732   {"primal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_119primal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_118primal},
40733   {"dual", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_121dual, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_120dual},
40734   {"setPerturbation", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_123setPerturbation, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation},
40735   {"resize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_125resize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_124resize},
40736   {"getBInvACol", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_127getBInvACol, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_126getBInvACol},
40737   {"getBInvCol", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_129getBInvCol, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_128getBInvCol},
40738   {"transposeTimes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_131transposeTimes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_130transposeTimes},
40739   {"transposeTimesSubset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_133transposeTimesSubset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_132transposeTimesSubset},
40740   {"transposeTimesSubsetAll", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_135transposeTimesSubsetAll, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_134transposeTimesSubsetAll},
40741   {"isInteger", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_137isInteger, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_136isInteger},
40742   {"setInteger", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_139setInteger, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_138setInteger},
40743   {"copyInIntegerInformation", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_141copyInIntegerInformation, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_140copyInIntegerInformation},
40744   {"replaceMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_143replaceMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_142replaceMatrix},
40745   {"loadQuadraticObjective", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_145loadQuadraticObjective, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_144loadQuadraticObjective},
40746   {"preSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_147preSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_146preSolve},
40747   {"postSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_149postSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve},
40748   {"dualWithPresolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_151dualWithPresolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_150dualWithPresolve},
40749   {"primalWithPresolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_153primalWithPresolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_152primalWithPresolve},
40750   {"writeMps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_155writeMps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_154writeMps},
40751   {"writeLp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_157writeLp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_156writeLp},
40752   {"readLp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_159readLp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_158readLp},
40753   {"updateColumnFT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_161updateColumnFT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_160updateColumnFT},
40754   {"updateColumnTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_163updateColumnTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_162updateColumnTranspose},
40755   {"loadFromCyLPModel", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_165loadFromCyLPModel, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_164loadFromCyLPModel},
40756   {"evaluateAt", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_167evaluateAt, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt},
40757   {"gradientAt", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_169gradientAt, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt},
40758   {"getCbcModel", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_171getCbcModel, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_170getCbcModel},
40759   {"isPivotAcceptable", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_173isPivotAcceptable, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable},
40760   {"checkVar", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_175checkVar, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar},
40761   {"setPrimalColumnPivotAlgorithmToWolfe", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_177setPrimalColumnPivotAlgorithmToWolfe, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_176setPrimalColumnPivotAlgorithmToWolfe},
40762   {"setPrimalColumnPivotAlgorithmToPE", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_179setPrimalColumnPivotAlgorithmToPE, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_178setPrimalColumnPivotAlgorithmToPE},
40763   {"setPivotMethod", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_181setPivotMethod, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_180setPivotMethod},
40764   {"setDualPivotMethod", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_183setDualPivotMethod, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_182setDualPivotMethod},
40765   {"filterVars", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars},
40766   {"setObjectiveCoefficient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_187setObjectiveCoefficient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_186setObjectiveCoefficient},
40767   {"partialPricing", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_189partialPricing, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_188partialPricing},
40768   {"setComplementarityList", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_191setComplementarityList, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList},
40769   {"getACol", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_192getACol},
40770   {"vectorTimesB_1", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_194vectorTimesB_1},
40771   {"argWeightedMax", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_197argWeightedMax, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_196argWeightedMax},
40772   {"getComplementarityList", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList},
40773   {"setComplement", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_201setComplement, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_200setComplement},
40774   {"loadProblemFromCyCoinModel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_203loadProblemFromCyCoinModel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_202loadProblemFromCyCoinModel},
40775   {"loadProblem", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_205loadProblem, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_204loadProblem},
40776   {"getCoinInfinity", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_207getCoinInfinity, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity},
40777   {"setBasisStatus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_209setBasisStatus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_208setBasisStatus},
40778   {"getBasisStatus", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_211getBasisStatus, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus},
40779   {"__reduce_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_213__reduce_cython__, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__},
40780   {"__setstate_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_215__setstate_cython__, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_214__setstate_cython__},
40781   {0, 0, 0, 0}
40782 };
40783 
40784 static struct PyGetSetDef __pyx_getsets_4cylp_2cy_12CyClpSimplex_CyClpSimplex[] = {
40785   {(char *)"basicVariables", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_basicVariables, 0, (char *)0, 0},
40786   {(char *)"rhs", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rhs, 0, (char *)0, 0},
40787   {(char *)"basisInverse", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_basisInverse, 0, (char *)0, 0},
40788   {(char *)"tableau", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_tableau, 0, (char *)0, 0},
40789   {(char *)"objective", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objective, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objective, (char *)"\n        Set the objective function using this property.\n        See the :ref:`modeling example <modeling-usage>`.\n        ", 0},
40790   {(char *)"objectiveCoefficients", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveCoefficients, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveCoefficients, (char *)"\n        An alternative to self.objective, with a more meaningful name\n        in a more general context. Sets and gets a numpy array.\n        ", 0},
40791   {(char *)"iteration", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_iteration, 0, (char *)"\n        Number of iterations.\n        ", 0},
40792   {(char *)"nRows", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nRows, 0, (char *)"\n        Number of rows, constraints.\n        ", 0},
40793   {(char *)"nConstraints", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nConstraints, 0, (char *)"\n        Number of constraints, rows.\n        ", 0},
40794   {(char *)"nVariables", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nVariables, 0, (char *)"\n        Number of variables, columns.\n        ", 0},
40795   {(char *)"nCols", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nCols, 0, (char *)"\n        Number of columns, variables.\n        ", 0},
40796   {(char *)"coefMatrix", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_coefMatrix, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_coefMatrix, (char *)"\n        The coefficient matrix. A scipy sparse matrix.\n        ", 0},
40797   {(char *)"matrix", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_matrix, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_matrix, (char *)"\n        The coefficient matrix. A CyCoinPackedMatrix.\n        ", 0},
40798   {(char *)"constraints", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraints, 0, (char *)"\n        Constraints.\n        ", 0},
40799   {(char *)"variableNames", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variableNames, 0, (char *)"\n        variable names\n        ", 0},
40800   {(char *)"variables", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variables, 0, (char *)"\n        Variables.\n        ", 0},
40801   {(char *)"objectiveValue", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveValue, 0, (char *)"\n        The objective value. Readonly.\n        ", 0},
40802   {(char *)"primalVariableSolution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalVariableSolution, 0, (char *)"\n        Solution to the primal variables.\n\n        :rtype: Numpy array\n        ", 0},
40803   {(char *)"primalVariableSolutionAll", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalVariableSolutionAll, 0, (char *)"\n        Solution to the primal variables. Including the slacks.\n\n        :rtype: Numpy array\n        ", 0},
40804   {(char *)"solution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_solution, 0, (char *)"\n        Return the current point.\n\n        :rtype: Numpy array\n        ", 0},
40805   {(char *)"cost", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_cost, 0, (char *)"\n        Return the cost vector.\n\n        :rtype: Numpy array\n        ", 0},
40806   {(char *)"dualVariableSolution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualVariableSolution, 0, (char *)"\n        Variables' reduced costs\n\n        :rtype: Numpy array\n        ", 0},
40807   {(char *)"primalConstraintSolution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalConstraintSolution, 0, (char *)"\n        Slack variables' solution\n\n        :rtype: Numpy array\n        ", 0},
40808   {(char *)"dualConstraintSolution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualConstraintSolution, 0, (char *)"\n        Dual variables' solution\n\n        :rtype: Numpy array\n        ", 0},
40809   {(char *)"reducedCosts", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_reducedCosts, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_reducedCosts, (char *)"\n        The reduced costs. A Numpy array.\n\n        :rtype: Numpy array\n        ", 0},
40810   {(char *)"objectiveOffset", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveOffset, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveOffset, (char *)"\n        The constant value in the objective function. A float.\n        ", 0},
40811   {(char *)"variablesUpper", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesUpper, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesUpper, (char *)"\n        Variables upper bounds\n\n        :rtype: Numpy array\n        ", 0},
40812   {(char *)"variablesLower", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesLower, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesLower, (char *)"\n        Variables lower bounds\n\n        :rtype: Numpy array\n        ", 0},
40813   {(char *)"constraintsUpper", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsUpper, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsUpper, (char *)"\n        Constraints upper bounds\n\n        :rtype: Numpy array\n        ", 0},
40814   {(char *)"constraintsLower", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsLower, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsLower, (char *)"\n        Constraints lower bounds\n\n        :rtype: Numpy array\n        ", 0},
40815   {(char *)"lower", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_lower, 0, (char *)"\n        lower bounds (CLP's lower_)\n\n        :rtype: Numpy array\n        ", 0},
40816   {(char *)"upper", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_upper, 0, (char *)"\n        upper bounds (CLP's upper_)\n\n        :rtype: Numpy array\n        ", 0},
40817   {(char *)"variableScale", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variableScale, 0, (char *)"\n        Array of variables' scale factors\n\n        :rtype: Numpy array\n        ", 0},
40818   {(char *)"constraintScale", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintScale, 0, (char *)"\n        Array of constraints' scale factors\n\n        :rtype: Numpy array\n        ", 0},
40819   {(char *)"integerInformation", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_integerInformation, 0, (char *)"\n        A binary list of size *nVariables* that specifies whether\n        a variable is integer or not. (ClpModel::integerInformation())\n\n        :rtype: Numpy array\n        ", 0},
40820   {(char *)"status", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_status, 0, (char *)"\n        A Numpy array of all the variables' status\n        ", 0},
40821   {(char *)"freeOrSuperBasicVarInds", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_freeOrSuperBasicVarInds, 0, (char *)"\n        The index set of variables that are *free* or *superbasic*.\n        ", 0},
40822   {(char *)"notBasicOrFixedOrFlaggedVarInds", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_notBasicOrFixedOrFlaggedVarInds, 0, (char *)"\n        The index set of variables that are not *basic* or *fixed*.\n        ", 0},
40823   {(char *)"varIsFree", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFree, 0, (char *)"\n        The index set of variables that are *free*.\n        ", 0},
40824   {(char *)"varIsBasic", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsBasic, 0, (char *)"\n        The index set of variables that are *basic*.\n        ", 0},
40825   {(char *)"varIsAtUpperBound", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsAtUpperBound, 0, (char *)"\n        The index set of variables that are at their upper bound.\n        ", 0},
40826   {(char *)"varIsAtLowerBound", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsAtLowerBound, 0, (char *)"\n        The index set of variables that are at their lower bound.\n        ", 0},
40827   {(char *)"varIsSuperBasic", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsSuperBasic, 0, (char *)"\n        The index set of variables that are *superbasic*.\n        ", 0},
40828   {(char *)"varIsFixed", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFixed, 0, (char *)"\n        The index set of variables that are *fixed*.\n        ", 0},
40829   {(char *)"varIsFlagged", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFlagged, 0, (char *)"\n        The index set of variables that are *flagged*.\n        ", 0},
40830   {(char *)"varNotFree", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFree, 0, (char *)"\n        The index set of variables that are NOT *free*.\n        ", 0},
40831   {(char *)"varNotBasic", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotBasic, 0, (char *)"\n        The index set of variables that are NOT *basic*.\n        ", 0},
40832   {(char *)"varNotAtUpperBound", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotAtUpperBound, 0, (char *)"\n        The index set of variables that are NOT at their upper bound.\n        ", 0},
40833   {(char *)"varNotAtLowerBound", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotAtLowerBound, 0, (char *)"\n        The index set of variables that are NOT at their lower bound.\n        ", 0},
40834   {(char *)"varNotSuperBasic", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotSuperBasic, 0, (char *)"\n        The index set of variables that are NOT *superbasic*.\n        ", 0},
40835   {(char *)"varNotFixed", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFixed, 0, (char *)"\n        The index set of variables that are NOT *fixed*.\n        ", 0},
40836   {(char *)"varNotFlagged", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFlagged, 0, (char *)"\n        The index set of variables that are NOT flagged.\n        ", 0},
40837   {(char *)"Hessian", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_Hessian, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_Hessian, (char *)0, 0},
40838   {(char *)"dualTolerance", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualTolerance, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualTolerance, (char *)0, 0},
40839   {(char *)"primalTolerance", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalTolerance, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalTolerance, (char *)0, 0},
40840   {(char *)"maxNumIteration", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_maxNumIteration, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_maxNumIteration, (char *)0, 0},
40841   {(char *)"logLevel", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_logLevel, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_logLevel, (char *)0, 0},
40842   {(char *)"automaticScaling", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_automaticScaling, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_automaticScaling, (char *)0, 0},
40843   {(char *)"scaling", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_scaling, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_scaling, (char *)0, 0},
40844   {(char *)"infeasibilityCost", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_infeasibilityCost, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_infeasibilityCost, (char *)0, 0},
40845   {(char *)"numberPrimalInfeasibilities", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_numberPrimalInfeasibilities, 0, (char *)0, 0},
40846   {(char *)"optimizationDirection", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_optimizationDirection, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_optimizationDirection, (char *)0, 0},
40847   {0, 0, 0, 0, 0}
40848 };
40849 
40850 static PyNumberMethods __pyx_tp_as_number_CyClpSimplex = {
40851   0, /*nb_add*/
40852   0, /*nb_subtract*/
40853   0, /*nb_multiply*/
40854   #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
40855   0, /*nb_divide*/
40856   #endif
40857   0, /*nb_remainder*/
40858   0, /*nb_divmod*/
40859   0, /*nb_power*/
40860   0, /*nb_negative*/
40861   0, /*nb_positive*/
40862   0, /*nb_absolute*/
40863   0, /*nb_nonzero*/
40864   0, /*nb_invert*/
40865   0, /*nb_lshift*/
40866   0, /*nb_rshift*/
40867   0, /*nb_and*/
40868   0, /*nb_xor*/
40869   0, /*nb_or*/
40870   #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
40871   0, /*nb_coerce*/
40872   #endif
40873   0, /*nb_int*/
40874   #if PY_MAJOR_VERSION < 3
40875   0, /*nb_long*/
40876   #else
40877   0, /*reserved*/
40878   #endif
40879   0, /*nb_float*/
40880   #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
40881   0, /*nb_oct*/
40882   #endif
40883   #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
40884   0, /*nb_hex*/
40885   #endif
40886   __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_87__iadd__, /*nb_inplace_add*/
40887   0, /*nb_inplace_subtract*/
40888   0, /*nb_inplace_multiply*/
40889   #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
40890   0, /*nb_inplace_divide*/
40891   #endif
40892   0, /*nb_inplace_remainder*/
40893   0, /*nb_inplace_power*/
40894   0, /*nb_inplace_lshift*/
40895   0, /*nb_inplace_rshift*/
40896   0, /*nb_inplace_and*/
40897   0, /*nb_inplace_xor*/
40898   0, /*nb_inplace_or*/
40899   0, /*nb_floor_divide*/
40900   0, /*nb_true_divide*/
40901   0, /*nb_inplace_floor_divide*/
40902   0, /*nb_inplace_true_divide*/
40903   0, /*nb_index*/
40904   #if PY_VERSION_HEX >= 0x03050000
40905   0, /*nb_matrix_multiply*/
40906   #endif
40907   #if PY_VERSION_HEX >= 0x03050000
40908   0, /*nb_inplace_matrix_multiply*/
40909   #endif
40910 };
40911 
40912 static PyTypeObject __pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex = {
40913   PyVarObject_HEAD_INIT(0, 0)
40914   "cylp.cy.CyClpSimplex.CyClpSimplex", /*tp_name*/
40915   sizeof(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex), /*tp_basicsize*/
40916   0, /*tp_itemsize*/
40917   __pyx_tp_dealloc_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_dealloc*/
40918   #if PY_VERSION_HEX < 0x030800b4
40919   0, /*tp_print*/
40920   #endif
40921   #if PY_VERSION_HEX >= 0x030800b4
40922   0, /*tp_vectorcall_offset*/
40923   #endif
40924   0, /*tp_getattr*/
40925   0, /*tp_setattr*/
40926   #if PY_MAJOR_VERSION < 3
40927   0, /*tp_compare*/
40928   #endif
40929   #if PY_MAJOR_VERSION >= 3
40930   0, /*tp_as_async*/
40931   #endif
40932   0, /*tp_repr*/
40933   &__pyx_tp_as_number_CyClpSimplex, /*tp_as_number*/
40934   0, /*tp_as_sequence*/
40935   0, /*tp_as_mapping*/
40936   0, /*tp_hash*/
40937   0, /*tp_call*/
40938   0, /*tp_str*/
40939   0, /*tp_getattro*/
40940   0, /*tp_setattro*/
40941   0, /*tp_as_buffer*/
40942   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
40943   "\n    CyClpSimplex is a Cython interface to CLP.\n    Not all methods are available but they are being added gradually.\n\n    Its constructor can create an empty object if no argument is provided.\n    However, if a :class:`CyLPModel <cylp.py.modeling.CyLPModel>` object is\n    given then the resulting ``CyClpSimplex`` object will be build from it.\n    For an example of the latter case see\n    :mod:`cylp's modeling tool. <cylp.py.modeling.CyLPModel>`\n\n    .. _simple-run:\n\n    **An easy example of how to read and solve an LP**\n\n    >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n    >>> s = CyClpSimplex()\n    >>> f = getMpsExample()\n    >>> s.readMps(f)\n    0\n    >>> s.initialSolve()\n    'optimal'\n\n    ", /*tp_doc*/
40944   __pyx_tp_traverse_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_traverse*/
40945   __pyx_tp_clear_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_clear*/
40946   0, /*tp_richcompare*/
40947   0, /*tp_weaklistoffset*/
40948   0, /*tp_iter*/
40949   0, /*tp_iternext*/
40950   __pyx_methods_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_methods*/
40951   0, /*tp_members*/
40952   __pyx_getsets_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_getset*/
40953   0, /*tp_base*/
40954   0, /*tp_dict*/
40955   0, /*tp_descr_get*/
40956   0, /*tp_descr_set*/
40957   0, /*tp_dictoffset*/
40958   0, /*tp_init*/
40959   0, /*tp_alloc*/
40960   __pyx_tp_new_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_new*/
40961   0, /*tp_free*/
40962   0, /*tp_is_gc*/
40963   0, /*tp_bases*/
40964   0, /*tp_mro*/
40965   0, /*tp_cache*/
40966   0, /*tp_subclasses*/
40967   0, /*tp_weaklist*/
40968   0, /*tp_del*/
40969   0, /*tp_version_tag*/
40970   #if PY_VERSION_HEX >= 0x030400a1
40971   0, /*tp_finalize*/
40972   #endif
40973   #if PY_VERSION_HEX >= 0x030800b1
40974   0, /*tp_vectorcall*/
40975   #endif
40976   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
40977   0, /*tp_print*/
40978   #endif
40979 };
40980 
40981 static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_VarStatus(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
40982   PyObject *o;
40983   if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
40984     o = (*t->tp_alloc)(t, 0);
40985   } else {
40986     o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
40987   }
40988   if (unlikely(!o)) return 0;
40989   return o;
40990 }
40991 
40992 static void __pyx_tp_dealloc_4cylp_2cy_12CyClpSimplex_VarStatus(PyObject *o) {
40993   #if CYTHON_USE_TP_FINALIZE
40994   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
40995     if (PyObject_CallFinalizerFromDealloc(o)) return;
40996   }
40997   #endif
40998   (*Py_TYPE(o)->tp_free)(o);
40999 }
41000 
41001 static PyMethodDef __pyx_methods_4cylp_2cy_12CyClpSimplex_VarStatus[] = {
41002   {"__reduce_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_1__reduce_cython__, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__},
41003   {"__setstate_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_3__setstate_cython__, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_9VarStatus_2__setstate_cython__},
41004   {0, 0, 0, 0}
41005 };
41006 
41007 static PyTypeObject __pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus = {
41008   PyVarObject_HEAD_INIT(0, 0)
41009   "cylp.cy.CyClpSimplex.VarStatus", /*tp_name*/
41010   sizeof(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus), /*tp_basicsize*/
41011   0, /*tp_itemsize*/
41012   __pyx_tp_dealloc_4cylp_2cy_12CyClpSimplex_VarStatus, /*tp_dealloc*/
41013   #if PY_VERSION_HEX < 0x030800b4
41014   0, /*tp_print*/
41015   #endif
41016   #if PY_VERSION_HEX >= 0x030800b4
41017   0, /*tp_vectorcall_offset*/
41018   #endif
41019   0, /*tp_getattr*/
41020   0, /*tp_setattr*/
41021   #if PY_MAJOR_VERSION < 3
41022   0, /*tp_compare*/
41023   #endif
41024   #if PY_MAJOR_VERSION >= 3
41025   0, /*tp_as_async*/
41026   #endif
41027   0, /*tp_repr*/
41028   0, /*tp_as_number*/
41029   0, /*tp_as_sequence*/
41030   0, /*tp_as_mapping*/
41031   0, /*tp_hash*/
41032   0, /*tp_call*/
41033   0, /*tp_str*/
41034   0, /*tp_getattro*/
41035   0, /*tp_setattro*/
41036   0, /*tp_as_buffer*/
41037   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
41038   0, /*tp_doc*/
41039   0, /*tp_traverse*/
41040   0, /*tp_clear*/
41041   0, /*tp_richcompare*/
41042   0, /*tp_weaklistoffset*/
41043   0, /*tp_iter*/
41044   0, /*tp_iternext*/
41045   __pyx_methods_4cylp_2cy_12CyClpSimplex_VarStatus, /*tp_methods*/
41046   0, /*tp_members*/
41047   0, /*tp_getset*/
41048   0, /*tp_base*/
41049   0, /*tp_dict*/
41050   0, /*tp_descr_get*/
41051   0, /*tp_descr_set*/
41052   0, /*tp_dictoffset*/
41053   0, /*tp_init*/
41054   0, /*tp_alloc*/
41055   __pyx_tp_new_4cylp_2cy_12CyClpSimplex_VarStatus, /*tp_new*/
41056   0, /*tp_free*/
41057   0, /*tp_is_gc*/
41058   0, /*tp_bases*/
41059   0, /*tp_mro*/
41060   0, /*tp_cache*/
41061   0, /*tp_subclasses*/
41062   0, /*tp_weaklist*/
41063   0, /*tp_del*/
41064   0, /*tp_version_tag*/
41065   #if PY_VERSION_HEX >= 0x030400a1
41066   0, /*tp_finalize*/
41067   #endif
41068   #if PY_VERSION_HEX >= 0x030800b1
41069   0, /*tp_vectorcall*/
41070   #endif
41071   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
41072   0, /*tp_print*/
41073   #endif
41074 };
41075 
41076 static PyMethodDef __pyx_methods[] = {
41077   {"cydot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_3cydot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_2cydot},
41078   {0, 0, 0, 0}
41079 };
41080 
41081 #if PY_MAJOR_VERSION >= 3
41082 #if CYTHON_PEP489_MULTI_PHASE_INIT
41083 static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
41084 static int __pyx_pymod_exec_CyClpSimplex(PyObject* module); /*proto*/
41085 static PyModuleDef_Slot __pyx_moduledef_slots[] = {
41086   {Py_mod_create, (void*)__pyx_pymod_create},
41087   {Py_mod_exec, (void*)__pyx_pymod_exec_CyClpSimplex},
41088   {0, NULL}
41089 };
41090 #endif
41091 
41092 static struct PyModuleDef __pyx_moduledef = {
41093     PyModuleDef_HEAD_INIT,
41094     "CyClpSimplex",
41095     0, /* m_doc */
41096   #if CYTHON_PEP489_MULTI_PHASE_INIT
41097     0, /* m_size */
41098   #else
41099     -1, /* m_size */
41100   #endif
41101     __pyx_methods /* m_methods */,
41102   #if CYTHON_PEP489_MULTI_PHASE_INIT
41103     __pyx_moduledef_slots, /* m_slots */
41104   #else
41105     NULL, /* m_reload */
41106   #endif
41107     NULL, /* m_traverse */
41108     NULL, /* m_clear */
41109     NULL /* m_free */
41110 };
41111 #endif
41112 #ifndef CYTHON_SMALL_CODE
41113 #if defined(__clang__)
41114     #define CYTHON_SMALL_CODE
41115 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
41116     #define CYTHON_SMALL_CODE __attribute__((cold))
41117 #else
41118     #define CYTHON_SMALL_CODE
41119 #endif
41120 #endif
41121 
41122 static __Pyx_StringTabEntry __pyx_string_tab[] = {
41123   {&__pyx_n_s_A, __pyx_k_A, sizeof(__pyx_k_A), 0, 0, 1, 1},
41124   {&__pyx_n_s_B, __pyx_k_B, sizeof(__pyx_k_B), 0, 0, 1, 1},
41125   {&__pyx_n_s_CLP_deleteConstraints, __pyx_k_CLP_deleteConstraints, sizeof(__pyx_k_CLP_deleteConstraints), 0, 0, 1, 1},
41126   {&__pyx_n_s_CLP_getVarStatus, __pyx_k_CLP_getVarStatus, sizeof(__pyx_k_CLP_getVarStatus), 0, 0, 1, 1},
41127   {&__pyx_n_s_CLP_setVarStatus, __pyx_k_CLP_setVarStatus, sizeof(__pyx_k_CLP_setVarStatus), 0, 0, 1, 1},
41128   {&__pyx_n_s_CLP_variableStatusEnum, __pyx_k_CLP_variableStatusEnum, sizeof(__pyx_k_CLP_variableStatusEnum), 0, 0, 1, 1},
41129   {&__pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_p, __pyx_k_CyClpPrimalColumnPivotBase_pyx_p, sizeof(__pyx_k_CyClpPrimalColumnPivotBase_pyx_p), 0, 0, 1, 0},
41130   {&__pyx_n_s_CyClpSimplex, __pyx_k_CyClpSimplex, sizeof(__pyx_k_CyClpSimplex), 0, 0, 1, 1},
41131   {&__pyx_kp_u_CyClpSimplex_dual_line_1577, __pyx_k_CyClpSimplex_dual_line_1577, sizeof(__pyx_k_CyClpSimplex_dual_line_1577), 0, 1, 0, 0},
41132   {&__pyx_kp_u_CyClpSimplex_initialDualSolve_li, __pyx_k_CyClpSimplex_initialDualSolve_li, sizeof(__pyx_k_CyClpSimplex_initialDualSolve_li), 0, 1, 0, 0},
41133   {&__pyx_kp_u_CyClpSimplex_initialPrimalSolve, __pyx_k_CyClpSimplex_initialPrimalSolve, sizeof(__pyx_k_CyClpSimplex_initialPrimalSolve), 0, 1, 0, 0},
41134   {&__pyx_kp_u_CyClpSimplex_initialSolve_line_1, __pyx_k_CyClpSimplex_initialSolve_line_1, sizeof(__pyx_k_CyClpSimplex_initialSolve_line_1), 0, 1, 0, 0},
41135   {&__pyx_kp_u_CyClpSimplex_loadFromCyLPModel_l, __pyx_k_CyClpSimplex_loadFromCyLPModel_l, sizeof(__pyx_k_CyClpSimplex_loadFromCyLPModel_l), 0, 1, 0, 0},
41136   {&__pyx_kp_s_CyClpSimplex_pyx_addColumn_Row_i, __pyx_k_CyClpSimplex_pyx_addColumn_Row_i, sizeof(__pyx_k_CyClpSimplex_pyx_addColumn_Row_i), 0, 0, 1, 0},
41137   {&__pyx_kp_s_CyClpSimplex_pyx_addConstraint_C, __pyx_k_CyClpSimplex_pyx_addConstraint_C, sizeof(__pyx_k_CyClpSimplex_pyx_addConstraint_C), 0, 0, 1, 0},
41138   {&__pyx_kp_s_CyClpSimplex_pyx_deleteConstrain, __pyx_k_CyClpSimplex_pyx_deleteConstrain, sizeof(__pyx_k_CyClpSimplex_pyx_deleteConstrain), 0, 0, 1, 0},
41139   {&__pyx_kp_s_CyClpSimplex_pyx_deleteVariables, __pyx_k_CyClpSimplex_pyx_deleteVariables, sizeof(__pyx_k_CyClpSimplex_pyx_deleteVariables), 0, 0, 1, 0},
41140   {&__pyx_kp_u_CyClpSimplex_setConstraintStatus, __pyx_k_CyClpSimplex_setConstraintStatus, sizeof(__pyx_k_CyClpSimplex_setConstraintStatus), 0, 1, 0, 0},
41141   {&__pyx_kp_u_CyClpSimplex_setInteger_line_167, __pyx_k_CyClpSimplex_setInteger_line_167, sizeof(__pyx_k_CyClpSimplex_setInteger_line_167), 0, 1, 0, 0},
41142   {&__pyx_kp_u_CyClpSimplex_setVariableStatus_l, __pyx_k_CyClpSimplex_setVariableStatus_l, sizeof(__pyx_k_CyClpSimplex_setVariableStatus_l), 0, 1, 0, 0},
41143   {&__pyx_n_s_CyLPArray, __pyx_k_CyLPArray, sizeof(__pyx_k_CyLPArray), 0, 0, 1, 1},
41144   {&__pyx_n_s_CyLPModel, __pyx_k_CyLPModel, sizeof(__pyx_k_CyLPModel), 0, 0, 1, 1},
41145   {&__pyx_n_s_CyLPSolution, __pyx_k_CyLPSolution, sizeof(__pyx_k_CyLPSolution), 0, 0, 1, 1},
41146   {&__pyx_n_s_CyLPVar, __pyx_k_CyLPVar, sizeof(__pyx_k_CyLPVar), 0, 0, 1, 1},
41147   {&__pyx_n_s_D, __pyx_k_D, sizeof(__pyx_k_D), 0, 0, 1, 1},
41148   {&__pyx_n_s_DualPivotPythonBase, __pyx_k_DualPivotPythonBase, sizeof(__pyx_k_DualPivotPythonBase), 0, 0, 1, 1},
41149   {&__pyx_kp_s_Expected_a_CyLPModel_as_an_argum, __pyx_k_Expected_a_CyLPModel_as_an_argum, sizeof(__pyx_k_Expected_a_CyLPModel_as_an_argum), 0, 0, 1, 0},
41150   {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0},
41151   {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0},
41152   {&__pyx_n_s_Hessian, __pyx_k_Hessian, sizeof(__pyx_k_Hessian), 0, 0, 1, 1},
41153   {&__pyx_kp_s_Hessian_can_be_set_to_a_matrix_t, __pyx_k_Hessian_can_be_set_to_a_matrix_t, sizeof(__pyx_k_Hessian_can_be_set_to_a_matrix_t), 0, 0, 1, 0},
41154   {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
41155   {&__pyx_kp_s_Incompatible_checksums_s_vs_0xd4, __pyx_k_Incompatible_checksums_s_vs_0xd4, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xd4), 0, 0, 1, 0},
41156   {&__pyx_n_s_IntToStatus, __pyx_k_IntToStatus, sizeof(__pyx_k_IntToStatus), 0, 0, 1, 1},
41157   {&__pyx_kp_s_No_CyClpSimplex_cyLPModel, __pyx_k_No_CyClpSimplex_cyLPModel, sizeof(__pyx_k_No_CyClpSimplex_cyLPModel), 0, 0, 1, 0},
41158   {&__pyx_kp_s_No_cylpSimplex_cyLPModel_is_set, __pyx_k_No_cylpSimplex_cyLPModel_is_set, sizeof(__pyx_k_No_cylpSimplex_cyLPModel_is_set), 0, 0, 1, 0},
41159   {&__pyx_kp_s_No_such_constraint_s, __pyx_k_No_such_constraint_s, sizeof(__pyx_k_No_such_constraint_s), 0, 0, 1, 0},
41160   {&__pyx_kp_s_No_such_variable_s, __pyx_k_No_such_variable_s, sizeof(__pyx_k_No_such_variable_s), 0, 0, 1, 0},
41161   {&__pyx_kp_s_No_write_access_for_s_or_an_inte, __pyx_k_No_write_access_for_s_or_an_inte, sizeof(__pyx_k_No_write_access_for_s_or_an_inte), 0, 0, 1, 0},
41162   {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0},
41163   {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
41164   {&__pyx_n_s_PivotPythonBase, __pyx_k_PivotPythonBase, sizeof(__pyx_k_PivotPythonBase), 0, 0, 1, 1},
41165   {&__pyx_kp_s_Presolve_says_problem_infeasible, __pyx_k_Presolve_says_problem_infeasible, sizeof(__pyx_k_Presolve_says_problem_infeasible), 0, 0, 1, 0},
41166   {&__pyx_kp_u_Run_CLP_s_initalPrimalSolve_The, __pyx_k_Run_CLP_s_initalPrimalSolve_The, sizeof(__pyx_k_Run_CLP_s_initalPrimalSolve_The), 0, 1, 0, 0},
41167   {&__pyx_kp_u_Run_CLP_s_initalPrimalSolve_The_2, __pyx_k_Run_CLP_s_initalPrimalSolve_The_2, sizeof(__pyx_k_Run_CLP_s_initalPrimalSolve_The_2), 0, 1, 0, 0},
41168   {&__pyx_kp_u_Run_CLP_s_initialSolve_It_does, __pyx_k_Run_CLP_s_initialSolve_It_does, sizeof(__pyx_k_Run_CLP_s_initialSolve_It_does), 0, 1, 0, 0},
41169   {&__pyx_kp_u_Runs_CLP_dual_simplex_Usage_Exa, __pyx_k_Runs_CLP_dual_simplex_Usage_Exa, sizeof(__pyx_k_Runs_CLP_dual_simplex_Usage_Exa), 0, 1, 0, 0},
41170   {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
41171   {&__pyx_kp_u_Set_the_coefficient_matrix_cons, __pyx_k_Set_the_coefficient_matrix_cons, sizeof(__pyx_k_Set_the_coefficient_matrix_cons), 0, 1, 0, 0},
41172   {&__pyx_kp_u_Set_the_status_of_a_constraint, __pyx_k_Set_the_status_of_a_constraint, sizeof(__pyx_k_Set_the_status_of_a_constraint), 0, 1, 0, 0},
41173   {&__pyx_kp_u_Set_the_status_of_a_variable_ar, __pyx_k_Set_the_status_of_a_variable_ar, sizeof(__pyx_k_Set_the_status_of_a_variable_ar), 0, 1, 0, 0},
41174   {&__pyx_n_s_StatusToInt, __pyx_k_StatusToInt, sizeof(__pyx_k_StatusToInt), 0, 0, 1, 1},
41175   {&__pyx_kp_s_The_argument_of_getVarStatus_can, __pyx_k_The_argument_of_getVarStatus_can, sizeof(__pyx_k_The_argument_of_getVarStatus_can), 0, 0, 1, 0},
41176   {&__pyx_kp_s_The_argument_of_setInteger_can_b, __pyx_k_The_argument_of_setInteger_can_b, sizeof(__pyx_k_The_argument_of_setInteger_can_b), 0, 0, 1, 0},
41177   {&__pyx_kp_s_The_argument_of_setVarStatus_can, __pyx_k_The_argument_of_setVarStatus_can, sizeof(__pyx_k_The_argument_of_setVarStatus_can), 0, 0, 1, 0},
41178   {&__pyx_kp_s_To_add_a_constraint_you_must_set, __pyx_k_To_add_a_constraint_you_must_set, sizeof(__pyx_k_To_add_a_constraint_you_must_set), 0, 0, 1, 0},
41179   {&__pyx_kp_s_To_remove_a_constraint_you_must, __pyx_k_To_remove_a_constraint_you_must, sizeof(__pyx_k_To_remove_a_constraint_you_must), 0, 0, 1, 0},
41180   {&__pyx_kp_s_To_remove_a_variable_you_must_se, __pyx_k_To_remove_a_variable_you_must_se, sizeof(__pyx_k_To_remove_a_variable_you_must_se), 0, 0, 1, 0},
41181   {&__pyx_kp_s_To_set_the_objective_function_of, __pyx_k_To_set_the_objective_function_of, sizeof(__pyx_k_To_set_the_objective_function_of), 0, 0, 1, 0},
41182   {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
41183   {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
41184   {&__pyx_n_s_VarStatus, __pyx_k_VarStatus, sizeof(__pyx_k_VarStatus), 0, 0, 1, 1},
41185   {&__pyx_kp_s_Variables_should_have_the_same_d, __pyx_k_Variables_should_have_the_same_d, sizeof(__pyx_k_Variables_should_have_the_same_d), 0, 0, 1, 0},
41186   {&__pyx_kp_s__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 0, 1, 0},
41187   {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1},
41188   {&__pyx_n_s_addConstraint, __pyx_k_addConstraint, sizeof(__pyx_k_addConstraint), 0, 0, 1, 1},
41189   {&__pyx_n_s_addConstraints, __pyx_k_addConstraints, sizeof(__pyx_k_addConstraints), 0, 0, 1, 1},
41190   {&__pyx_n_s_addMpsNames, __pyx_k_addMpsNames, sizeof(__pyx_k_addMpsNames), 0, 0, 1, 1},
41191   {&__pyx_n_s_addVariable, __pyx_k_addVariable, sizeof(__pyx_k_addVariable), 0, 0, 1, 1},
41192   {&__pyx_n_s_any, __pyx_k_any, sizeof(__pyx_k_any), 0, 0, 1, 1},
41193   {&__pyx_n_s_appendCol, __pyx_k_appendCol, sizeof(__pyx_k_appendCol), 0, 0, 1, 1},
41194   {&__pyx_n_s_appendRow, __pyx_k_appendRow, sizeof(__pyx_k_appendRow), 0, 0, 1, 1},
41195   {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1},
41196   {&__pyx_n_s_arr, __pyx_k_arr, sizeof(__pyx_k_arr), 0, 0, 1, 1},
41197   {&__pyx_n_s_arr_ind, __pyx_k_arr_ind, sizeof(__pyx_k_arr_ind), 0, 0, 1, 1},
41198   {&__pyx_n_s_array, __pyx_k_array, sizeof(__pyx_k_array), 0, 0, 1, 1},
41199   {&__pyx_n_s_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 0, 1, 1},
41200   {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1},
41201   {&__pyx_n_s_atLowerBound, __pyx_k_atLowerBound, sizeof(__pyx_k_atLowerBound), 0, 0, 1, 1},
41202   {&__pyx_n_s_atUpperBound, __pyx_k_atUpperBound, sizeof(__pyx_k_atUpperBound), 0, 0, 1, 1},
41203   {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1},
41204   {&__pyx_n_s_basic, __pyx_k_basic, sizeof(__pyx_k_basic), 0, 0, 1, 1},
41205   {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1},
41206   {&__pyx_n_s_checkVar, __pyx_k_checkVar, sizeof(__pyx_k_checkVar), 0, 0, 1, 1},
41207   {&__pyx_n_s_cl, __pyx_k_cl, sizeof(__pyx_k_cl), 0, 0, 1, 1},
41208   {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
41209   {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
41210   {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
41211   {&__pyx_kp_s_coefMatrix_must_be_a_scipy_spars, __pyx_k_coefMatrix_must_be_a_scipy_spars, sizeof(__pyx_k_coefMatrix_must_be_a_scipy_spars), 0, 0, 1, 0},
41212   {&__pyx_n_s_col, __pyx_k_col, sizeof(__pyx_k_col), 0, 0, 1, 1},
41213   {&__pyx_n_s_colArray, __pyx_k_colArray, sizeof(__pyx_k_colArray), 0, 0, 1, 1},
41214   {&__pyx_n_s_collb, __pyx_k_collb, sizeof(__pyx_k_collb), 0, 0, 1, 1},
41215   {&__pyx_n_s_colub, __pyx_k_colub, sizeof(__pyx_k_colub), 0, 0, 1, 1},
41216   {&__pyx_n_s_columnLower, __pyx_k_columnLower, sizeof(__pyx_k_columnLower), 0, 0, 1, 1},
41217   {&__pyx_n_s_columnStarts, __pyx_k_columnStarts, sizeof(__pyx_k_columnStarts), 0, 0, 1, 1},
41218   {&__pyx_n_s_columnUpper, __pyx_k_columnUpper, sizeof(__pyx_k_columnUpper), 0, 0, 1, 1},
41219   {&__pyx_n_s_columns, __pyx_k_columns, sizeof(__pyx_k_columns), 0, 0, 1, 1},
41220   {&__pyx_n_s_cons, __pyx_k_cons, sizeof(__pyx_k_cons), 0, 0, 1, 1},
41221   {&__pyx_n_s_constInd, __pyx_k_constInd, sizeof(__pyx_k_constInd), 0, 0, 1, 1},
41222   {&__pyx_n_s_constIndex, __pyx_k_constIndex, sizeof(__pyx_k_constIndex), 0, 0, 1, 1},
41223   {&__pyx_n_s_constraints, __pyx_k_constraints, sizeof(__pyx_k_constraints), 0, 0, 1, 1},
41224   {&__pyx_n_s_constraintsLower, __pyx_k_constraintsLower, sizeof(__pyx_k_constraintsLower), 0, 0, 1, 1},
41225   {&__pyx_n_s_constraintsUpper, __pyx_k_constraintsUpper, sizeof(__pyx_k_constraintsUpper), 0, 0, 1, 1},
41226   {&__pyx_n_s_coo_matrix, __pyx_k_coo_matrix, sizeof(__pyx_k_coo_matrix), 0, 0, 1, 1},
41227   {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
41228   {&__pyx_n_s_csc_matrixPlus, __pyx_k_csc_matrixPlus, sizeof(__pyx_k_csc_matrixPlus), 0, 0, 1, 1},
41229   {&__pyx_n_s_cstat, __pyx_k_cstat, sizeof(__pyx_k_cstat), 0, 0, 1, 1},
41230   {&__pyx_n_s_curpath, __pyx_k_curpath, sizeof(__pyx_k_curpath), 0, 0, 1, 1},
41231   {&__pyx_n_s_currentframe, __pyx_k_currentframe, sizeof(__pyx_k_currentframe), 0, 0, 1, 1},
41232   {&__pyx_n_s_cyLPModel, __pyx_k_cyLPModel, sizeof(__pyx_k_cyLPModel), 0, 0, 1, 1},
41233   {&__pyx_n_s_cylp_cy, __pyx_k_cylp_cy, sizeof(__pyx_k_cylp_cy), 0, 0, 1, 1},
41234   {&__pyx_n_s_cylp_cy_CyClpSimplex, __pyx_k_cylp_cy_CyClpSimplex, sizeof(__pyx_k_cylp_cy_CyClpSimplex), 0, 0, 1, 1},
41235   {&__pyx_kp_s_cylp_cy_CyClpSimplex_pyx, __pyx_k_cylp_cy_CyClpSimplex_pyx, sizeof(__pyx_k_cylp_cy_CyClpSimplex_pyx), 0, 0, 1, 0},
41236   {&__pyx_n_s_cylp_py_modeling_CyLPModel, __pyx_k_cylp_py_modeling_CyLPModel, sizeof(__pyx_k_cylp_py_modeling_CyLPModel), 0, 0, 1, 1},
41237   {&__pyx_n_s_cylp_py_pivots_DualPivotPythonBa, __pyx_k_cylp_py_pivots_DualPivotPythonBa, sizeof(__pyx_k_cylp_py_pivots_DualPivotPythonBa), 0, 0, 1, 1},
41238   {&__pyx_n_s_cylp_py_pivots_PivotPythonBase, __pyx_k_cylp_py_pivots_PivotPythonBase, sizeof(__pyx_k_cylp_py_pivots_PivotPythonBase), 0, 0, 1, 1},
41239   {&__pyx_n_s_cylp_py_utils_sparseUtil, __pyx_k_cylp_py_utils_sparseUtil, sizeof(__pyx_k_cylp_py_utils_sparseUtil), 0, 0, 1, 1},
41240   {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
41241   {&__pyx_n_s_decimals, __pyx_k_decimals, sizeof(__pyx_k_decimals), 0, 0, 1, 1},
41242   {&__pyx_n_s_deleteCurrent, __pyx_k_deleteCurrent, sizeof(__pyx_k_deleteCurrent), 0, 0, 1, 1},
41243   {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
41244   {&__pyx_n_s_dim, __pyx_k_dim, sizeof(__pyx_k_dim), 0, 0, 1, 1},
41245   {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1},
41246   {&__pyx_n_s_dirname, __pyx_k_dirname, sizeof(__pyx_k_dirname), 0, 0, 1, 1},
41247   {&__pyx_n_s_doRowObjective, __pyx_k_doRowObjective, sizeof(__pyx_k_doRowObjective), 0, 0, 1, 1},
41248   {&__pyx_n_s_dot, __pyx_k_dot, sizeof(__pyx_k_dot), 0, 0, 1, 1},
41249   {&__pyx_n_s_double, __pyx_k_double, sizeof(__pyx_k_double), 0, 0, 1, 1},
41250   {&__pyx_n_s_dropNames, __pyx_k_dropNames, sizeof(__pyx_k_dropNames), 0, 0, 1, 1},
41251   {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1},
41252   {&__pyx_kp_s_dualPivotMethodObject_should_be, __pyx_k_dualPivotMethodObject_should_be, sizeof(__pyx_k_dualPivotMethodObject_should_be), 0, 0, 1, 0},
41253   {&__pyx_n_s_dualWithPresolve, __pyx_k_dualWithPresolve, sizeof(__pyx_k_dualWithPresolve), 0, 0, 1, 1},
41254   {&__pyx_kp_s_dual_infeasible, __pyx_k_dual_infeasible, sizeof(__pyx_k_dual_infeasible), 0, 0, 1, 0},
41255   {&__pyx_n_s_elementIndex, __pyx_k_elementIndex, sizeof(__pyx_k_elementIndex), 0, 0, 1, 1},
41256   {&__pyx_n_s_elementValue, __pyx_k_elementValue, sizeof(__pyx_k_elementValue), 0, 0, 1, 1},
41257   {&__pyx_n_s_elements, __pyx_k_elements, sizeof(__pyx_k_elements), 0, 0, 1, 1},
41258   {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1},
41259   {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
41260   {&__pyx_n_s_end, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1},
41261   {&__pyx_n_s_epsilon, __pyx_k_epsilon, sizeof(__pyx_k_epsilon), 0, 0, 1, 1},
41262   {&__pyx_n_s_extension, __pyx_k_extension, sizeof(__pyx_k_extension), 0, 0, 1, 1},
41263   {&__pyx_n_s_extractStartFinish, __pyx_k_extractStartFinish, sizeof(__pyx_k_extractStartFinish), 0, 0, 1, 1},
41264   {&__pyx_n_s_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1},
41265   {&__pyx_n_s_feasibilityTolerance, __pyx_k_feasibilityTolerance, sizeof(__pyx_k_feasibilityTolerance), 0, 0, 1, 1},
41266   {&__pyx_n_s_fileName, __pyx_k_fileName, sizeof(__pyx_k_fileName), 0, 0, 1, 1},
41267   {&__pyx_n_s_filename, __pyx_k_filename, sizeof(__pyx_k_filename), 0, 0, 1, 1},
41268   {&__pyx_n_s_filterVars, __pyx_k_filterVars, sizeof(__pyx_k_filterVars), 0, 0, 1, 1},
41269   {&__pyx_n_s_fixed, __pyx_k_fixed, sizeof(__pyx_k_fixed), 0, 0, 1, 1},
41270   {&__pyx_n_s_formatType, __pyx_k_formatType, sizeof(__pyx_k_formatType), 0, 0, 1, 1},
41271   {&__pyx_n_s_free, __pyx_k_free, sizeof(__pyx_k_free), 0, 0, 1, 1},
41272   {&__pyx_n_s_fromInd, __pyx_k_fromInd, sizeof(__pyx_k_fromInd), 0, 0, 1, 1},
41273   {&__pyx_n_s_getACol, __pyx_k_getACol, sizeof(__pyx_k_getACol), 0, 0, 1, 1},
41274   {&__pyx_n_s_getBInvACol, __pyx_k_getBInvACol, sizeof(__pyx_k_getBInvACol), 0, 0, 1, 1},
41275   {&__pyx_n_s_getBInvCol, __pyx_k_getBInvCol, sizeof(__pyx_k_getBInvCol), 0, 0, 1, 1},
41276   {&__pyx_n_s_getComplementarityList, __pyx_k_getComplementarityList, sizeof(__pyx_k_getComplementarityList), 0, 0, 1, 1},
41277   {&__pyx_n_s_getModelExample, __pyx_k_getModelExample, sizeof(__pyx_k_getModelExample), 0, 0, 1, 1},
41278   {&__pyx_n_s_getMpsExample, __pyx_k_getMpsExample, sizeof(__pyx_k_getMpsExample), 0, 0, 1, 1},
41279   {&__pyx_n_s_getPivotVariable, __pyx_k_getPivotVariable, sizeof(__pyx_k_getPivotVariable), 0, 0, 1, 1},
41280   {&__pyx_n_s_getReducedCosts, __pyx_k_getReducedCosts, sizeof(__pyx_k_getReducedCosts), 0, 0, 1, 1},
41281   {&__pyx_n_s_getRightHandSide, __pyx_k_getRightHandSide, sizeof(__pyx_k_getRightHandSide), 0, 0, 1, 1},
41282   {&__pyx_n_s_getStatusArray, __pyx_k_getStatusArray, sizeof(__pyx_k_getStatusArray), 0, 0, 1, 1},
41283   {&__pyx_n_s_getStatusCode, __pyx_k_getStatusCode, sizeof(__pyx_k_getStatusCode), 0, 0, 1, 1},
41284   {&__pyx_n_s_getVarByName, __pyx_k_getVarByName, sizeof(__pyx_k_getVarByName), 0, 0, 1, 1},
41285   {&__pyx_n_s_getVariableNames, __pyx_k_getVariableNames, sizeof(__pyx_k_getVariableNames), 0, 0, 1, 1},
41286   {&__pyx_n_s_getfile, __pyx_k_getfile, sizeof(__pyx_k_getfile), 0, 0, 1, 1},
41287   {&__pyx_n_s_getitem, __pyx_k_getitem, sizeof(__pyx_k_getitem), 0, 0, 1, 1},
41288   {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
41289   {&__pyx_n_s_h, __pyx_k_h, sizeof(__pyx_k_h), 0, 0, 1, 1},
41290   {&__pyx_n_s_hasConst, __pyx_k_hasConst, sizeof(__pyx_k_hasConst), 0, 0, 1, 1},
41291   {&__pyx_n_s_hasGaps, __pyx_k_hasGaps, sizeof(__pyx_k_hasGaps), 0, 0, 1, 1},
41292   {&__pyx_n_s_hasVar, __pyx_k_hasVar, sizeof(__pyx_k_hasVar), 0, 0, 1, 1},
41293   {&__pyx_n_s_ifValuesPass, __pyx_k_ifValuesPass, sizeof(__pyx_k_ifValuesPass), 0, 0, 1, 1},
41294   {&__pyx_kp_u_if_arg_is_an_integer_mark_varia, __pyx_k_if_arg_is_an_integer_mark_varia, sizeof(__pyx_k_if_arg_is_an_integer_mark_varia), 0, 1, 0, 0},
41295   {&__pyx_n_s_ignore, __pyx_k_ignore, sizeof(__pyx_k_ignore), 0, 0, 1, 1},
41296   {&__pyx_n_s_ignoreErrors, __pyx_k_ignoreErrors, sizeof(__pyx_k_ignoreErrors), 0, 0, 1, 1},
41297   {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
41298   {&__pyx_n_s_ind, __pyx_k_ind, sizeof(__pyx_k_ind), 0, 0, 1, 1},
41299   {&__pyx_n_s_indices, __pyx_k_indices, sizeof(__pyx_k_indices), 0, 0, 1, 1},
41300   {&__pyx_n_s_indicesOfIndices, __pyx_k_indicesOfIndices, sizeof(__pyx_k_indicesOfIndices), 0, 0, 1, 1},
41301   {&__pyx_n_s_indptr, __pyx_k_indptr, sizeof(__pyx_k_indptr), 0, 0, 1, 1},
41302   {&__pyx_n_s_inds, __pyx_k_inds, sizeof(__pyx_k_inds), 0, 0, 1, 1},
41303   {&__pyx_kp_s_input_p0033_mps, __pyx_k_input_p0033_mps, sizeof(__pyx_k_input_p0033_mps), 0, 0, 1, 0},
41304   {&__pyx_n_s_inspect, __pyx_k_inspect, sizeof(__pyx_k_inspect), 0, 0, 1, 1},
41305   {&__pyx_n_s_int32, __pyx_k_int32, sizeof(__pyx_k_int32), 0, 0, 1, 1},
41306   {&__pyx_n_s_isInt, __pyx_k_isInt, sizeof(__pyx_k_isInt), 0, 0, 1, 1},
41307   {&__pyx_n_s_isPivotAcceptable, __pyx_k_isPivotAcceptable, sizeof(__pyx_k_isPivotAcceptable), 0, 0, 1, 1},
41308   {&__pyx_n_s_isRange, __pyx_k_isRange, sizeof(__pyx_k_isRange), 0, 0, 1, 1},
41309   {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1},
41310   {&__pyx_n_s_izip, __pyx_k_izip, sizeof(__pyx_k_izip), 0, 0, 1, 1},
41311   {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1},
41312   {&__pyx_n_s_keepIntegers, __pyx_k_keepIntegers, sizeof(__pyx_k_keepIntegers), 0, 0, 1, 1},
41313   {&__pyx_n_s_keepNames, __pyx_k_keepNames, sizeof(__pyx_k_keepNames), 0, 0, 1, 1},
41314   {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1},
41315   {&__pyx_n_s_loadFromCyLPModel, __pyx_k_loadFromCyLPModel, sizeof(__pyx_k_loadFromCyLPModel), 0, 0, 1, 1},
41316   {&__pyx_n_s_loadQuadraticObjective, __pyx_k_loadQuadraticObjective, sizeof(__pyx_k_loadQuadraticObjective), 0, 0, 1, 1},
41317   {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1},
41318   {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
41319   {&__pyx_n_s_majorDim, __pyx_k_majorDim, sizeof(__pyx_k_majorDim), 0, 0, 1, 1},
41320   {&__pyx_n_s_makeMatrices, __pyx_k_makeMatrices, sizeof(__pyx_k_makeMatrices), 0, 0, 1, 1},
41321   {&__pyx_n_s_matrix, __pyx_k_matrix, sizeof(__pyx_k_matrix), 0, 0, 1, 1},
41322   {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1},
41323   {&__pyx_n_s_min, __pyx_k_min, sizeof(__pyx_k_min), 0, 0, 1, 1},
41324   {&__pyx_n_s_minorDim, __pyx_k_minorDim, sizeof(__pyx_k_minorDim), 0, 0, 1, 1},
41325   {&__pyx_n_s_model, __pyx_k_model, sizeof(__pyx_k_model), 0, 0, 1, 1},
41326   {&__pyx_n_s_modelObject, __pyx_k_modelObject, sizeof(__pyx_k_modelObject), 0, 0, 1, 1},
41327   {&__pyx_kp_b_mps, __pyx_k_mps, sizeof(__pyx_k_mps), 0, 0, 0, 0},
41328   {&__pyx_n_s_mpsNames, __pyx_k_mpsNames, sizeof(__pyx_k_mpsNames), 0, 0, 1, 1},
41329   {&__pyx_n_s_nCons, __pyx_k_nCons, sizeof(__pyx_k_nCons), 0, 0, 1, 1},
41330   {&__pyx_n_s_nConstraints, __pyx_k_nConstraints, sizeof(__pyx_k_nConstraints), 0, 0, 1, 1},
41331   {&__pyx_n_s_nRows, __pyx_k_nRows, sizeof(__pyx_k_nRows), 0, 0, 1, 1},
41332   {&__pyx_n_s_nVariables, __pyx_k_nVariables, sizeof(__pyx_k_nVariables), 0, 0, 1, 1},
41333   {&__pyx_n_s_nVars, __pyx_k_nVars, sizeof(__pyx_k_nVars), 0, 0, 1, 1},
41334   {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
41335   {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
41336   {&__pyx_n_s_ncol, __pyx_k_ncol, sizeof(__pyx_k_ncol), 0, 0, 1, 1},
41337   {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0},
41338   {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0},
41339   {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
41340   {&__pyx_n_s_newNumberColumns, __pyx_k_newNumberColumns, sizeof(__pyx_k_newNumberColumns), 0, 0, 1, 1},
41341   {&__pyx_n_s_newNumberRows, __pyx_k_newNumberRows, sizeof(__pyx_k_newNumberRows), 0, 0, 1, 1},
41342   {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
41343   {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1},
41344   {&__pyx_n_s_number, __pyx_k_number, sizeof(__pyx_k_number), 0, 0, 1, 1},
41345   {&__pyx_n_s_numberAcross, __pyx_k_numberAcross, sizeof(__pyx_k_numberAcross), 0, 0, 1, 1},
41346   {&__pyx_n_s_numberInColumn, __pyx_k_numberInColumn, sizeof(__pyx_k_numberInColumn), 0, 0, 1, 1},
41347   {&__pyx_n_s_numberInRow, __pyx_k_numberInRow, sizeof(__pyx_k_numberInRow), 0, 0, 1, 1},
41348   {&__pyx_n_s_numberPasses, __pyx_k_numberPasses, sizeof(__pyx_k_numberPasses), 0, 0, 1, 1},
41349   {&__pyx_n_s_numberWanted, __pyx_k_numberWanted, sizeof(__pyx_k_numberWanted), 0, 0, 1, 1},
41350   {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
41351   {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0},
41352   {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0},
41353   {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
41354   {&__pyx_n_s_objSense, __pyx_k_objSense, sizeof(__pyx_k_objSense), 0, 0, 1, 1},
41355   {&__pyx_n_s_objective, __pyx_k_objective, sizeof(__pyx_k_objective), 0, 0, 1, 1},
41356   {&__pyx_n_s_objectiveCoefficients, __pyx_k_objectiveCoefficients, sizeof(__pyx_k_objectiveCoefficients), 0, 0, 1, 1},
41357   {&__pyx_n_s_objectiveOffset, __pyx_k_objectiveOffset, sizeof(__pyx_k_objectiveOffset), 0, 0, 1, 1},
41358   {&__pyx_n_s_on, __pyx_k_on, sizeof(__pyx_k_on), 0, 0, 1, 1},
41359   {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1},
41360   {&__pyx_n_s_optimal, __pyx_k_optimal, sizeof(__pyx_k_optimal), 0, 0, 1, 1},
41361   {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1},
41362   {&__pyx_n_s_os_path, __pyx_k_os_path, sizeof(__pyx_k_os_path), 0, 0, 1, 1},
41363   {&__pyx_n_s_parent, __pyx_k_parent, sizeof(__pyx_k_parent), 0, 0, 1, 1},
41364   {&__pyx_n_s_parentDim, __pyx_k_parentDim, sizeof(__pyx_k_parentDim), 0, 0, 1, 1},
41365   {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1},
41366   {&__pyx_n_s_pi, __pyx_k_pi, sizeof(__pyx_k_pi), 0, 0, 1, 1},
41367   {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
41368   {&__pyx_kp_s_pivotMethodObject_should_be_of_a, __pyx_k_pivotMethodObject_should_be_of_a, sizeof(__pyx_k_pivotMethodObject_should_be_of_a), 0, 0, 1, 0},
41369   {&__pyx_n_s_presolve, __pyx_k_presolve, sizeof(__pyx_k_presolve), 0, 0, 1, 1},
41370   {&__pyx_n_s_primalWithPresolve, __pyx_k_primalWithPresolve, sizeof(__pyx_k_primalWithPresolve), 0, 0, 1, 1},
41371   {&__pyx_kp_s_primal_infeasible, __pyx_k_primal_infeasible, sizeof(__pyx_k_primal_infeasible), 0, 0, 1, 0},
41372   {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1},
41373   {&__pyx_n_s_problemStatus, __pyx_k_problemStatus, sizeof(__pyx_k_problemStatus), 0, 0, 1, 1},
41374   {&__pyx_n_s_product, __pyx_k_product, sizeof(__pyx_k_product), 0, 0, 1, 1},
41375   {&__pyx_n_s_pvdims, __pyx_k_pvdims, sizeof(__pyx_k_pvdims), 0, 0, 1, 1},
41376   {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
41377   {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
41378   {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
41379   {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
41380   {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
41381   {&__pyx_n_s_pyx_unpickle_VarStatus, __pyx_k_pyx_unpickle_VarStatus, sizeof(__pyx_k_pyx_unpickle_VarStatus), 0, 0, 1, 1},
41382   {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
41383   {&__pyx_kp_b_qps, __pyx_k_qps, sizeof(__pyx_k_qps), 0, 0, 0, 0},
41384   {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
41385   {&__pyx_n_s_readMps, __pyx_k_readMps, sizeof(__pyx_k_readMps), 0, 0, 1, 1},
41386   {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
41387   {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
41388   {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
41389   {&__pyx_n_s_regionSparse1, __pyx_k_regionSparse1, sizeof(__pyx_k_regionSparse1), 0, 0, 1, 1},
41390   {&__pyx_n_s_regionSparse2, __pyx_k_regionSparse2, sizeof(__pyx_k_regionSparse2), 0, 0, 1, 1},
41391   {&__pyx_n_s_removeConstraint, __pyx_k_removeConstraint, sizeof(__pyx_k_removeConstraint), 0, 0, 1, 1},
41392   {&__pyx_n_s_removeGaps, __pyx_k_removeGaps, sizeof(__pyx_k_removeGaps), 0, 0, 1, 1},
41393   {&__pyx_n_s_removeVariable, __pyx_k_removeVariable, sizeof(__pyx_k_removeVariable), 0, 0, 1, 1},
41394   {&__pyx_n_s_replaceMatrix, __pyx_k_replaceMatrix, sizeof(__pyx_k_replaceMatrix), 0, 0, 1, 1},
41395   {&__pyx_n_s_resize, __pyx_k_resize, sizeof(__pyx_k_resize), 0, 0, 1, 1},
41396   {&__pyx_n_s_reverseVarSearch, __pyx_k_reverseVarSearch, sizeof(__pyx_k_reverseVarSearch), 0, 0, 1, 1},
41397   {&__pyx_n_s_row, __pyx_k_row, sizeof(__pyx_k_row), 0, 0, 1, 1},
41398   {&__pyx_n_s_rowLower, __pyx_k_rowLower, sizeof(__pyx_k_rowLower), 0, 0, 1, 1},
41399   {&__pyx_n_s_rowObjective, __pyx_k_rowObjective, sizeof(__pyx_k_rowObjective), 0, 0, 1, 1},
41400   {&__pyx_n_s_rowStarts, __pyx_k_rowStarts, sizeof(__pyx_k_rowStarts), 0, 0, 1, 1},
41401   {&__pyx_n_s_rowUpper, __pyx_k_rowUpper, sizeof(__pyx_k_rowUpper), 0, 0, 1, 1},
41402   {&__pyx_n_s_rowlb, __pyx_k_rowlb, sizeof(__pyx_k_rowlb), 0, 0, 1, 1},
41403   {&__pyx_n_s_rows, __pyx_k_rows, sizeof(__pyx_k_rows), 0, 0, 1, 1},
41404   {&__pyx_n_s_rowub, __pyx_k_rowub, sizeof(__pyx_k_rowub), 0, 0, 1, 1},
41405   {&__pyx_n_s_rstat, __pyx_k_rstat, sizeof(__pyx_k_rstat), 0, 0, 1, 1},
41406   {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1},
41407   {&__pyx_n_s_scalar, __pyx_k_scalar, sizeof(__pyx_k_scalar), 0, 0, 1, 1},
41408   {&__pyx_n_s_scipy, __pyx_k_scipy, sizeof(__pyx_k_scipy), 0, 0, 1, 1},
41409   {&__pyx_n_s_sequence, __pyx_k_sequence, sizeof(__pyx_k_sequence), 0, 0, 1, 1},
41410   {&__pyx_n_s_setColumnLower, __pyx_k_setColumnLower, sizeof(__pyx_k_setColumnLower), 0, 0, 1, 1},
41411   {&__pyx_n_s_setColumnLowerFirstElements, __pyx_k_setColumnLowerFirstElements, sizeof(__pyx_k_setColumnLowerFirstElements), 0, 0, 1, 1},
41412   {&__pyx_n_s_setColumnLowerSubset, __pyx_k_setColumnLowerSubset, sizeof(__pyx_k_setColumnLowerSubset), 0, 0, 1, 1},
41413   {&__pyx_n_s_setColumnUpper, __pyx_k_setColumnUpper, sizeof(__pyx_k_setColumnUpper), 0, 0, 1, 1},
41414   {&__pyx_n_s_setColumnUpperFirstElements, __pyx_k_setColumnUpperFirstElements, sizeof(__pyx_k_setColumnUpperFirstElements), 0, 0, 1, 1},
41415   {&__pyx_n_s_setColumnUpperSubset, __pyx_k_setColumnUpperSubset, sizeof(__pyx_k_setColumnUpperSubset), 0, 0, 1, 1},
41416   {&__pyx_n_s_setConstraintName, __pyx_k_setConstraintName, sizeof(__pyx_k_setConstraintName), 0, 0, 1, 1},
41417   {&__pyx_n_s_setInteger, __pyx_k_setInteger, sizeof(__pyx_k_setInteger), 0, 0, 1, 1},
41418   {&__pyx_n_s_setObjectiveArray, __pyx_k_setObjectiveArray, sizeof(__pyx_k_setObjectiveArray), 0, 0, 1, 1},
41419   {&__pyx_n_s_setRowLower, __pyx_k_setRowLower, sizeof(__pyx_k_setRowLower), 0, 0, 1, 1},
41420   {&__pyx_n_s_setRowLowerArray, __pyx_k_setRowLowerArray, sizeof(__pyx_k_setRowLowerArray), 0, 0, 1, 1},
41421   {&__pyx_n_s_setRowUpper, __pyx_k_setRowUpper, sizeof(__pyx_k_setRowUpper), 0, 0, 1, 1},
41422   {&__pyx_n_s_setRowUpperArray, __pyx_k_setRowUpperArray, sizeof(__pyx_k_setRowUpperArray), 0, 0, 1, 1},
41423   {&__pyx_n_s_setVariableName, __pyx_k_setVariableName, sizeof(__pyx_k_setVariableName), 0, 0, 1, 1},
41424   {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
41425   {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
41426   {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1},
41427   {&__pyx_n_s_spare, __pyx_k_spare, sizeof(__pyx_k_spare), 0, 0, 1, 1},
41428   {&__pyx_n_s_sparse, __pyx_k_sparse, sizeof(__pyx_k_sparse), 0, 0, 1, 1},
41429   {&__pyx_n_s_sparseConcat, __pyx_k_sparseConcat, sizeof(__pyx_k_sparseConcat), 0, 0, 1, 1},
41430   {&__pyx_n_s_splitext, __pyx_k_splitext, sizeof(__pyx_k_splitext), 0, 0, 1, 1},
41431   {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
41432   {&__pyx_n_s_startFinishOptions, __pyx_k_startFinishOptions, sizeof(__pyx_k_startFinishOptions), 0, 0, 1, 1},
41433   {&__pyx_n_s_startFinishOptionsDic, __pyx_k_startFinishOptionsDic, sizeof(__pyx_k_startFinishOptionsDic), 0, 0, 1, 1},
41434   {&__pyx_n_s_status, __pyx_k_status, sizeof(__pyx_k_status), 0, 0, 1, 1},
41435   {&__pyx_n_s_status_2, __pyx_k_status_2, sizeof(__pyx_k_status_2), 0, 0, 1, 1},
41436   {&__pyx_kp_s_stopped_by_event_handler_virtual, __pyx_k_stopped_by_event_handler_virtual, sizeof(__pyx_k_stopped_by_event_handler_virtual), 0, 0, 1, 0},
41437   {&__pyx_kp_s_stopped_due_to_errors, __pyx_k_stopped_due_to_errors, sizeof(__pyx_k_stopped_due_to_errors), 0, 0, 1, 0},
41438   {&__pyx_kp_s_stopped_on_iterations_or_time, __pyx_k_stopped_on_iterations_or_time, sizeof(__pyx_k_stopped_on_iterations_or_time), 0, 0, 1, 0},
41439   {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
41440   {&__pyx_n_s_sum, __pyx_k_sum, sizeof(__pyx_k_sum), 0, 0, 1, 1},
41441   {&__pyx_n_s_superBasic, __pyx_k_superBasic, sizeof(__pyx_k_superBasic), 0, 0, 1, 1},
41442   {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
41443   {&__pyx_n_s_toarray, __pyx_k_toarray, sizeof(__pyx_k_toarray), 0, 0, 1, 1},
41444   {&__pyx_n_s_tocoo, __pyx_k_tocoo, sizeof(__pyx_k_tocoo), 0, 0, 1, 1},
41445   {&__pyx_n_s_tryPlusMinusOne, __pyx_k_tryPlusMinusOne, sizeof(__pyx_k_tryPlusMinusOne), 0, 0, 1, 1},
41446   {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0},
41447   {&__pyx_kp_s_unrecognised_extension_s, __pyx_k_unrecognised_extension_s, sizeof(__pyx_k_unrecognised_extension_s), 0, 0, 1, 0},
41448   {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
41449   {&__pyx_n_s_updateStatus, __pyx_k_updateStatus, sizeof(__pyx_k_updateStatus), 0, 0, 1, 1},
41450   {&__pyx_n_s_updatedColumn, __pyx_k_updatedColumn, sizeof(__pyx_k_updatedColumn), 0, 0, 1, 1},
41451   {&__pyx_n_s_upper, __pyx_k_upper, sizeof(__pyx_k_upper), 0, 0, 1, 1},
41452   {&__pyx_n_s_useRowNames, __pyx_k_useRowNames, sizeof(__pyx_k_useRowNames), 0, 0, 1, 1},
41453   {&__pyx_n_s_v1, __pyx_k_v1, sizeof(__pyx_k_v1), 0, 0, 1, 1},
41454   {&__pyx_n_s_v2, __pyx_k_v2, sizeof(__pyx_k_v2), 0, 0, 1, 1},
41455   {&__pyx_n_s_val, __pyx_k_val, sizeof(__pyx_k_val), 0, 0, 1, 1},
41456   {&__pyx_n_s_var1, __pyx_k_var1, sizeof(__pyx_k_var1), 0, 0, 1, 1},
41457   {&__pyx_n_s_var2, __pyx_k_var2, sizeof(__pyx_k_var2), 0, 0, 1, 1},
41458   {&__pyx_n_s_varCoefs, __pyx_k_varCoefs, sizeof(__pyx_k_varCoefs), 0, 0, 1, 1},
41459   {&__pyx_n_s_varInd, __pyx_k_varInd, sizeof(__pyx_k_varInd), 0, 0, 1, 1},
41460   {&__pyx_n_s_varIndex, __pyx_k_varIndex, sizeof(__pyx_k_varIndex), 0, 0, 1, 1},
41461   {&__pyx_n_s_varNames, __pyx_k_varNames, sizeof(__pyx_k_varNames), 0, 0, 1, 1},
41462   {&__pyx_n_s_variableNames, __pyx_k_variableNames, sizeof(__pyx_k_variableNames), 0, 0, 1, 1},
41463   {&__pyx_n_s_variables, __pyx_k_variables, sizeof(__pyx_k_variables), 0, 0, 1, 1},
41464   {&__pyx_n_s_variablesLower, __pyx_k_variablesLower, sizeof(__pyx_k_variablesLower), 0, 0, 1, 1},
41465   {&__pyx_n_s_variablesUpper, __pyx_k_variablesUpper, sizeof(__pyx_k_variablesUpper), 0, 0, 1, 1},
41466   {&__pyx_n_s_varname, __pyx_k_varname, sizeof(__pyx_k_varname), 0, 0, 1, 1},
41467   {&__pyx_n_s_vectorStarts, __pyx_k_vectorStarts, sizeof(__pyx_k_vectorStarts), 0, 0, 1, 1},
41468   {&__pyx_n_s_vectorTimesB_1, __pyx_k_vectorTimesB_1, sizeof(__pyx_k_vectorTimesB_1), 0, 0, 1, 1},
41469   {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1},
41470   {&__pyx_n_s_w_ind, __pyx_k_w_ind, sizeof(__pyx_k_w_ind), 0, 0, 1, 1},
41471   {&__pyx_n_s_where, __pyx_k_where, sizeof(__pyx_k_where), 0, 0, 1, 1},
41472   {&__pyx_n_s_which, __pyx_k_which, sizeof(__pyx_k_which), 0, 0, 1, 1},
41473   {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1},
41474   {&__pyx_n_s_x_u, __pyx_k_x_u, sizeof(__pyx_k_x_u), 0, 0, 1, 1},
41475   {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1},
41476   {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1},
41477   {&__pyx_n_s_z, __pyx_k_z, sizeof(__pyx_k_z), 0, 0, 1, 1},
41478   {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1},
41479   {&__pyx_n_s_zip, __pyx_k_zip, sizeof(__pyx_k_zip), 0, 0, 1, 1},
41480   {0, 0, 0, 0, 0, 0, 0}
41481 };
41482 static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
41483   __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 12, __pyx_L1_error)
41484   __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 13, __pyx_L1_error)
41485   __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 88, __pyx_L1_error)
41486   #if PY_MAJOR_VERSION >= 3
41487   __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(0, 120, __pyx_L1_error)
41488   #else
41489   __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(0, 120, __pyx_L1_error)
41490   #endif
41491   __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 314, __pyx_L1_error)
41492   __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 1500, __pyx_L1_error)
41493   __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(0, 1807, __pyx_L1_error)
41494   __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error)
41495   __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 855, __pyx_L1_error)
41496   return 0;
41497   __pyx_L1_error:;
41498   return -1;
41499 }
41500 
41501 static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
41502   __Pyx_RefNannyDeclarations
41503   __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
41504 
41505   /* "cylp/cy/CyClpSimplex.pyx":122
41506  *             for colInd in xrange(self.nConstraints):
41507  *                 self.getBInvCol(colInd, c)
41508  *                 b[:, colInd] = c             # <<<<<<<<<<<<<<
41509  *             return b
41510  *
41511  */
41512   __pyx_slice_ = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice_)) __PYX_ERR(0, 122, __pyx_L1_error)
41513   __Pyx_GOTREF(__pyx_slice_);
41514   __Pyx_GIVEREF(__pyx_slice_);
41515 
41516   /* "cylp/cy/CyClpSimplex.pyx":169
41517  *                 #       self.cyLPModel.objective.astype(np.double))
41518  *             else:
41519  *                 raise Exception('To set the objective function of ' \             # <<<<<<<<<<<<<<
41520  *                                 'CyClpSimplex set cylpSimplex.cyLPModel ' \
41521  *                                 'first.')
41522  */
41523   __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_To_set_the_objective_function_of); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 169, __pyx_L1_error)
41524   __Pyx_GOTREF(__pyx_tuple__2);
41525   __Pyx_GIVEREF(__pyx_tuple__2);
41526 
41527   /* "cylp/cy/CyClpSimplex.pyx":236
41528  *                 m = sparseMatrix.tocoo()
41529  *             except:
41530  *                 raise Exception('coefMatrix must be a scipy sparse matrix.')             # <<<<<<<<<<<<<<
41531  *             self.matrix = CyCoinPackedMatrix(True, m.row, m.col, m.data)
41532  *
41533  */
41534   __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_coefMatrix_must_be_a_scipy_spars); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 236, __pyx_L1_error)
41535   __Pyx_GOTREF(__pyx_tuple__3);
41536   __Pyx_GIVEREF(__pyx_tuple__3);
41537 
41538   /* "cylp/cy/CyClpSimplex.pyx":258
41539  *         def __get__(self):
41540  *             if not self.cyLPModel:
41541  *                 raise Exception('No CyClpSimplex cyLPModel.')             # <<<<<<<<<<<<<<
41542  *             else:
41543  *                 return self.cyLPModel.constraints
41544  */
41545   __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_No_CyClpSimplex_cyLPModel); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 258, __pyx_L1_error)
41546   __Pyx_GOTREF(__pyx_tuple__4);
41547   __Pyx_GIVEREF(__pyx_tuple__4);
41548 
41549   /* "cylp/cy/CyClpSimplex.pyx":710
41550  *                 m = mat.tocoo()
41551  *             except:
41552  *                 raise Exception('Hessian can be set to a matrix that ' \             # <<<<<<<<<<<<<<
41553  *                                             'implements *tocoo* method')
41554  *             if m:
41555  */
41556   __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_Hessian_can_be_set_to_a_matrix_t); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 710, __pyx_L1_error)
41557   __Pyx_GOTREF(__pyx_tuple__5);
41558   __Pyx_GIVEREF(__pyx_tuple__5);
41559 
41560   /* "cylp/cy/CyClpSimplex.pyx":1036
41561  *         elif True:  # isinstance(arg, CyLPVar):
41562  *             if self.cyLPModel is None:
41563  *                 raise Exception('The argument of setVarStatus can be ' \             # <<<<<<<<<<<<<<
41564  *                                 'a CyLPVar only if the object is built ' \
41565  *                                 'using a CyLPModel.')
41566  */
41567   __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_The_argument_of_setVarStatus_can); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 1036, __pyx_L1_error)
41568   __Pyx_GOTREF(__pyx_tuple__6);
41569   __Pyx_GIVEREF(__pyx_tuple__6);
41570 
41571   /* "cylp/cy/CyClpSimplex.pyx":1061
41572  *         elif True:  # isinstance(arg, CyLPVar):
41573  *             if self.cyLPModel is None:
41574  *                 raise Exception('The argument of getVarStatus can be ' \             # <<<<<<<<<<<<<<
41575  *                                 'a CyLPVar only if the object is built ' \
41576  *                                 'using a CyLPModel.')
41577  */
41578   __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_The_argument_of_getVarStatus_can); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 1061, __pyx_L1_error)
41579   __Pyx_GOTREF(__pyx_tuple__7);
41580   __Pyx_GIVEREF(__pyx_tuple__7);
41581 
41582   /* "cylp/cy/CyClpSimplex.pyx":1350
41583  *                         mainCoef.indices, mainCoef.data)
41584  *         else:
41585  *             raise Exception('To add a constraint you must set ' \             # <<<<<<<<<<<<<<
41586  *                             'cylpSimplex.cyLPModel first.')
41587  *
41588  */
41589   __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_To_add_a_constraint_you_must_set); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 1350, __pyx_L1_error)
41590   __Pyx_GOTREF(__pyx_tuple__9);
41591   __Pyx_GIVEREF(__pyx_tuple__9);
41592 
41593   /* "cylp/cy/CyClpSimplex.pyx":1362
41594  *             #self.loadFromCyLPModel(self.cyLPModel)
41595  *         else:
41596  *             raise Exception('To remove a constraint you must set ' \             # <<<<<<<<<<<<<<
41597  *                             'cylpSimplex.cyLPModel first.')
41598  *
41599  */
41600   __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_To_remove_a_constraint_you_must); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 1362, __pyx_L1_error)
41601   __Pyx_GOTREF(__pyx_tuple__10);
41602   __Pyx_GIVEREF(__pyx_tuple__10);
41603 
41604   /* "cylp/cy/CyClpSimplex.pyx":1386
41605  *             self.loadFromCyLPModel(self.cyLPModel)
41606  *         else:
41607  *             raise Exception('To remove a variable you must set ' \             # <<<<<<<<<<<<<<
41608  *                             'cylpSimplex.cyLPModel first.')
41609  *
41610  */
41611   __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_To_remove_a_variable_you_must_se); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 1386, __pyx_L1_error)
41612   __Pyx_GOTREF(__pyx_tuple__11);
41613   __Pyx_GIVEREF(__pyx_tuple__11);
41614 
41615   /* "cylp/cy/CyClpSimplex.pyx":1391
41616  *     def getVarByName(self, name):
41617  *         if not self.cyLPModel:
41618  *             raise Exception('No cylpSimplex.cyLPModel is set.')             # <<<<<<<<<<<<<<
41619  *         return self.cyLPModel.getVarByName(name)
41620  *
41621  */
41622   __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_No_cylpSimplex_cyLPModel_is_set); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 1391, __pyx_L1_error)
41623   __Pyx_GOTREF(__pyx_tuple__12);
41624   __Pyx_GIVEREF(__pyx_tuple__12);
41625 
41626   /* "cylp/cy/CyClpSimplex.pyx":1732
41627  *         elif True:  # isinstance(arg, CyLPVar):
41628  *             if self.cyLPModel is None:
41629  *                 raise Exception('The argument of setInteger can be ' \             # <<<<<<<<<<<<<<
41630  *                                 'a CyLPVar only if the object is built ' \
41631  *                                 'using a CyLPModel.')
41632  */
41633   __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_The_argument_of_setInteger_can_b); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 1732, __pyx_L1_error)
41634   __Pyx_GOTREF(__pyx_tuple__13);
41635   __Pyx_GIVEREF(__pyx_tuple__13);
41636 
41637   /* "cylp/cy/CyClpSimplex.pyx":1771
41638  *         s = CyClpSimplex()
41639  *         if model == NULL:
41640  *             print("Presolve says problem infeasible.")             # <<<<<<<<<<<<<<
41641  *             return s
41642  *
41643  */
41644   __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_Presolve_says_problem_infeasible); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 1771, __pyx_L1_error)
41645   __Pyx_GOTREF(__pyx_tuple__14);
41646   __Pyx_GIVEREF(__pyx_tuple__14);
41647 
41648   /* "cylp/cy/CyClpSimplex.pyx":2008
41649  *         '''
41650  *         if not issubclass(pivotMethodObject.__class__, PivotPythonBase):
41651  *             raise TypeError('pivotMethodObject should be of a \             # <<<<<<<<<<<<<<
41652  *                             class derived from PivotPythonBase')
41653  *
41654  */
41655   __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_pivotMethodObject_should_be_of_a); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 2008, __pyx_L1_error)
41656   __Pyx_GOTREF(__pyx_tuple__17);
41657   __Pyx_GIVEREF(__pyx_tuple__17);
41658 
41659   /* "cylp/cy/CyClpSimplex.pyx":2024
41660  *         to solve LPs <custom-dual-pivot-usage>`.       '''
41661  *         if not issubclass(dualPivotMethodObject.__class__, DualPivotPythonBase):
41662  *             raise TypeError('dualPivotMethodObject should be of a \             # <<<<<<<<<<<<<<
41663  *                             class derived from DualPivotPythonBase')
41664  *
41665  */
41666   __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_dualPivotMethodObject_should_be); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 2024, __pyx_L1_error)
41667   __Pyx_GOTREF(__pyx_tuple__18);
41668   __Pyx_GIVEREF(__pyx_tuple__18);
41669 
41670   /* "cylp/cy/CyClpSimplex.pyx":2071
41671  *                                        CppCoinIndexedVector * spareArray2,
41672  *                                        int valuesPass):
41673  *         raise Exception('CyClpPrimalColumnPivotBase.pyx: pivot column ' \             # <<<<<<<<<<<<<<
41674  *                         'should be implemented.')
41675  *
41676  */
41677   __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_p); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 2071, __pyx_L1_error)
41678   __Pyx_GOTREF(__pyx_tuple__19);
41679   __Pyx_GIVEREF(__pyx_tuple__19);
41680 
41681   /* "(tree fragment)":2
41682  * def __reduce_cython__(self):
41683  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
41684  * def __setstate_cython__(self, __pyx_state):
41685  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
41686  */
41687   __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(1, 2, __pyx_L1_error)
41688   __Pyx_GOTREF(__pyx_tuple__21);
41689   __Pyx_GIVEREF(__pyx_tuple__21);
41690 
41691   /* "(tree fragment)":4
41692  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
41693  * def __setstate_cython__(self, __pyx_state):
41694  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
41695  */
41696   __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(1, 4, __pyx_L1_error)
41697   __Pyx_GOTREF(__pyx_tuple__22);
41698   __Pyx_GIVEREF(__pyx_tuple__22);
41699 
41700   /* "cylp/cy/CyClpSimplex.pyx":2187
41701  *
41702  *     model = CyLPModel()
41703  *     x = model.addVariable('x', 3)             # <<<<<<<<<<<<<<
41704  *     y = model.addVariable('y', 2)
41705  *
41706  */
41707   __pyx_tuple__24 = PyTuple_Pack(2, __pyx_n_s_x, __pyx_int_3); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 2187, __pyx_L1_error)
41708   __Pyx_GOTREF(__pyx_tuple__24);
41709   __Pyx_GIVEREF(__pyx_tuple__24);
41710 
41711   /* "cylp/cy/CyClpSimplex.pyx":2188
41712  *     model = CyLPModel()
41713  *     x = model.addVariable('x', 3)
41714  *     y = model.addVariable('y', 2)             # <<<<<<<<<<<<<<
41715  *
41716  *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])
41717  */
41718   __pyx_tuple__25 = PyTuple_Pack(2, __pyx_n_s_y, __pyx_int_2); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 2188, __pyx_L1_error)
41719   __Pyx_GOTREF(__pyx_tuple__25);
41720   __Pyx_GIVEREF(__pyx_tuple__25);
41721 
41722   /* "cylp/cy/CyClpSimplex.pyx":2200
41723  *     model += 2 <= B * x + D * y <= b
41724  *     model += y >= 0
41725  *     model += 1.1 <= x[1:3] <= x_u             # <<<<<<<<<<<<<<
41726  *
41727  *     c = CyLPArray([1., -2., 3.])
41728  */
41729   __pyx_slice__26 = PySlice_New(__pyx_int_1, __pyx_int_3, Py_None); if (unlikely(!__pyx_slice__26)) __PYX_ERR(0, 2200, __pyx_L1_error)
41730   __Pyx_GOTREF(__pyx_slice__26);
41731   __Pyx_GIVEREF(__pyx_slice__26);
41732 
41733   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":272
41734  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
41735  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
41736  *                 raise ValueError(u"ndarray is not C contiguous")             # <<<<<<<<<<<<<<
41737  *
41738  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
41739  */
41740   __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 272, __pyx_L1_error)
41741   __Pyx_GOTREF(__pyx_tuple__29);
41742   __Pyx_GIVEREF(__pyx_tuple__29);
41743 
41744   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":276
41745  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
41746  *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
41747  *                 raise ValueError(u"ndarray is not Fortran contiguous")             # <<<<<<<<<<<<<<
41748  *
41749  *             info.buf = PyArray_DATA(self)
41750  */
41751   __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 276, __pyx_L1_error)
41752   __Pyx_GOTREF(__pyx_tuple__30);
41753   __Pyx_GIVEREF(__pyx_tuple__30);
41754 
41755   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":306
41756  *                 if ((descr.byteorder == c'>' and little_endian) or
41757  *                     (descr.byteorder == c'<' and not little_endian)):
41758  *                     raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
41759  *                 if   t == NPY_BYTE:        f = "b"
41760  *                 elif t == NPY_UBYTE:       f = "B"
41761  */
41762   __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(2, 306, __pyx_L1_error)
41763   __Pyx_GOTREF(__pyx_tuple__31);
41764   __Pyx_GIVEREF(__pyx_tuple__31);
41765 
41766   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":855
41767  *
41768  *         if (end - f) - <int>(new_offset - offset[0]) < 15:
41769  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
41770  *
41771  *         if ((child.byteorder == c'>' and little_endian) or
41772  */
41773   __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(2, 855, __pyx_L1_error)
41774   __Pyx_GOTREF(__pyx_tuple__32);
41775   __Pyx_GIVEREF(__pyx_tuple__32);
41776 
41777   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":879
41778  *             t = child.type_num
41779  *             if end - f < 5:
41780  *                 raise RuntimeError(u"Format string allocated too short.")             # <<<<<<<<<<<<<<
41781  *
41782  *             # Until ticket #99 is fixed, use integers to avoid warnings
41783  */
41784   __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(2, 879, __pyx_L1_error)
41785   __Pyx_GOTREF(__pyx_tuple__33);
41786   __Pyx_GIVEREF(__pyx_tuple__33);
41787 
41788   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037
41789  *         _import_array()
41790  *     except Exception:
41791  *         raise ImportError("numpy.core.multiarray failed to import")             # <<<<<<<<<<<<<<
41792  *
41793  * cdef inline int import_umath() except -1:
41794  */
41795   __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(2, 1037, __pyx_L1_error)
41796   __Pyx_GOTREF(__pyx_tuple__34);
41797   __Pyx_GIVEREF(__pyx_tuple__34);
41798 
41799   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043
41800  *         _import_umath()
41801  *     except Exception:
41802  *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
41803  *
41804  * cdef inline int import_ufunc() except -1:
41805  */
41806   __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(2, 1043, __pyx_L1_error)
41807   __Pyx_GOTREF(__pyx_tuple__35);
41808   __Pyx_GIVEREF(__pyx_tuple__35);
41809 
41810   /* "cylp/cy/CyClpSimplex.pyx":2178
41811  *
41812  *
41813  * def getModelExample():             # <<<<<<<<<<<<<<
41814  *     '''
41815  *     Return a model example to be used in doctests.
41816  */
41817   __pyx_tuple__36 = PyTuple_Pack(14, __pyx_n_s_np, __pyx_n_s_CyLPModel, __pyx_n_s_CyLPArray, __pyx_n_s_CyClpSimplex, __pyx_n_s_model, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_A, __pyx_n_s_B, __pyx_n_s_D, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_x_u, __pyx_n_s_c); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 2178, __pyx_L1_error)
41818   __Pyx_GOTREF(__pyx_tuple__36);
41819   __Pyx_GIVEREF(__pyx_tuple__36);
41820   __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyClpSimplex_pyx, __pyx_n_s_getModelExample, 2178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 2178, __pyx_L1_error)
41821 
41822   /* "cylp/cy/CyClpSimplex.pyx":2212
41823  *
41824  *
41825  * def getMpsExample():             # <<<<<<<<<<<<<<
41826  *     '''
41827  *     Return full path to an MPS example file for doctests
41828  */
41829   __pyx_tuple__37 = PyTuple_Pack(3, __pyx_n_s_os, __pyx_n_s_inspect, __pyx_n_s_curpath); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 2212, __pyx_L1_error)
41830   __Pyx_GOTREF(__pyx_tuple__37);
41831   __Pyx_GIVEREF(__pyx_tuple__37);
41832   __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyClpSimplex_pyx, __pyx_n_s_getMpsExample, 2212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 2212, __pyx_L1_error)
41833 
41834   /* "(tree fragment)":1
41835  * def __pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
41836  *     cdef object __pyx_PickleError
41837  *     cdef object __pyx_result
41838  */
41839   __pyx_tuple__38 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 1, __pyx_L1_error)
41840   __Pyx_GOTREF(__pyx_tuple__38);
41841   __Pyx_GIVEREF(__pyx_tuple__38);
41842   __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_VarStatus, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(1, 1, __pyx_L1_error)
41843   __Pyx_RefNannyFinishContext();
41844   return 0;
41845   __pyx_L1_error:;
41846   __Pyx_RefNannyFinishContext();
41847   return -1;
41848 }
41849 
41850 static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
41851   if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
41852   __pyx_float_0_ = PyFloat_FromDouble(0.); if (unlikely(!__pyx_float_0_)) __PYX_ERR(0, 1, __pyx_L1_error)
41853   __pyx_float_1_ = PyFloat_FromDouble(1.); if (unlikely(!__pyx_float_1_)) __PYX_ERR(0, 1, __pyx_L1_error)
41854   __pyx_float_2_ = PyFloat_FromDouble(2.); if (unlikely(!__pyx_float_2_)) __PYX_ERR(0, 1, __pyx_L1_error)
41855   __pyx_float_3_ = PyFloat_FromDouble(3.); if (unlikely(!__pyx_float_3_)) __PYX_ERR(0, 1, __pyx_L1_error)
41856   __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(0, 1, __pyx_L1_error)
41857   __pyx_float_0_5 = PyFloat_FromDouble(0.5); if (unlikely(!__pyx_float_0_5)) __PYX_ERR(0, 1, __pyx_L1_error)
41858   __pyx_float_1_1 = PyFloat_FromDouble(1.1); if (unlikely(!__pyx_float_1_1)) __PYX_ERR(0, 1, __pyx_L1_error)
41859   __pyx_float_2_5 = PyFloat_FromDouble(2.5); if (unlikely(!__pyx_float_2_5)) __PYX_ERR(0, 1, __pyx_L1_error)
41860   __pyx_float_3_5 = PyFloat_FromDouble(3.5); if (unlikely(!__pyx_float_3_5)) __PYX_ERR(0, 1, __pyx_L1_error)
41861   __pyx_float_4_2 = PyFloat_FromDouble(4.2); if (unlikely(!__pyx_float_4_2)) __PYX_ERR(0, 1, __pyx_L1_error)
41862   __pyx_float_neg_1_ = PyFloat_FromDouble(-1.); if (unlikely(!__pyx_float_neg_1_)) __PYX_ERR(0, 1, __pyx_L1_error)
41863   __pyx_float_neg_2_ = PyFloat_FromDouble(-2.); if (unlikely(!__pyx_float_neg_2_)) __PYX_ERR(0, 1, __pyx_L1_error)
41864   __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
41865   __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
41866   __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
41867   __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
41868   __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(0, 1, __pyx_L1_error)
41869   __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(0, 1, __pyx_L1_error)
41870   __pyx_int_7 = PyInt_FromLong(7); if (unlikely(!__pyx_int_7)) __PYX_ERR(0, 1, __pyx_L1_error)
41871   __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) __PYX_ERR(0, 1, __pyx_L1_error)
41872   __pyx_int_64 = PyInt_FromLong(64); if (unlikely(!__pyx_int_64)) __PYX_ERR(0, 1, __pyx_L1_error)
41873   __pyx_int_222419149 = PyInt_FromLong(222419149L); if (unlikely(!__pyx_int_222419149)) __PYX_ERR(0, 1, __pyx_L1_error)
41874   __pyx_int_neg_2000 = PyInt_FromLong(-2000); if (unlikely(!__pyx_int_neg_2000)) __PYX_ERR(0, 1, __pyx_L1_error)
41875   return 0;
41876   __pyx_L1_error:;
41877   return -1;
41878 }
41879 
41880 static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
41881 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
41882 static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
41883 static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
41884 static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
41885 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
41886 static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/
41887 
41888 static int __Pyx_modinit_global_init_code(void) {
41889   __Pyx_RefNannyDeclarations
41890   __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
41891   /*--- Global init code ---*/
41892   __Pyx_RefNannyFinishContext();
41893   return 0;
41894 }
41895 
41896 static int __Pyx_modinit_variable_export_code(void) {
41897   __Pyx_RefNannyDeclarations
41898   __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
41899   /*--- Variable export code ---*/
41900   __Pyx_RefNannyFinishContext();
41901   return 0;
41902 }
41903 
41904 static int __Pyx_modinit_function_export_code(void) {
41905   __Pyx_RefNannyDeclarations
41906   int __pyx_lineno = 0;
41907   const char *__pyx_filename = NULL;
41908   int __pyx_clineno = 0;
41909   __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
41910   /*--- Function export code ---*/
41911   if (__Pyx_ExportFunction("cydot", (void (*)(void))__pyx_f_4cylp_2cy_12CyClpSimplex_cydot, "PyObject *(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
41912   __Pyx_RefNannyFinishContext();
41913   return 0;
41914   __pyx_L1_error:;
41915   __Pyx_RefNannyFinishContext();
41916   return -1;
41917 }
41918 
41919 static int __Pyx_modinit_type_init_code(void) {
41920   __Pyx_RefNannyDeclarations
41921   int __pyx_lineno = 0;
41922   const char *__pyx_filename = NULL;
41923   int __pyx_clineno = 0;
41924   __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
41925   /*--- Type init code ---*/
41926   __pyx_vtabptr_4cylp_2cy_12CyClpSimplex_CyClpSimplex = &__pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
41927   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.setCppSelf = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, IClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setCppSelf;
41928   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.readMps = (int (*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps *__pyx_optional_args))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps;
41929   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.setPrimalColumnPivotAlgorithm = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, void *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setPrimalColumnPivotAlgorithm;
41930   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.setDualRowPivotAlgorithm = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, void *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setDualRowPivotAlgorithm;
41931   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.primalColumnSolution = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalColumnSolution;
41932   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.dualColumnSolution = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualColumnSolution;
41933   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.primalRowSolution = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalRowSolution;
41934   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.dualRowSolution = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualRowSolution;
41935   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.rowLower = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowLower;
41936   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.rowUpper = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowUpper;
41937   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.getReducedCosts = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getReducedCosts;
41938   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.getStatusArray = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getStatusArray;
41939   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.getComplementarityList = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getComplementarityList;
41940   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.getPivotVariable = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getPivotVariable;
41941   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.filterVars = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_filterVars;
41942   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.CLP_getVarStatus = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_CLP_getVarStatus;
41943   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.CLP_setVarStatus = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int, int, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_CLP_setVarStatus;
41944   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.primalRow = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, int))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalRow;
41945   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.getACol = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getACol;
41946   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.ComplementarityList = (int *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_ComplementarityList;
41947   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.pivotVariable = (int *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_pivotVariable;
41948   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.vectorTimesB_1 = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_vectorTimesB_1;
41949   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.setVariableName = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setVariableName;
41950   __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.setConstraintName = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setConstraintName;
41951   if (PyType_Ready(&__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
41952   #if PY_VERSION_HEX < 0x030800B1
41953   __pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex.tp_print = 0;
41954   #endif
41955   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex.tp_dictoffset && __pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex.tp_getattro == PyObject_GenericGetAttr)) {
41956     __pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex.tp_getattro = __Pyx_PyObject_GenericGetAttr;
41957   }
41958   if (__Pyx_SetVtable(__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex.tp_dict, __pyx_vtabptr_4cylp_2cy_12CyClpSimplex_CyClpSimplex) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
41959   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CyClpSimplex, (PyObject *)&__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
41960   if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
41961   __pyx_ptype_4cylp_2cy_12CyClpSimplex_CyClpSimplex = &__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
41962   if (PyType_Ready(&__pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus) < 0) __PYX_ERR(0, 2232, __pyx_L1_error)
41963   #if PY_VERSION_HEX < 0x030800B1
41964   __pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus.tp_print = 0;
41965   #endif
41966   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus.tp_dictoffset && __pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus.tp_getattro == PyObject_GenericGetAttr)) {
41967     __pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus.tp_getattro = __Pyx_PyObject_GenericGetAttr;
41968   }
41969   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_VarStatus, (PyObject *)&__pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus) < 0) __PYX_ERR(0, 2232, __pyx_L1_error)
41970   if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus) < 0) __PYX_ERR(0, 2232, __pyx_L1_error)
41971   __pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus = &__pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus;
41972   __Pyx_RefNannyFinishContext();
41973   return 0;
41974   __pyx_L1_error:;
41975   __Pyx_RefNannyFinishContext();
41976   return -1;
41977 }
41978 
41979 static int __Pyx_modinit_type_import_code(void) {
41980   __Pyx_RefNannyDeclarations
41981   PyObject *__pyx_t_1 = NULL;
41982   int __pyx_lineno = 0;
41983   const char *__pyx_filename = NULL;
41984   int __pyx_clineno = 0;
41985   __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
41986   /*--- Type import code ---*/
41987   __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error)
41988   __Pyx_GOTREF(__pyx_t_1);
41989   __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
41990   #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
41991   sizeof(PyTypeObject),
41992   #else
41993   sizeof(PyHeapTypeObject),
41994   #endif
41995   __Pyx_ImportType_CheckSize_Warn);
41996    if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error)
41997   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
41998   __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 8, __pyx_L1_error)
41999   __Pyx_GOTREF(__pyx_t_1);
42000   __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), __Pyx_ImportType_CheckSize_Warn);
42001    if (!__pyx_ptype_7cpython_4bool_bool) __PYX_ERR(4, 8, __pyx_L1_error)
42002   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42003   __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 15, __pyx_L1_error)
42004   __Pyx_GOTREF(__pyx_t_1);
42005   __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), __Pyx_ImportType_CheckSize_Warn);
42006    if (!__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(5, 15, __pyx_L1_error)
42007   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42008   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinIndexedVector"); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 22, __pyx_L1_error)
42009   __Pyx_GOTREF(__pyx_t_1);
42010   __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCoinIndexedVector", "CyCoinIndexedVector", sizeof(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector), __Pyx_ImportType_CheckSize_Warn);
42011    if (!__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector) __PYX_ERR(6, 22, __pyx_L1_error)
42012   __pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = (struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector)) __PYX_ERR(6, 22, __pyx_L1_error)
42013   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42014   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 67, __pyx_L1_error)
42015   __Pyx_GOTREF(__pyx_t_1);
42016   __pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyClpPrimalColumnPivotBase", "CyClpPrimalColumnPivotBase", sizeof(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase), __Pyx_ImportType_CheckSize_Warn);
42017    if (!__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase) __PYX_ERR(7, 67, __pyx_L1_error)
42018   __pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = (struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase)) __PYX_ERR(7, 67, __pyx_L1_error)
42019   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42020   __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error)
42021   __Pyx_GOTREF(__pyx_t_1);
42022   __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore);
42023    if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error)
42024   __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn);
42025    if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error)
42026   __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn);
42027    if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error)
42028   __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore);
42029    if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error)
42030   __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn);
42031    if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 917, __pyx_L1_error)
42032   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42033   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 72, __pyx_L1_error)
42034   __Pyx_GOTREF(__pyx_t_1);
42035   __pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyClpDualRowPivotBase", "CyClpDualRowPivotBase", sizeof(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase), __Pyx_ImportType_CheckSize_Warn);
42036    if (!__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase) __PYX_ERR(8, 72, __pyx_L1_error)
42037   __pyx_vtabptr_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = (struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase)) __PYX_ERR(8, 72, __pyx_L1_error)
42038   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42039   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinModel"); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 34, __pyx_L1_error)
42040   __Pyx_GOTREF(__pyx_t_1);
42041   __pyx_ptype_4cylp_2cy_11CyCoinModel_CyCoinModel = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCoinModel", "CyCoinModel", sizeof(struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel), __Pyx_ImportType_CheckSize_Warn);
42042    if (!__pyx_ptype_4cylp_2cy_11CyCoinModel_CyCoinModel) __PYX_ERR(9, 34, __pyx_L1_error)
42043   __pyx_vtabptr_4cylp_2cy_11CyCoinModel_CyCoinModel = (struct __pyx_vtabstruct_4cylp_2cy_11CyCoinModel_CyCoinModel*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_11CyCoinModel_CyCoinModel->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_11CyCoinModel_CyCoinModel)) __PYX_ERR(9, 34, __pyx_L1_error)
42044   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42045   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinPackedMatrix"); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 27, __pyx_L1_error)
42046   __Pyx_GOTREF(__pyx_t_1);
42047   __pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCoinPackedMatrix", "CyCoinPackedMatrix", sizeof(struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix), __Pyx_ImportType_CheckSize_Warn);
42048    if (!__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix) __PYX_ERR(10, 27, __pyx_L1_error)
42049   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42050   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCgl"); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 103, __pyx_L1_error)
42051   __Pyx_GOTREF(__pyx_t_1);
42052   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglCutGenerator = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglCutGenerator", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator), __Pyx_ImportType_CheckSize_Warn);
42053    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglCutGenerator) __PYX_ERR(11, 103, __pyx_L1_error)
42054   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglAllDifferent = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglAllDifferent", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglAllDifferent), __Pyx_ImportType_CheckSize_Warn);
42055    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglAllDifferent) __PYX_ERR(11, 108, __pyx_L1_error)
42056   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglClique = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglClique", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglClique), __Pyx_ImportType_CheckSize_Warn);
42057    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglClique) __PYX_ERR(11, 111, __pyx_L1_error)
42058   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglKnapsackCover = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglKnapsackCover", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglKnapsackCover), __Pyx_ImportType_CheckSize_Warn);
42059    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglKnapsackCover) __PYX_ERR(11, 114, __pyx_L1_error)
42060   __pyx_vtabptr_4cylp_2cy_5CyCgl_CyCglKnapsackCover = (struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglKnapsackCover*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_5CyCgl_CyCglKnapsackCover->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_5CyCgl_CyCglKnapsackCover)) __PYX_ERR(11, 114, __pyx_L1_error)
42061   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglOddHole = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglOddHole", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglOddHole), __Pyx_ImportType_CheckSize_Warn);
42062    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglOddHole) __PYX_ERR(11, 117, __pyx_L1_error)
42063   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglFlowCover = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglFlowCover", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglFlowCover), __Pyx_ImportType_CheckSize_Warn);
42064    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglFlowCover) __PYX_ERR(11, 122, __pyx_L1_error)
42065   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglGomory = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglGomory", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglGomory), __Pyx_ImportType_CheckSize_Warn);
42066    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglGomory) __PYX_ERR(11, 127, __pyx_L1_error)
42067   __pyx_vtabptr_4cylp_2cy_5CyCgl_CyCglGomory = (struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglGomory*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_5CyCgl_CyCglGomory->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_5CyCgl_CyCglGomory)) __PYX_ERR(11, 127, __pyx_L1_error)
42068   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglRedSplit = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglRedSplit", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglRedSplit), __Pyx_ImportType_CheckSize_Warn);
42069    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglRedSplit) __PYX_ERR(11, 132, __pyx_L1_error)
42070   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglLiftAndProject = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglLiftAndProject", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLiftAndProject), __Pyx_ImportType_CheckSize_Warn);
42071    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglLiftAndProject) __PYX_ERR(11, 137, __pyx_L1_error)
42072   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglLandP = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglLandP", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLandP), __Pyx_ImportType_CheckSize_Warn);
42073    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglLandP) __PYX_ERR(11, 140, __pyx_L1_error)
42074   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglMixedIntegerRounding", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding), __Pyx_ImportType_CheckSize_Warn);
42075    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding) __PYX_ERR(11, 145, __pyx_L1_error)
42076   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2 = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglMixedIntegerRounding2", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2), __Pyx_ImportType_CheckSize_Warn);
42077    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2) __PYX_ERR(11, 148, __pyx_L1_error)
42078   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglTwomir = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglTwomir", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglTwomir), __Pyx_ImportType_CheckSize_Warn);
42079    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglTwomir) __PYX_ERR(11, 151, __pyx_L1_error)
42080   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglResidualCapacity = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglResidualCapacity", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglResidualCapacity), __Pyx_ImportType_CheckSize_Warn);
42081    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglResidualCapacity) __PYX_ERR(11, 154, __pyx_L1_error)
42082   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglPreProcess = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglPreProcess", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglPreProcess), __Pyx_ImportType_CheckSize_Warn);
42083    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglPreProcess) __PYX_ERR(11, 162, __pyx_L1_error)
42084   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglProbing = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglProbing", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglProbing), __Pyx_ImportType_CheckSize_Warn);
42085    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglProbing) __PYX_ERR(11, 165, __pyx_L1_error)
42086   __pyx_ptype_4cylp_2cy_5CyCgl_CyCglSimpleRounding = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCgl", "CyCglSimpleRounding", sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding), __Pyx_ImportType_CheckSize_Warn);
42087    if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglSimpleRounding) __PYX_ERR(11, 168, __pyx_L1_error)
42088   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42089   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCbcNode"); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 13, __pyx_L1_error)
42090   __Pyx_GOTREF(__pyx_t_1);
42091   __pyx_ptype_4cylp_2cy_9CyCbcNode_CyCbcNode = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCbcNode", "CyCbcNode", sizeof(struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode), __Pyx_ImportType_CheckSize_Warn);
42092    if (!__pyx_ptype_4cylp_2cy_9CyCbcNode_CyCbcNode) __PYX_ERR(12, 13, __pyx_L1_error)
42093   __pyx_vtabptr_4cylp_2cy_9CyCbcNode_CyCbcNode = (struct __pyx_vtabstruct_4cylp_2cy_9CyCbcNode_CyCbcNode*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_9CyCbcNode_CyCbcNode->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_9CyCbcNode_CyCbcNode)) __PYX_ERR(12, 13, __pyx_L1_error)
42094   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42095   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyOsiSolverInterface"); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 15, __pyx_L1_error)
42096   __Pyx_GOTREF(__pyx_t_1);
42097   __pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyOsiSolverInterface", "CyOsiSolverInterface", sizeof(struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface), __Pyx_ImportType_CheckSize_Warn);
42098    if (!__pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface) __PYX_ERR(13, 15, __pyx_L1_error)
42099   __pyx_vtabptr_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface = (struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface)) __PYX_ERR(13, 15, __pyx_L1_error)
42100   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42101   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCbcModel"); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 82, __pyx_L1_error)
42102   __Pyx_GOTREF(__pyx_t_1);
42103   __pyx_ptype_4cylp_2cy_10CyCbcModel_CyCbcModel = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCbcModel", "CyCbcModel", sizeof(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel), __Pyx_ImportType_CheckSize_Warn);
42104    if (!__pyx_ptype_4cylp_2cy_10CyCbcModel_CyCbcModel) __PYX_ERR(14, 82, __pyx_L1_error)
42105   __pyx_vtabptr_4cylp_2cy_10CyCbcModel_CyCbcModel = (struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_10CyCbcModel_CyCbcModel->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_10CyCbcModel_CyCbcModel)) __PYX_ERR(14, 82, __pyx_L1_error)
42106   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42107   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyWolfePivot"); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 6, __pyx_L1_error)
42108   __Pyx_GOTREF(__pyx_t_1);
42109   __pyx_ptype_4cylp_2cy_12CyWolfePivot_CyWolfePivot = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyWolfePivot", "CyWolfePivot", sizeof(struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot), __Pyx_ImportType_CheckSize_Warn);
42110    if (!__pyx_ptype_4cylp_2cy_12CyWolfePivot_CyWolfePivot) __PYX_ERR(15, 6, __pyx_L1_error)
42111   __pyx_vtabptr_4cylp_2cy_12CyWolfePivot_CyWolfePivot = (struct __pyx_vtabstruct_4cylp_2cy_12CyWolfePivot_CyWolfePivot*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_12CyWolfePivot_CyWolfePivot->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_12CyWolfePivot_CyWolfePivot)) __PYX_ERR(15, 6, __pyx_L1_error)
42112   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42113   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyPEPivot"); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 7, __pyx_L1_error)
42114   __Pyx_GOTREF(__pyx_t_1);
42115   __pyx_ptype_4cylp_2cy_9CyPEPivot_CyPEPivot = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyPEPivot", "CyPEPivot", sizeof(struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot), __Pyx_ImportType_CheckSize_Warn);
42116    if (!__pyx_ptype_4cylp_2cy_9CyPEPivot_CyPEPivot) __PYX_ERR(16, 7, __pyx_L1_error)
42117   __pyx_vtabptr_4cylp_2cy_9CyPEPivot_CyPEPivot = (struct __pyx_vtabstruct_4cylp_2cy_9CyPEPivot_CyPEPivot*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_9CyPEPivot_CyPEPivot->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_9CyPEPivot_CyPEPivot)) __PYX_ERR(16, 7, __pyx_L1_error)
42118   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42119   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyPivotPythonBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 7, __pyx_L1_error)
42120   __Pyx_GOTREF(__pyx_t_1);
42121   __pyx_ptype_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyPivotPythonBase", "CyPivotPythonBase", sizeof(struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase), __Pyx_ImportType_CheckSize_Warn);
42122    if (!__pyx_ptype_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase) __PYX_ERR(17, 7, __pyx_L1_error)
42123   __pyx_vtabptr_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase = (struct __pyx_vtabstruct_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase)) __PYX_ERR(17, 7, __pyx_L1_error)
42124   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42125   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyDualPivotPythonBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 9, __pyx_L1_error)
42126   __Pyx_GOTREF(__pyx_t_1);
42127   __pyx_ptype_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyDualPivotPythonBase", "CyDualPivotPythonBase", sizeof(struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase), __Pyx_ImportType_CheckSize_Warn);
42128    if (!__pyx_ptype_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase) __PYX_ERR(18, 9, __pyx_L1_error)
42129   __pyx_vtabptr_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase = (struct __pyx_vtabstruct_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase)) __PYX_ERR(18, 9, __pyx_L1_error)
42130   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42131   __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinMpsIO"); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 46, __pyx_L1_error)
42132   __Pyx_GOTREF(__pyx_t_1);
42133   __pyx_ptype_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO = __Pyx_ImportType(__pyx_t_1, "cylp.cy.CyCoinMpsIO", "CyCoinMpsIO", sizeof(struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO), __Pyx_ImportType_CheckSize_Warn);
42134    if (!__pyx_ptype_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO) __PYX_ERR(19, 46, __pyx_L1_error)
42135   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42136   __Pyx_RefNannyFinishContext();
42137   return 0;
42138   __pyx_L1_error:;
42139   __Pyx_XDECREF(__pyx_t_1);
42140   __Pyx_RefNannyFinishContext();
42141   return -1;
42142 }
42143 
42144 static int __Pyx_modinit_variable_import_code(void) {
42145   __Pyx_RefNannyDeclarations
42146   __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
42147   /*--- Variable import code ---*/
42148   __Pyx_RefNannyFinishContext();
42149   return 0;
42150 }
42151 
42152 static int __Pyx_modinit_function_import_code(void) {
42153   __Pyx_RefNannyDeclarations
42154   __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
42155   /*--- Function import code ---*/
42156   __Pyx_RefNannyFinishContext();
42157   return 0;
42158 }
42159 
42160 
42161 #ifndef CYTHON_NO_PYINIT_EXPORT
42162 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
42163 #elif PY_MAJOR_VERSION < 3
42164 #ifdef __cplusplus
42165 #define __Pyx_PyMODINIT_FUNC extern "C" void
42166 #else
42167 #define __Pyx_PyMODINIT_FUNC void
42168 #endif
42169 #else
42170 #ifdef __cplusplus
42171 #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
42172 #else
42173 #define __Pyx_PyMODINIT_FUNC PyObject *
42174 #endif
42175 #endif
42176 
42177 
42178 #if PY_MAJOR_VERSION < 3
42179 __Pyx_PyMODINIT_FUNC initCyClpSimplex(void) CYTHON_SMALL_CODE; /*proto*/
42180 __Pyx_PyMODINIT_FUNC initCyClpSimplex(void)
42181 #else
42182 __Pyx_PyMODINIT_FUNC PyInit_CyClpSimplex(void) CYTHON_SMALL_CODE; /*proto*/
42183 __Pyx_PyMODINIT_FUNC PyInit_CyClpSimplex(void)
42184 #if CYTHON_PEP489_MULTI_PHASE_INIT
42185 {
42186   return PyModuleDef_Init(&__pyx_moduledef);
42187 }
42188 static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
42189     #if PY_VERSION_HEX >= 0x030700A1
42190     static PY_INT64_T main_interpreter_id = -1;
42191     PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
42192     if (main_interpreter_id == -1) {
42193         main_interpreter_id = current_id;
42194         return (unlikely(current_id == -1)) ? -1 : 0;
42195     } else if (unlikely(main_interpreter_id != current_id))
42196     #else
42197     static PyInterpreterState *main_interpreter = NULL;
42198     PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
42199     if (!main_interpreter) {
42200         main_interpreter = current_interpreter;
42201     } else if (unlikely(main_interpreter != current_interpreter))
42202     #endif
42203     {
42204         PyErr_SetString(
42205             PyExc_ImportError,
42206             "Interpreter change detected - this module can only be loaded into one interpreter per process.");
42207         return -1;
42208     }
42209     return 0;
42210 }
42211 static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
42212     PyObject *value = PyObject_GetAttrString(spec, from_name);
42213     int result = 0;
42214     if (likely(value)) {
42215         if (allow_none || value != Py_None) {
42216             result = PyDict_SetItemString(moddict, to_name, value);
42217         }
42218         Py_DECREF(value);
42219     } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
42220         PyErr_Clear();
42221     } else {
42222         result = -1;
42223     }
42224     return result;
42225 }
42226 static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
42227     PyObject *module = NULL, *moddict, *modname;
42228     if (__Pyx_check_single_interpreter())
42229         return NULL;
42230     if (__pyx_m)
42231         return __Pyx_NewRef(__pyx_m);
42232     modname = PyObject_GetAttrString(spec, "name");
42233     if (unlikely(!modname)) goto bad;
42234     module = PyModule_NewObject(modname);
42235     Py_DECREF(modname);
42236     if (unlikely(!module)) goto bad;
42237     moddict = PyModule_GetDict(module);
42238     if (unlikely(!moddict)) goto bad;
42239     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
42240     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
42241     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
42242     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
42243     return module;
42244 bad:
42245     Py_XDECREF(module);
42246     return NULL;
42247 }
42248 
42249 
42250 static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyClpSimplex(PyObject *__pyx_pyinit_module)
42251 #endif
42252 #endif
42253 {
42254   __Pyx_TraceDeclarations
42255   PyObject *__pyx_t_1 = NULL;
42256   PyObject *__pyx_t_2 = NULL;
42257   PyObject *__pyx_t_3 = NULL;
42258   PyObject *__pyx_t_4 = NULL;
42259   PyObject *__pyx_t_5 = NULL;
42260   int __pyx_t_6;
42261   PyObject *__pyx_t_7 = NULL;
42262   PyObject *__pyx_t_8 = NULL;
42263   PyObject *__pyx_t_9 = NULL;
42264   PyObject *__pyx_t_10 = NULL;
42265   PyObject *__pyx_t_11 = NULL;
42266   PyObject *__pyx_t_12 = NULL;
42267   PyObject *__pyx_t_13 = NULL;
42268   int __pyx_lineno = 0;
42269   const char *__pyx_filename = NULL;
42270   int __pyx_clineno = 0;
42271   __Pyx_RefNannyDeclarations
42272   #if CYTHON_PEP489_MULTI_PHASE_INIT
42273   if (__pyx_m) {
42274     if (__pyx_m == __pyx_pyinit_module) return 0;
42275     PyErr_SetString(PyExc_RuntimeError, "Module 'CyClpSimplex' has already been imported. Re-initialisation is not supported.");
42276     return -1;
42277   }
42278   #elif PY_MAJOR_VERSION >= 3
42279   if (__pyx_m) return __Pyx_NewRef(__pyx_m);
42280   #endif
42281   #if CYTHON_REFNANNY
42282 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
42283 if (!__Pyx_RefNanny) {
42284   PyErr_Clear();
42285   __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
42286   if (!__Pyx_RefNanny)
42287       Py_FatalError("failed to import 'refnanny' module");
42288 }
42289 #endif
42290   __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_CyClpSimplex(void)", 0);
42291   if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42292   #ifdef __Pxy_PyFrame_Initialize_Offsets
42293   __Pxy_PyFrame_Initialize_Offsets();
42294   #endif
42295   __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
42296   __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
42297   __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
42298   #ifdef __Pyx_CyFunction_USED
42299   if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42300   #endif
42301   #ifdef __Pyx_FusedFunction_USED
42302   if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42303   #endif
42304   #ifdef __Pyx_Coroutine_USED
42305   if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42306   #endif
42307   #ifdef __Pyx_Generator_USED
42308   if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42309   #endif
42310   #ifdef __Pyx_AsyncGen_USED
42311   if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42312   #endif
42313   #ifdef __Pyx_StopAsyncIteration_USED
42314   if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42315   #endif
42316   /*--- Library function declarations ---*/
42317   /*--- Threads initialization code ---*/
42318   #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
42319   #ifdef WITH_THREAD /* Python build with threading support? */
42320   PyEval_InitThreads();
42321   #endif
42322   #endif
42323   /*--- Module creation code ---*/
42324   #if CYTHON_PEP489_MULTI_PHASE_INIT
42325   __pyx_m = __pyx_pyinit_module;
42326   Py_INCREF(__pyx_m);
42327   #else
42328   #if PY_MAJOR_VERSION < 3
42329   __pyx_m = Py_InitModule4("CyClpSimplex", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
42330   #else
42331   __pyx_m = PyModule_Create(&__pyx_moduledef);
42332   #endif
42333   if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
42334   #endif
42335   __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
42336   Py_INCREF(__pyx_d);
42337   __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
42338   Py_INCREF(__pyx_b);
42339   __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
42340   Py_INCREF(__pyx_cython_runtime);
42341   if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
42342   /*--- Initialize various global constants etc. ---*/
42343   if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42344   #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
42345   if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42346   #endif
42347   if (__pyx_module_is_main_cylp__cy__CyClpSimplex) {
42348     if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42349   }
42350   #if PY_MAJOR_VERSION >= 3
42351   {
42352     PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
42353     if (!PyDict_GetItemString(modules, "cylp.cy.CyClpSimplex")) {
42354       if (unlikely(PyDict_SetItemString(modules, "cylp.cy.CyClpSimplex", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
42355     }
42356   }
42357   #endif
42358   /*--- Builtin init code ---*/
42359   if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42360   /*--- Constants init code ---*/
42361   if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42362   /*--- Global type/function init code ---*/
42363   (void)__Pyx_modinit_global_init_code();
42364   (void)__Pyx_modinit_variable_export_code();
42365   if (unlikely(__Pyx_modinit_function_export_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
42366   if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
42367   if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
42368   (void)__Pyx_modinit_variable_import_code();
42369   (void)__Pyx_modinit_function_import_code();
42370   /*--- Execution code ---*/
42371   #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
42372   if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42373   #endif
42374   __Pyx_TraceCall("__Pyx_PyMODINIT_FUNC PyInit_CyClpSimplex(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error));
42375 
42376   /* "cylp/cy/CyClpSimplex.pyx":7
42377  * from __future__ import print_function
42378  *
42379  * import inspect             # <<<<<<<<<<<<<<
42380  * import os.path
42381  * from itertools import product
42382  */
42383   __pyx_t_1 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, 0, -1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error)
42384   __Pyx_GOTREF(__pyx_t_1);
42385   if (PyDict_SetItem(__pyx_d, __pyx_n_s_inspect, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error)
42386   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42387 
42388   /* "cylp/cy/CyClpSimplex.pyx":8
42389  *
42390  * import inspect
42391  * import os.path             # <<<<<<<<<<<<<<
42392  * from itertools import product
42393  * try:
42394  */
42395   __pyx_t_1 = __Pyx_Import(__pyx_n_s_os_path, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
42396   __Pyx_GOTREF(__pyx_t_1);
42397   if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_1) < 0) __PYX_ERR(0, 8, __pyx_L1_error)
42398   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42399 
42400   /* "cylp/cy/CyClpSimplex.pyx":9
42401  * import inspect
42402  * import os.path
42403  * from itertools import product             # <<<<<<<<<<<<<<
42404  * try:
42405  *     from itertools import izip
42406  */
42407   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
42408   __Pyx_GOTREF(__pyx_t_1);
42409   __Pyx_INCREF(__pyx_n_s_product);
42410   __Pyx_GIVEREF(__pyx_n_s_product);
42411   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_product);
42412   __pyx_t_2 = __Pyx_Import(__pyx_n_s_itertools, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
42413   __Pyx_GOTREF(__pyx_t_2);
42414   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42415   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
42416   __Pyx_GOTREF(__pyx_t_1);
42417   if (PyDict_SetItem(__pyx_d, __pyx_n_s_product, __pyx_t_1) < 0) __PYX_ERR(0, 9, __pyx_L1_error)
42418   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42419   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42420 
42421   /* "cylp/cy/CyClpSimplex.pyx":10
42422  * import os.path
42423  * from itertools import product
42424  * try:             # <<<<<<<<<<<<<<
42425  *     from itertools import izip
42426  * except ImportError: # Python 3 does not have izip, use zip
42427  */
42428   {
42429     __Pyx_PyThreadState_declare
42430     __Pyx_PyThreadState_assign
42431     __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
42432     __Pyx_XGOTREF(__pyx_t_3);
42433     __Pyx_XGOTREF(__pyx_t_4);
42434     __Pyx_XGOTREF(__pyx_t_5);
42435     /*try:*/ {
42436 
42437       /* "cylp/cy/CyClpSimplex.pyx":11
42438  * from itertools import product
42439  * try:
42440  *     from itertools import izip             # <<<<<<<<<<<<<<
42441  * except ImportError: # Python 3 does not have izip, use zip
42442  *     izip = zip
42443  */
42444       __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L2_error)
42445       __Pyx_GOTREF(__pyx_t_2);
42446       __Pyx_INCREF(__pyx_n_s_izip);
42447       __Pyx_GIVEREF(__pyx_n_s_izip);
42448       PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_izip);
42449       __pyx_t_1 = __Pyx_Import(__pyx_n_s_itertools, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L2_error)
42450       __Pyx_GOTREF(__pyx_t_1);
42451       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42452       __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_izip); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L2_error)
42453       __Pyx_GOTREF(__pyx_t_2);
42454       if (PyDict_SetItem(__pyx_d, __pyx_n_s_izip, __pyx_t_2) < 0) __PYX_ERR(0, 11, __pyx_L2_error)
42455       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42456       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42457 
42458       /* "cylp/cy/CyClpSimplex.pyx":10
42459  * import os.path
42460  * from itertools import product
42461  * try:             # <<<<<<<<<<<<<<
42462  *     from itertools import izip
42463  * except ImportError: # Python 3 does not have izip, use zip
42464  */
42465     }
42466     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
42467     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
42468     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
42469     goto __pyx_L7_try_end;
42470     __pyx_L2_error:;
42471     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
42472     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
42473 
42474     /* "cylp/cy/CyClpSimplex.pyx":12
42475  * try:
42476  *     from itertools import izip
42477  * except ImportError: # Python 3 does not have izip, use zip             # <<<<<<<<<<<<<<
42478  *     izip = zip
42479  * import numpy as np
42480  */
42481     __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
42482     if (__pyx_t_6) {
42483       __Pyx_AddTraceback("cylp.cy.CyClpSimplex", __pyx_clineno, __pyx_lineno, __pyx_filename);
42484       if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(0, 12, __pyx_L4_except_error)
42485       __Pyx_GOTREF(__pyx_t_1);
42486       __Pyx_GOTREF(__pyx_t_2);
42487       __Pyx_GOTREF(__pyx_t_7);
42488 
42489       /* "cylp/cy/CyClpSimplex.pyx":13
42490  *     from itertools import izip
42491  * except ImportError: # Python 3 does not have izip, use zip
42492  *     izip = zip             # <<<<<<<<<<<<<<
42493  * import numpy as np
42494  * cimport numpy as np
42495  */
42496       if (PyDict_SetItem(__pyx_d, __pyx_n_s_izip, __pyx_builtin_zip) < 0) __PYX_ERR(0, 13, __pyx_L4_except_error)
42497       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
42498       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
42499       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
42500       goto __pyx_L3_exception_handled;
42501     }
42502     goto __pyx_L4_except_error;
42503     __pyx_L4_except_error:;
42504 
42505     /* "cylp/cy/CyClpSimplex.pyx":10
42506  * import os.path
42507  * from itertools import product
42508  * try:             # <<<<<<<<<<<<<<
42509  *     from itertools import izip
42510  * except ImportError: # Python 3 does not have izip, use zip
42511  */
42512     __Pyx_XGIVEREF(__pyx_t_3);
42513     __Pyx_XGIVEREF(__pyx_t_4);
42514     __Pyx_XGIVEREF(__pyx_t_5);
42515     __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
42516     goto __pyx_L1_error;
42517     __pyx_L3_exception_handled:;
42518     __Pyx_XGIVEREF(__pyx_t_3);
42519     __Pyx_XGIVEREF(__pyx_t_4);
42520     __Pyx_XGIVEREF(__pyx_t_5);
42521     __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
42522     __pyx_L7_try_end:;
42523   }
42524 
42525   /* "cylp/cy/CyClpSimplex.pyx":14
42526  * except ImportError: # Python 3 does not have izip, use zip
42527  *     izip = zip
42528  * import numpy as np             # <<<<<<<<<<<<<<
42529  * cimport numpy as np
42530  * from scipy import sparse
42531  */
42532   __pyx_t_7 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 14, __pyx_L1_error)
42533   __Pyx_GOTREF(__pyx_t_7);
42534   if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_7) < 0) __PYX_ERR(0, 14, __pyx_L1_error)
42535   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42536 
42537   /* "cylp/cy/CyClpSimplex.pyx":16
42538  * import numpy as np
42539  * cimport numpy as np
42540  * from scipy import sparse             # <<<<<<<<<<<<<<
42541  * cimport cpython.ref as cpy_ref
42542  * from CyWolfePivot cimport CyWolfePivot
42543  */
42544   __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 16, __pyx_L1_error)
42545   __Pyx_GOTREF(__pyx_t_7);
42546   __Pyx_INCREF(__pyx_n_s_sparse);
42547   __Pyx_GIVEREF(__pyx_n_s_sparse);
42548   PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_sparse);
42549   __pyx_t_2 = __Pyx_Import(__pyx_n_s_scipy, __pyx_t_7, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error)
42550   __Pyx_GOTREF(__pyx_t_2);
42551   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42552   __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_sparse); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 16, __pyx_L1_error)
42553   __Pyx_GOTREF(__pyx_t_7);
42554   if (PyDict_SetItem(__pyx_d, __pyx_n_s_sparse, __pyx_t_7) < 0) __PYX_ERR(0, 16, __pyx_L1_error)
42555   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42556   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42557 
42558   /* "cylp/cy/CyClpSimplex.pyx":24
42559  * from cylp.cy cimport CyClpSimplex
42560  * from cylp.cy cimport CyCoinModel
42561  * from cylp.py.utils.sparseUtil import sparseConcat, csc_matrixPlus             # <<<<<<<<<<<<<<
42562  * from cylp.py.modeling.CyLPModel import CyLPVar, CyLPArray, CyLPSolution
42563  * from cylp.py.pivots.PivotPythonBase import PivotPythonBase
42564  */
42565   __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
42566   __Pyx_GOTREF(__pyx_t_2);
42567   __Pyx_INCREF(__pyx_n_s_sparseConcat);
42568   __Pyx_GIVEREF(__pyx_n_s_sparseConcat);
42569   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_sparseConcat);
42570   __Pyx_INCREF(__pyx_n_s_csc_matrixPlus);
42571   __Pyx_GIVEREF(__pyx_n_s_csc_matrixPlus);
42572   PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_csc_matrixPlus);
42573   __pyx_t_7 = __Pyx_Import(__pyx_n_s_cylp_py_utils_sparseUtil, __pyx_t_2, -1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 24, __pyx_L1_error)
42574   __Pyx_GOTREF(__pyx_t_7);
42575   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42576   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_sparseConcat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
42577   __Pyx_GOTREF(__pyx_t_2);
42578   if (PyDict_SetItem(__pyx_d, __pyx_n_s_sparseConcat, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
42579   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42580   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_csc_matrixPlus); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
42581   __Pyx_GOTREF(__pyx_t_2);
42582   if (PyDict_SetItem(__pyx_d, __pyx_n_s_csc_matrixPlus, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
42583   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42584   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42585 
42586   /* "cylp/cy/CyClpSimplex.pyx":25
42587  * from cylp.cy cimport CyCoinModel
42588  * from cylp.py.utils.sparseUtil import sparseConcat, csc_matrixPlus
42589  * from cylp.py.modeling.CyLPModel import CyLPVar, CyLPArray, CyLPSolution             # <<<<<<<<<<<<<<
42590  * from cylp.py.pivots.PivotPythonBase import PivotPythonBase
42591  * from cylp.py.pivots.DualPivotPythonBase import DualPivotPythonBase
42592  */
42593   __pyx_t_7 = PyList_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 25, __pyx_L1_error)
42594   __Pyx_GOTREF(__pyx_t_7);
42595   __Pyx_INCREF(__pyx_n_s_CyLPVar);
42596   __Pyx_GIVEREF(__pyx_n_s_CyLPVar);
42597   PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_CyLPVar);
42598   __Pyx_INCREF(__pyx_n_s_CyLPArray);
42599   __Pyx_GIVEREF(__pyx_n_s_CyLPArray);
42600   PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_s_CyLPArray);
42601   __Pyx_INCREF(__pyx_n_s_CyLPSolution);
42602   __Pyx_GIVEREF(__pyx_n_s_CyLPSolution);
42603   PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_s_CyLPSolution);
42604   __pyx_t_2 = __Pyx_Import(__pyx_n_s_cylp_py_modeling_CyLPModel, __pyx_t_7, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error)
42605   __Pyx_GOTREF(__pyx_t_2);
42606   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42607   __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPVar); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 25, __pyx_L1_error)
42608   __Pyx_GOTREF(__pyx_t_7);
42609   if (PyDict_SetItem(__pyx_d, __pyx_n_s_CyLPVar, __pyx_t_7) < 0) __PYX_ERR(0, 25, __pyx_L1_error)
42610   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42611   __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 25, __pyx_L1_error)
42612   __Pyx_GOTREF(__pyx_t_7);
42613   if (PyDict_SetItem(__pyx_d, __pyx_n_s_CyLPArray, __pyx_t_7) < 0) __PYX_ERR(0, 25, __pyx_L1_error)
42614   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42615   __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 25, __pyx_L1_error)
42616   __Pyx_GOTREF(__pyx_t_7);
42617   if (PyDict_SetItem(__pyx_d, __pyx_n_s_CyLPSolution, __pyx_t_7) < 0) __PYX_ERR(0, 25, __pyx_L1_error)
42618   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42619   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42620 
42621   /* "cylp/cy/CyClpSimplex.pyx":26
42622  * from cylp.py.utils.sparseUtil import sparseConcat, csc_matrixPlus
42623  * from cylp.py.modeling.CyLPModel import CyLPVar, CyLPArray, CyLPSolution
42624  * from cylp.py.pivots.PivotPythonBase import PivotPythonBase             # <<<<<<<<<<<<<<
42625  * from cylp.py.pivots.DualPivotPythonBase import DualPivotPythonBase
42626  * from cylp.py.modeling.CyLPModel import CyLPModel
42627  */
42628   __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
42629   __Pyx_GOTREF(__pyx_t_2);
42630   __Pyx_INCREF(__pyx_n_s_PivotPythonBase);
42631   __Pyx_GIVEREF(__pyx_n_s_PivotPythonBase);
42632   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PivotPythonBase);
42633   __pyx_t_7 = __Pyx_Import(__pyx_n_s_cylp_py_pivots_PivotPythonBase, __pyx_t_2, -1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 26, __pyx_L1_error)
42634   __Pyx_GOTREF(__pyx_t_7);
42635   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42636   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_PivotPythonBase); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
42637   __Pyx_GOTREF(__pyx_t_2);
42638   if (PyDict_SetItem(__pyx_d, __pyx_n_s_PivotPythonBase, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
42639   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42640   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42641 
42642   /* "cylp/cy/CyClpSimplex.pyx":27
42643  * from cylp.py.modeling.CyLPModel import CyLPVar, CyLPArray, CyLPSolution
42644  * from cylp.py.pivots.PivotPythonBase import PivotPythonBase
42645  * from cylp.py.pivots.DualPivotPythonBase import DualPivotPythonBase             # <<<<<<<<<<<<<<
42646  * from cylp.py.modeling.CyLPModel import CyLPModel
42647  * from cylp.cy cimport CyCoinMpsIO
42648  */
42649   __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27, __pyx_L1_error)
42650   __Pyx_GOTREF(__pyx_t_7);
42651   __Pyx_INCREF(__pyx_n_s_DualPivotPythonBase);
42652   __Pyx_GIVEREF(__pyx_n_s_DualPivotPythonBase);
42653   PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_DualPivotPythonBase);
42654   __pyx_t_2 = __Pyx_Import(__pyx_n_s_cylp_py_pivots_DualPivotPythonBa, __pyx_t_7, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error)
42655   __Pyx_GOTREF(__pyx_t_2);
42656   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42657   __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_DualPivotPythonBase); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27, __pyx_L1_error)
42658   __Pyx_GOTREF(__pyx_t_7);
42659   if (PyDict_SetItem(__pyx_d, __pyx_n_s_DualPivotPythonBase, __pyx_t_7) < 0) __PYX_ERR(0, 27, __pyx_L1_error)
42660   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42661   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42662 
42663   /* "cylp/cy/CyClpSimplex.pyx":28
42664  * from cylp.py.pivots.PivotPythonBase import PivotPythonBase
42665  * from cylp.py.pivots.DualPivotPythonBase import DualPivotPythonBase
42666  * from cylp.py.modeling.CyLPModel import CyLPModel             # <<<<<<<<<<<<<<
42667  * from cylp.cy cimport CyCoinMpsIO
42668  *
42669  */
42670   __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error)
42671   __Pyx_GOTREF(__pyx_t_2);
42672   __Pyx_INCREF(__pyx_n_s_CyLPModel);
42673   __Pyx_GIVEREF(__pyx_n_s_CyLPModel);
42674   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_CyLPModel);
42675   __pyx_t_7 = __Pyx_Import(__pyx_n_s_cylp_py_modeling_CyLPModel, __pyx_t_2, -1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 28, __pyx_L1_error)
42676   __Pyx_GOTREF(__pyx_t_7);
42677   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42678   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error)
42679   __Pyx_GOTREF(__pyx_t_2);
42680   if (PyDict_SetItem(__pyx_d, __pyx_n_s_CyLPModel, __pyx_t_2) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
42681   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42682   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42683 
42684   /* "cylp/cy/CyClpSimplex.pyx":32
42685  *
42686  * # Initialize numpy
42687  * np.import_array()             # <<<<<<<<<<<<<<
42688  *
42689  * problemStatus = ['optimal', 'primal infeasible', 'dual infeasible',
42690  */
42691   __pyx_t_6 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 32, __pyx_L1_error)
42692 
42693   /* "cylp/cy/CyClpSimplex.pyx":34
42694  * np.import_array()
42695  *
42696  * problemStatus = ['optimal', 'primal infeasible', 'dual infeasible',             # <<<<<<<<<<<<<<
42697  *                 'stopped on iterations or time',
42698  *                 'stopped due to errors',
42699  */
42700   __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 34, __pyx_L1_error)
42701   __Pyx_GOTREF(__pyx_t_7);
42702   __Pyx_INCREF(__pyx_n_s_optimal);
42703   __Pyx_GIVEREF(__pyx_n_s_optimal);
42704   PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_optimal);
42705   __Pyx_INCREF(__pyx_kp_s_primal_infeasible);
42706   __Pyx_GIVEREF(__pyx_kp_s_primal_infeasible);
42707   PyList_SET_ITEM(__pyx_t_7, 1, __pyx_kp_s_primal_infeasible);
42708   __Pyx_INCREF(__pyx_kp_s_dual_infeasible);
42709   __Pyx_GIVEREF(__pyx_kp_s_dual_infeasible);
42710   PyList_SET_ITEM(__pyx_t_7, 2, __pyx_kp_s_dual_infeasible);
42711   __Pyx_INCREF(__pyx_kp_s_stopped_on_iterations_or_time);
42712   __Pyx_GIVEREF(__pyx_kp_s_stopped_on_iterations_or_time);
42713   PyList_SET_ITEM(__pyx_t_7, 3, __pyx_kp_s_stopped_on_iterations_or_time);
42714   __Pyx_INCREF(__pyx_kp_s_stopped_due_to_errors);
42715   __Pyx_GIVEREF(__pyx_kp_s_stopped_due_to_errors);
42716   PyList_SET_ITEM(__pyx_t_7, 4, __pyx_kp_s_stopped_due_to_errors);
42717   __Pyx_INCREF(__pyx_kp_s_stopped_by_event_handler_virtual);
42718   __Pyx_GIVEREF(__pyx_kp_s_stopped_by_event_handler_virtual);
42719   PyList_SET_ITEM(__pyx_t_7, 5, __pyx_kp_s_stopped_by_event_handler_virtual);
42720   if (PyDict_SetItem(__pyx_d, __pyx_n_s_problemStatus, __pyx_t_7) < 0) __PYX_ERR(0, 34, __pyx_L1_error)
42721   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42722 
42723   /* "cylp/cy/CyClpSimplex.pyx":40
42724  *                                     'ClpEventHandler::event())']
42725  *
42726  * CLP_variableStatusEnum = [0x00, 0x01, 0x02, 0x03, 0x04, 0x05]             # <<<<<<<<<<<<<<
42727  * StatusToInt = {'free' : 0, 'basic' : 1, 'atUpperBound' : 2,
42728  *                              'atLowerBound' : 3, 'superBasic' : 4,'fixed' : 5}
42729  */
42730   __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 40, __pyx_L1_error)
42731   __Pyx_GOTREF(__pyx_t_7);
42732   __Pyx_INCREF(__pyx_int_0);
42733   __Pyx_GIVEREF(__pyx_int_0);
42734   PyList_SET_ITEM(__pyx_t_7, 0, __pyx_int_0);
42735   __Pyx_INCREF(__pyx_int_1);
42736   __Pyx_GIVEREF(__pyx_int_1);
42737   PyList_SET_ITEM(__pyx_t_7, 1, __pyx_int_1);
42738   __Pyx_INCREF(__pyx_int_2);
42739   __Pyx_GIVEREF(__pyx_int_2);
42740   PyList_SET_ITEM(__pyx_t_7, 2, __pyx_int_2);
42741   __Pyx_INCREF(__pyx_int_3);
42742   __Pyx_GIVEREF(__pyx_int_3);
42743   PyList_SET_ITEM(__pyx_t_7, 3, __pyx_int_3);
42744   __Pyx_INCREF(__pyx_int_4);
42745   __Pyx_GIVEREF(__pyx_int_4);
42746   PyList_SET_ITEM(__pyx_t_7, 4, __pyx_int_4);
42747   __Pyx_INCREF(__pyx_int_5);
42748   __Pyx_GIVEREF(__pyx_int_5);
42749   PyList_SET_ITEM(__pyx_t_7, 5, __pyx_int_5);
42750   if (PyDict_SetItem(__pyx_d, __pyx_n_s_CLP_variableStatusEnum, __pyx_t_7) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
42751   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42752 
42753   /* "cylp/cy/CyClpSimplex.pyx":41
42754  *
42755  * CLP_variableStatusEnum = [0x00, 0x01, 0x02, 0x03, 0x04, 0x05]
42756  * StatusToInt = {'free' : 0, 'basic' : 1, 'atUpperBound' : 2,             # <<<<<<<<<<<<<<
42757  *                              'atLowerBound' : 3, 'superBasic' : 4,'fixed' : 5}
42758  * IntToStatus = ['free', 'basic', 'atUpperBound',
42759  */
42760   __pyx_t_7 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 41, __pyx_L1_error)
42761   __Pyx_GOTREF(__pyx_t_7);
42762   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_free, __pyx_int_0) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
42763   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_basic, __pyx_int_1) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
42764   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_atUpperBound, __pyx_int_2) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
42765   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_atLowerBound, __pyx_int_3) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
42766   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_superBasic, __pyx_int_4) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
42767   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fixed, __pyx_int_5) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
42768   if (PyDict_SetItem(__pyx_d, __pyx_n_s_StatusToInt, __pyx_t_7) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
42769   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42770 
42771   /* "cylp/cy/CyClpSimplex.pyx":43
42772  * StatusToInt = {'free' : 0, 'basic' : 1, 'atUpperBound' : 2,
42773  *                              'atLowerBound' : 3, 'superBasic' : 4,'fixed' : 5}
42774  * IntToStatus = ['free', 'basic', 'atUpperBound',             # <<<<<<<<<<<<<<
42775  *                              'atLowerBound', 'superBasic','fixed']
42776  *
42777  */
42778   __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 43, __pyx_L1_error)
42779   __Pyx_GOTREF(__pyx_t_7);
42780   __Pyx_INCREF(__pyx_n_s_free);
42781   __Pyx_GIVEREF(__pyx_n_s_free);
42782   PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_free);
42783   __Pyx_INCREF(__pyx_n_s_basic);
42784   __Pyx_GIVEREF(__pyx_n_s_basic);
42785   PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_s_basic);
42786   __Pyx_INCREF(__pyx_n_s_atUpperBound);
42787   __Pyx_GIVEREF(__pyx_n_s_atUpperBound);
42788   PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_s_atUpperBound);
42789   __Pyx_INCREF(__pyx_n_s_atLowerBound);
42790   __Pyx_GIVEREF(__pyx_n_s_atLowerBound);
42791   PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_s_atLowerBound);
42792   __Pyx_INCREF(__pyx_n_s_superBasic);
42793   __Pyx_GIVEREF(__pyx_n_s_superBasic);
42794   PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_s_superBasic);
42795   __Pyx_INCREF(__pyx_n_s_fixed);
42796   __Pyx_GIVEREF(__pyx_n_s_fixed);
42797   PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_s_fixed);
42798   if (PyDict_SetItem(__pyx_d, __pyx_n_s_IntToStatus, __pyx_t_7) < 0) __PYX_ERR(0, 43, __pyx_L1_error)
42799   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42800 
42801   /* "cylp/cy/CyClpSimplex.pyx":46
42802  *                              'atLowerBound', 'superBasic','fixed']
42803  *
42804  * startFinishOptionsDic = {'x' : 1,  #do not delete work areas             # <<<<<<<<<<<<<<
42805  *                       'f' : 2, #use old factorization
42806  *                       's' : 4} #skip initialization of work areas
42807  */
42808   __pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 46, __pyx_L1_error)
42809   __Pyx_GOTREF(__pyx_t_7);
42810   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_x, __pyx_int_1) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
42811   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_f, __pyx_int_2) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
42812   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_s, __pyx_int_4) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
42813   if (PyDict_SetItem(__pyx_d, __pyx_n_s_startFinishOptionsDic, __pyx_t_7) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
42814   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42815 
42816   /* "cylp/cy/CyClpSimplex.pyx":1828
42817  *                                      objSense)
42818  *
42819  *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,             # <<<<<<<<<<<<<<
42820  *                         decimals=5, objSense=0.0, useRowNames=1):
42821  *         try:
42822  */
42823   __pyx_t_7 = __Pyx_PyInt_From_long(__Pyx_pow_long(10, -5L)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1828, __pyx_L1_error)
42824   __Pyx_GOTREF(__pyx_t_7);
42825   __pyx_k__15 = __pyx_t_7;
42826   __Pyx_GIVEREF(__pyx_t_7);
42827   __pyx_t_7 = 0;
42828 
42829   /* "cylp/cy/CyClpSimplex.pyx":1851
42830  *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
42831  *
42832  *     def readLp(self, char *filename, epsilon=10**-5):             # <<<<<<<<<<<<<<
42833  *         return self.CppSelf.readLp(filename, epsilon)
42834  *
42835  */
42836   __pyx_t_7 = __Pyx_PyInt_From_long(__Pyx_pow_long(10, -5L)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1851, __pyx_L1_error)
42837   __Pyx_GOTREF(__pyx_t_7);
42838   __pyx_k__16 = __pyx_t_7;
42839   __Pyx_GIVEREF(__pyx_t_7);
42840   __pyx_t_7 = 0;
42841 
42842   /* "cylp/cy/CyClpSimplex.pyx":2145
42843  *                  np.ndarray[np.double_t, ndim=1] rowlb,
42844  *                  np.ndarray[np.double_t, ndim=1] rowub,
42845  *                  np.ndarray[np.double_t, ndim=1] rowObjective=np.array([])):             # <<<<<<<<<<<<<<
42846  *         cdef double* rd
42847  *         if len(rowObjective) == 0:
42848  */
42849   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2145, __pyx_L1_error)
42850   __Pyx_GOTREF(__pyx_t_7);
42851   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2145, __pyx_L1_error)
42852   __Pyx_GOTREF(__pyx_t_2);
42853   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42854   __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2145, __pyx_L1_error)
42855   __Pyx_GOTREF(__pyx_t_7);
42856   __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2145, __pyx_L1_error)
42857   __Pyx_GOTREF(__pyx_t_1);
42858   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42859   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42860   if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 2145, __pyx_L1_error)
42861   __pyx_k__20 = ((PyArrayObject *)__pyx_t_1);
42862   __Pyx_GIVEREF(__pyx_t_1);
42863   __pyx_t_1 = 0;
42864 
42865   /* "cylp/cy/CyClpSimplex.pyx":2178
42866  *
42867  *
42868  * def getModelExample():             # <<<<<<<<<<<<<<
42869  *     '''
42870  *     Return a model example to be used in doctests.
42871  */
42872   __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4cylp_2cy_12CyClpSimplex_1getModelExample, NULL, __pyx_n_s_cylp_cy_CyClpSimplex); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2178, __pyx_L1_error)
42873   __Pyx_GOTREF(__pyx_t_1);
42874   if (PyDict_SetItem(__pyx_d, __pyx_n_s_getModelExample, __pyx_t_1) < 0) __PYX_ERR(0, 2178, __pyx_L1_error)
42875   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42876 
42877   /* "cylp/cy/CyClpSimplex.pyx":2212
42878  *
42879  *
42880  * def getMpsExample():             # <<<<<<<<<<<<<<
42881  *     '''
42882  *     Return full path to an MPS example file for doctests
42883  */
42884   __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4cylp_2cy_12CyClpSimplex_5getMpsExample, NULL, __pyx_n_s_cylp_cy_CyClpSimplex); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2212, __pyx_L1_error)
42885   __Pyx_GOTREF(__pyx_t_1);
42886   if (PyDict_SetItem(__pyx_d, __pyx_n_s_getMpsExample, __pyx_t_1) < 0) __PYX_ERR(0, 2212, __pyx_L1_error)
42887   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42888 
42889   /* "cylp/cy/CyClpSimplex.pyx":2233
42890  *
42891  * cdef class VarStatus:
42892  *     free = 0             # <<<<<<<<<<<<<<
42893  *     basic = 1
42894  *     atUpperBound = 2
42895  */
42896   if (PyDict_SetItem((PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus->tp_dict, __pyx_n_s_free, __pyx_int_0) < 0) __PYX_ERR(0, 2233, __pyx_L1_error)
42897   PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);
42898 
42899   /* "cylp/cy/CyClpSimplex.pyx":2234
42900  * cdef class VarStatus:
42901  *     free = 0
42902  *     basic = 1             # <<<<<<<<<<<<<<
42903  *     atUpperBound = 2
42904  *     atLowerBound = 3
42905  */
42906   if (PyDict_SetItem((PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus->tp_dict, __pyx_n_s_basic, __pyx_int_1) < 0) __PYX_ERR(0, 2234, __pyx_L1_error)
42907   PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);
42908 
42909   /* "cylp/cy/CyClpSimplex.pyx":2235
42910  *     free = 0
42911  *     basic = 1
42912  *     atUpperBound = 2             # <<<<<<<<<<<<<<
42913  *     atLowerBound = 3
42914  *     superBasic = 4
42915  */
42916   if (PyDict_SetItem((PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus->tp_dict, __pyx_n_s_atUpperBound, __pyx_int_2) < 0) __PYX_ERR(0, 2235, __pyx_L1_error)
42917   PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);
42918 
42919   /* "cylp/cy/CyClpSimplex.pyx":2236
42920  *     basic = 1
42921  *     atUpperBound = 2
42922  *     atLowerBound = 3             # <<<<<<<<<<<<<<
42923  *     superBasic = 4
42924  *     fixed = 5
42925  */
42926   if (PyDict_SetItem((PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus->tp_dict, __pyx_n_s_atLowerBound, __pyx_int_3) < 0) __PYX_ERR(0, 2236, __pyx_L1_error)
42927   PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);
42928 
42929   /* "cylp/cy/CyClpSimplex.pyx":2237
42930  *     atUpperBound = 2
42931  *     atLowerBound = 3
42932  *     superBasic = 4             # <<<<<<<<<<<<<<
42933  *     fixed = 5
42934  *     status_ = np.array([free,
42935  */
42936   if (PyDict_SetItem((PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus->tp_dict, __pyx_n_s_superBasic, __pyx_int_4) < 0) __PYX_ERR(0, 2237, __pyx_L1_error)
42937   PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);
42938 
42939   /* "cylp/cy/CyClpSimplex.pyx":2238
42940  *     atLowerBound = 3
42941  *     superBasic = 4
42942  *     fixed = 5             # <<<<<<<<<<<<<<
42943  *     status_ = np.array([free,
42944  *                         basic,
42945  */
42946   if (PyDict_SetItem((PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus->tp_dict, __pyx_n_s_fixed, __pyx_int_5) < 0) __PYX_ERR(0, 2238, __pyx_L1_error)
42947   PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);
42948 
42949   /* "cylp/cy/CyClpSimplex.pyx":2239
42950  *     superBasic = 4
42951  *     fixed = 5
42952  *     status_ = np.array([free,             # <<<<<<<<<<<<<<
42953  *                         basic,
42954  *                         atUpperBound,
42955  */
42956   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2239, __pyx_L1_error)
42957   __Pyx_GOTREF(__pyx_t_7);
42958   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2239, __pyx_L1_error)
42959   __Pyx_GOTREF(__pyx_t_2);
42960   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
42961   __Pyx_GetNameInClass(__pyx_t_7, (PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus, __pyx_n_s_free); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2239, __pyx_L1_error)
42962   __Pyx_GOTREF(__pyx_t_7);
42963 
42964   /* "cylp/cy/CyClpSimplex.pyx":2240
42965  *     fixed = 5
42966  *     status_ = np.array([free,
42967  *                         basic,             # <<<<<<<<<<<<<<
42968  *                         atUpperBound,
42969  *                         atLowerBound,
42970  */
42971   __Pyx_GetNameInClass(__pyx_t_8, (PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus, __pyx_n_s_basic); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2240, __pyx_L1_error)
42972   __Pyx_GOTREF(__pyx_t_8);
42973 
42974   /* "cylp/cy/CyClpSimplex.pyx":2241
42975  *     status_ = np.array([free,
42976  *                         basic,
42977  *                         atUpperBound,             # <<<<<<<<<<<<<<
42978  *                         atLowerBound,
42979  *                         superBasic,
42980  */
42981   __Pyx_GetNameInClass(__pyx_t_9, (PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus, __pyx_n_s_atUpperBound); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2241, __pyx_L1_error)
42982   __Pyx_GOTREF(__pyx_t_9);
42983 
42984   /* "cylp/cy/CyClpSimplex.pyx":2242
42985  *                         basic,
42986  *                         atUpperBound,
42987  *                         atLowerBound,             # <<<<<<<<<<<<<<
42988  *                         superBasic,
42989  *                         fixed])
42990  */
42991   __Pyx_GetNameInClass(__pyx_t_10, (PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus, __pyx_n_s_atLowerBound); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2242, __pyx_L1_error)
42992   __Pyx_GOTREF(__pyx_t_10);
42993 
42994   /* "cylp/cy/CyClpSimplex.pyx":2243
42995  *                         atUpperBound,
42996  *                         atLowerBound,
42997  *                         superBasic,             # <<<<<<<<<<<<<<
42998  *                         fixed])
42999  */
43000   __Pyx_GetNameInClass(__pyx_t_11, (PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus, __pyx_n_s_superBasic); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2243, __pyx_L1_error)
43001   __Pyx_GOTREF(__pyx_t_11);
43002 
43003   /* "cylp/cy/CyClpSimplex.pyx":2244
43004  *                         atLowerBound,
43005  *                         superBasic,
43006  *                         fixed])             # <<<<<<<<<<<<<<
43007  */
43008   __Pyx_GetNameInClass(__pyx_t_12, (PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus, __pyx_n_s_fixed); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2244, __pyx_L1_error)
43009   __Pyx_GOTREF(__pyx_t_12);
43010 
43011   /* "cylp/cy/CyClpSimplex.pyx":2239
43012  *     superBasic = 4
43013  *     fixed = 5
43014  *     status_ = np.array([free,             # <<<<<<<<<<<<<<
43015  *                         basic,
43016  *                         atUpperBound,
43017  */
43018   __pyx_t_13 = PyList_New(6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2239, __pyx_L1_error)
43019   __Pyx_GOTREF(__pyx_t_13);
43020   __Pyx_GIVEREF(__pyx_t_7);
43021   PyList_SET_ITEM(__pyx_t_13, 0, __pyx_t_7);
43022   __Pyx_GIVEREF(__pyx_t_8);
43023   PyList_SET_ITEM(__pyx_t_13, 1, __pyx_t_8);
43024   __Pyx_GIVEREF(__pyx_t_9);
43025   PyList_SET_ITEM(__pyx_t_13, 2, __pyx_t_9);
43026   __Pyx_GIVEREF(__pyx_t_10);
43027   PyList_SET_ITEM(__pyx_t_13, 3, __pyx_t_10);
43028   __Pyx_GIVEREF(__pyx_t_11);
43029   PyList_SET_ITEM(__pyx_t_13, 4, __pyx_t_11);
43030   __Pyx_GIVEREF(__pyx_t_12);
43031   PyList_SET_ITEM(__pyx_t_13, 5, __pyx_t_12);
43032   __pyx_t_7 = 0;
43033   __pyx_t_8 = 0;
43034   __pyx_t_9 = 0;
43035   __pyx_t_10 = 0;
43036   __pyx_t_11 = 0;
43037   __pyx_t_12 = 0;
43038   __pyx_t_12 = NULL;
43039   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
43040     __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2);
43041     if (likely(__pyx_t_12)) {
43042       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
43043       __Pyx_INCREF(__pyx_t_12);
43044       __Pyx_INCREF(function);
43045       __Pyx_DECREF_SET(__pyx_t_2, function);
43046     }
43047   }
43048   __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_12, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_13);
43049   __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
43050   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
43051   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2239, __pyx_L1_error)
43052   __Pyx_GOTREF(__pyx_t_1);
43053   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
43054   if (PyDict_SetItem((PyObject *)__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus->tp_dict, __pyx_n_s_status_2, __pyx_t_1) < 0) __PYX_ERR(0, 2239, __pyx_L1_error)
43055   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43056   PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);
43057 
43058   /* "(tree fragment)":1
43059  * def __pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
43060  *     cdef object __pyx_PickleError
43061  *     cdef object __pyx_result
43062  */
43063   __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4cylp_2cy_12CyClpSimplex_7__pyx_unpickle_VarStatus, NULL, __pyx_n_s_cylp_cy_CyClpSimplex); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
43064   __Pyx_GOTREF(__pyx_t_1);
43065   if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_VarStatus, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
43066   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43067 
43068   /* "cylp/cy/CyClpSimplex.pyx":1
43069  * # cython: c_string_type=str, c_string_encoding=ascii             # <<<<<<<<<<<<<<
43070  * # cython: profile=True
43071  * # cython: embedsignature=True
43072  */
43073   __pyx_t_1 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
43074   __Pyx_GOTREF(__pyx_t_1);
43075   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_CyClpSimplex_setVariableStatus_l, __pyx_kp_u_Set_the_status_of_a_variable_ar) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43076   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_CyClpSimplex_setConstraintStatus, __pyx_kp_u_Set_the_status_of_a_constraint) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43077   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_CyClpSimplex_initialSolve_line_1, __pyx_kp_u_Run_CLP_s_initialSolve_It_does) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43078   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_CyClpSimplex_initialPrimalSolve, __pyx_kp_u_Run_CLP_s_initalPrimalSolve_The) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43079   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_CyClpSimplex_initialDualSolve_li, __pyx_kp_u_Run_CLP_s_initalPrimalSolve_The_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43080   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_CyClpSimplex_dual_line_1577, __pyx_kp_u_Runs_CLP_dual_simplex_Usage_Exa) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43081   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_CyClpSimplex_setInteger_line_167, __pyx_kp_u_if_arg_is_an_integer_mark_varia) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43082   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_CyClpSimplex_loadFromCyLPModel_l, __pyx_kp_u_Set_the_coefficient_matrix_cons) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43083   if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43084   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43085 
43086   /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045
43087  *         raise ImportError("numpy.core.umath failed to import")
43088  *
43089  * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
43090  *     try:
43091  *         _import_umath()
43092  */
43093   __Pyx_TraceReturn(Py_None, 0);
43094 
43095   /*--- Wrapped vars code ---*/
43096 
43097   goto __pyx_L0;
43098   __pyx_L1_error:;
43099   __Pyx_XDECREF(__pyx_t_1);
43100   __Pyx_XDECREF(__pyx_t_2);
43101   __Pyx_XDECREF(__pyx_t_7);
43102   __Pyx_XDECREF(__pyx_t_8);
43103   __Pyx_XDECREF(__pyx_t_9);
43104   __Pyx_XDECREF(__pyx_t_10);
43105   __Pyx_XDECREF(__pyx_t_11);
43106   __Pyx_XDECREF(__pyx_t_12);
43107   __Pyx_XDECREF(__pyx_t_13);
43108   if (__pyx_m) {
43109     if (__pyx_d) {
43110       __Pyx_AddTraceback("init cylp.cy.CyClpSimplex", __pyx_clineno, __pyx_lineno, __pyx_filename);
43111     }
43112     Py_CLEAR(__pyx_m);
43113   } else if (!PyErr_Occurred()) {
43114     PyErr_SetString(PyExc_ImportError, "init cylp.cy.CyClpSimplex");
43115   }
43116   __pyx_L0:;
43117   __Pyx_RefNannyFinishContext();
43118   #if CYTHON_PEP489_MULTI_PHASE_INIT
43119   return (__pyx_m != NULL) ? 0 : -1;
43120   #elif PY_MAJOR_VERSION >= 3
43121   return __pyx_m;
43122   #else
43123   return;
43124   #endif
43125 }
43126 
43127 /* --- Runtime support code --- */
43128 /* Refnanny */
43129 #if CYTHON_REFNANNY
43130 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
43131     PyObject *m = NULL, *p = NULL;
43132     void *r = NULL;
43133     m = PyImport_ImportModule(modname);
43134     if (!m) goto end;
43135     p = PyObject_GetAttrString(m, "RefNannyAPI");
43136     if (!p) goto end;
43137     r = PyLong_AsVoidPtr(p);
43138 end:
43139     Py_XDECREF(p);
43140     Py_XDECREF(m);
43141     return (__Pyx_RefNannyAPIStruct *)r;
43142 }
43143 #endif
43144 
43145 /* PyObjectGetAttrStr */
43146 #if CYTHON_USE_TYPE_SLOTS
43147 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
43148     PyTypeObject* tp = Py_TYPE(obj);
43149     if (likely(tp->tp_getattro))
43150         return tp->tp_getattro(obj, attr_name);
43151 #if PY_MAJOR_VERSION < 3
43152     if (likely(tp->tp_getattr))
43153         return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
43154 #endif
43155     return PyObject_GetAttr(obj, attr_name);
43156 }
43157 #endif
43158 
43159 /* GetBuiltinName */
43160 static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
43161     PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
43162     if (unlikely(!result)) {
43163         PyErr_Format(PyExc_NameError,
43164 #if PY_MAJOR_VERSION >= 3
43165             "name '%U' is not defined", name);
43166 #else
43167             "name '%.200s' is not defined", PyString_AS_STRING(name));
43168 #endif
43169     }
43170     return result;
43171 }
43172 
43173 /* RaiseDoubleKeywords */
43174 static void __Pyx_RaiseDoubleKeywordsError(
43175     const char* func_name,
43176     PyObject* kw_name)
43177 {
43178     PyErr_Format(PyExc_TypeError,
43179         #if PY_MAJOR_VERSION >= 3
43180         "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
43181         #else
43182         "%s() got multiple values for keyword argument '%s'", func_name,
43183         PyString_AsString(kw_name));
43184         #endif
43185 }
43186 
43187 /* ParseKeywords */
43188 static int __Pyx_ParseOptionalKeywords(
43189     PyObject *kwds,
43190     PyObject **argnames[],
43191     PyObject *kwds2,
43192     PyObject *values[],
43193     Py_ssize_t num_pos_args,
43194     const char* function_name)
43195 {
43196     PyObject *key = 0, *value = 0;
43197     Py_ssize_t pos = 0;
43198     PyObject*** name;
43199     PyObject*** first_kw_arg = argnames + num_pos_args;
43200     while (PyDict_Next(kwds, &pos, &key, &value)) {
43201         name = first_kw_arg;
43202         while (*name && (**name != key)) name++;
43203         if (*name) {
43204             values[name-argnames] = value;
43205             continue;
43206         }
43207         name = first_kw_arg;
43208         #if PY_MAJOR_VERSION < 3
43209         if (likely(PyString_Check(key))) {
43210             while (*name) {
43211                 if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
43212                         && _PyString_Eq(**name, key)) {
43213                     values[name-argnames] = value;
43214                     break;
43215                 }
43216                 name++;
43217             }
43218             if (*name) continue;
43219             else {
43220                 PyObject*** argname = argnames;
43221                 while (argname != first_kw_arg) {
43222                     if ((**argname == key) || (
43223                             (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
43224                              && _PyString_Eq(**argname, key))) {
43225                         goto arg_passed_twice;
43226                     }
43227                     argname++;
43228                 }
43229             }
43230         } else
43231         #endif
43232         if (likely(PyUnicode_Check(key))) {
43233             while (*name) {
43234                 int cmp = (**name == key) ? 0 :
43235                 #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
43236                     (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
43237                 #endif
43238                     PyUnicode_Compare(**name, key);
43239                 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
43240                 if (cmp == 0) {
43241                     values[name-argnames] = value;
43242                     break;
43243                 }
43244                 name++;
43245             }
43246             if (*name) continue;
43247             else {
43248                 PyObject*** argname = argnames;
43249                 while (argname != first_kw_arg) {
43250                     int cmp = (**argname == key) ? 0 :
43251                     #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
43252                         (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
43253                     #endif
43254                         PyUnicode_Compare(**argname, key);
43255                     if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
43256                     if (cmp == 0) goto arg_passed_twice;
43257                     argname++;
43258                 }
43259             }
43260         } else
43261             goto invalid_keyword_type;
43262         if (kwds2) {
43263             if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
43264         } else {
43265             goto invalid_keyword;
43266         }
43267     }
43268     return 0;
43269 arg_passed_twice:
43270     __Pyx_RaiseDoubleKeywordsError(function_name, key);
43271     goto bad;
43272 invalid_keyword_type:
43273     PyErr_Format(PyExc_TypeError,
43274         "%.200s() keywords must be strings", function_name);
43275     goto bad;
43276 invalid_keyword:
43277     PyErr_Format(PyExc_TypeError,
43278     #if PY_MAJOR_VERSION < 3
43279         "%.200s() got an unexpected keyword argument '%.200s'",
43280         function_name, PyString_AsString(key));
43281     #else
43282         "%s() got an unexpected keyword argument '%U'",
43283         function_name, key);
43284     #endif
43285 bad:
43286     return -1;
43287 }
43288 
43289 /* RaiseArgTupleInvalid */
43290 static void __Pyx_RaiseArgtupleInvalid(
43291     const char* func_name,
43292     int exact,
43293     Py_ssize_t num_min,
43294     Py_ssize_t num_max,
43295     Py_ssize_t num_found)
43296 {
43297     Py_ssize_t num_expected;
43298     const char *more_or_less;
43299     if (num_found < num_min) {
43300         num_expected = num_min;
43301         more_or_less = "at least";
43302     } else {
43303         num_expected = num_max;
43304         more_or_less = "at most";
43305     }
43306     if (exact) {
43307         more_or_less = "exactly";
43308     }
43309     PyErr_Format(PyExc_TypeError,
43310                  "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
43311                  func_name, more_or_less, num_expected,
43312                  (num_expected == 1) ? "" : "s", num_found);
43313 }
43314 
43315 /* PyErrFetchRestore */
43316 #if CYTHON_FAST_THREAD_STATE
43317 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
43318     PyObject *tmp_type, *tmp_value, *tmp_tb;
43319     tmp_type = tstate->curexc_type;
43320     tmp_value = tstate->curexc_value;
43321     tmp_tb = tstate->curexc_traceback;
43322     tstate->curexc_type = type;
43323     tstate->curexc_value = value;
43324     tstate->curexc_traceback = tb;
43325     Py_XDECREF(tmp_type);
43326     Py_XDECREF(tmp_value);
43327     Py_XDECREF(tmp_tb);
43328 }
43329 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
43330     *type = tstate->curexc_type;
43331     *value = tstate->curexc_value;
43332     *tb = tstate->curexc_traceback;
43333     tstate->curexc_type = 0;
43334     tstate->curexc_value = 0;
43335     tstate->curexc_traceback = 0;
43336 }
43337 #endif
43338 
43339 /* Profile */
43340 #if CYTHON_PROFILE
43341 static int __Pyx_TraceSetupAndCall(PyCodeObject** code,
43342                                    PyFrameObject** frame,
43343                                    PyThreadState* tstate,
43344                                    const char *funcname,
43345                                    const char *srcfile,
43346                                    int firstlineno) {
43347     PyObject *type, *value, *traceback;
43348     int retval;
43349     if (*frame == NULL || !CYTHON_PROFILE_REUSE_FRAME) {
43350         if (*code == NULL) {
43351             *code = __Pyx_createFrameCodeObject(funcname, srcfile, firstlineno);
43352             if (*code == NULL) return 0;
43353         }
43354         *frame = PyFrame_New(
43355             tstate,                          /*PyThreadState *tstate*/
43356             *code,                           /*PyCodeObject *code*/
43357             __pyx_d,                  /*PyObject *globals*/
43358             0                                /*PyObject *locals*/
43359         );
43360         if (*frame == NULL) return 0;
43361         if (CYTHON_TRACE && (*frame)->f_trace == NULL) {
43362             Py_INCREF(Py_None);
43363             (*frame)->f_trace = Py_None;
43364         }
43365 #if PY_VERSION_HEX < 0x030400B1
43366     } else {
43367         (*frame)->f_tstate = tstate;
43368 #endif
43369     }
43370       __Pyx_PyFrame_SetLineNumber(*frame, firstlineno);
43371     retval = 1;
43372     tstate->tracing++;
43373     tstate->use_tracing = 0;
43374     __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
43375     #if CYTHON_TRACE
43376     if (tstate->c_tracefunc)
43377         retval = tstate->c_tracefunc(tstate->c_traceobj, *frame, PyTrace_CALL, NULL) == 0;
43378     if (retval && tstate->c_profilefunc)
43379     #endif
43380         retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0;
43381     tstate->use_tracing = (tstate->c_profilefunc ||
43382                            (CYTHON_TRACE && tstate->c_tracefunc));
43383     tstate->tracing--;
43384     if (retval) {
43385         __Pyx_ErrRestoreInState(tstate, type, value, traceback);
43386         return tstate->use_tracing && retval;
43387     } else {
43388         Py_XDECREF(type);
43389         Py_XDECREF(value);
43390         Py_XDECREF(traceback);
43391         return -1;
43392     }
43393 }
43394 static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno) {
43395     PyCodeObject *py_code = 0;
43396 #if PY_MAJOR_VERSION >= 3
43397     py_code = PyCode_NewEmpty(srcfile, funcname, firstlineno);
43398     if (likely(py_code)) {
43399         py_code->co_flags |= CO_OPTIMIZED | CO_NEWLOCALS;
43400     }
43401 #else
43402     PyObject *py_srcfile = 0;
43403     PyObject *py_funcname = 0;
43404     py_funcname = PyString_FromString(funcname);
43405     if (unlikely(!py_funcname)) goto bad;
43406     py_srcfile = PyString_FromString(srcfile);
43407     if (unlikely(!py_srcfile)) goto bad;
43408     py_code = PyCode_New(
43409         0,
43410         0,
43411         0,
43412         CO_OPTIMIZED | CO_NEWLOCALS,
43413         __pyx_empty_bytes,     /*PyObject *code,*/
43414         __pyx_empty_tuple,     /*PyObject *consts,*/
43415         __pyx_empty_tuple,     /*PyObject *names,*/
43416         __pyx_empty_tuple,     /*PyObject *varnames,*/
43417         __pyx_empty_tuple,     /*PyObject *freevars,*/
43418         __pyx_empty_tuple,     /*PyObject *cellvars,*/
43419         py_srcfile,       /*PyObject *filename,*/
43420         py_funcname,      /*PyObject *name,*/
43421         firstlineno,
43422         __pyx_empty_bytes      /*PyObject *lnotab*/
43423     );
43424 bad:
43425     Py_XDECREF(py_srcfile);
43426     Py_XDECREF(py_funcname);
43427 #endif
43428     return py_code;
43429 }
43430 #endif
43431 
43432 /* PyFunctionFastCall */
43433 #if CYTHON_FAST_PYCALL
43434 static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
43435                                                PyObject *globals) {
43436     PyFrameObject *f;
43437     PyThreadState *tstate = __Pyx_PyThreadState_Current;
43438     PyObject **fastlocals;
43439     Py_ssize_t i;
43440     PyObject *result;
43441     assert(globals != NULL);
43442     /* XXX Perhaps we should create a specialized
43443        PyFrame_New() that doesn't take locals, but does
43444        take builtins without sanity checking them.
43445        */
43446     assert(tstate != NULL);
43447     f = PyFrame_New(tstate, co, globals, NULL);
43448     if (f == NULL) {
43449         return NULL;
43450     }
43451     fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
43452     for (i = 0; i < na; i++) {
43453         Py_INCREF(*args);
43454         fastlocals[i] = *args++;
43455     }
43456     result = PyEval_EvalFrameEx(f,0);
43457     ++tstate->recursion_depth;
43458     Py_DECREF(f);
43459     --tstate->recursion_depth;
43460     return result;
43461 }
43462 #if 1 || PY_VERSION_HEX < 0x030600B1
43463 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
43464     PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
43465     PyObject *globals = PyFunction_GET_GLOBALS(func);
43466     PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
43467     PyObject *closure;
43468 #if PY_MAJOR_VERSION >= 3
43469     PyObject *kwdefs;
43470 #endif
43471     PyObject *kwtuple, **k;
43472     PyObject **d;
43473     Py_ssize_t nd;
43474     Py_ssize_t nk;
43475     PyObject *result;
43476     assert(kwargs == NULL || PyDict_Check(kwargs));
43477     nk = kwargs ? PyDict_Size(kwargs) : 0;
43478     if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
43479         return NULL;
43480     }
43481     if (
43482 #if PY_MAJOR_VERSION >= 3
43483             co->co_kwonlyargcount == 0 &&
43484 #endif
43485             likely(kwargs == NULL || nk == 0) &&
43486             co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
43487         if (argdefs == NULL && co->co_argcount == nargs) {
43488             result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
43489             goto done;
43490         }
43491         else if (nargs == 0 && argdefs != NULL
43492                  && co->co_argcount == Py_SIZE(argdefs)) {
43493             /* function called with no arguments, but all parameters have
43494                a default value: use default values as arguments .*/
43495             args = &PyTuple_GET_ITEM(argdefs, 0);
43496             result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
43497             goto done;
43498         }
43499     }
43500     if (kwargs != NULL) {
43501         Py_ssize_t pos, i;
43502         kwtuple = PyTuple_New(2 * nk);
43503         if (kwtuple == NULL) {
43504             result = NULL;
43505             goto done;
43506         }
43507         k = &PyTuple_GET_ITEM(kwtuple, 0);
43508         pos = i = 0;
43509         while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
43510             Py_INCREF(k[i]);
43511             Py_INCREF(k[i+1]);
43512             i += 2;
43513         }
43514         nk = i / 2;
43515     }
43516     else {
43517         kwtuple = NULL;
43518         k = NULL;
43519     }
43520     closure = PyFunction_GET_CLOSURE(func);
43521 #if PY_MAJOR_VERSION >= 3
43522     kwdefs = PyFunction_GET_KW_DEFAULTS(func);
43523 #endif
43524     if (argdefs != NULL) {
43525         d = &PyTuple_GET_ITEM(argdefs, 0);
43526         nd = Py_SIZE(argdefs);
43527     }
43528     else {
43529         d = NULL;
43530         nd = 0;
43531     }
43532 #if PY_MAJOR_VERSION >= 3
43533     result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
43534                                args, (int)nargs,
43535                                k, (int)nk,
43536                                d, (int)nd, kwdefs, closure);
43537 #else
43538     result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
43539                                args, (int)nargs,
43540                                k, (int)nk,
43541                                d, (int)nd, closure);
43542 #endif
43543     Py_XDECREF(kwtuple);
43544 done:
43545     Py_LeaveRecursiveCall();
43546     return result;
43547 }
43548 #endif
43549 #endif
43550 
43551 /* PyObjectCall */
43552 #if CYTHON_COMPILING_IN_CPYTHON
43553 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
43554     PyObject *result;
43555     ternaryfunc call = func->ob_type->tp_call;
43556     if (unlikely(!call))
43557         return PyObject_Call(func, arg, kw);
43558     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
43559         return NULL;
43560     result = (*call)(func, arg, kw);
43561     Py_LeaveRecursiveCall();
43562     if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
43563         PyErr_SetString(
43564             PyExc_SystemError,
43565             "NULL result without error in PyObject_Call");
43566     }
43567     return result;
43568 }
43569 #endif
43570 
43571 /* PyObjectCallMethO */
43572 #if CYTHON_COMPILING_IN_CPYTHON
43573 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
43574     PyObject *self, *result;
43575     PyCFunction cfunc;
43576     cfunc = PyCFunction_GET_FUNCTION(func);
43577     self = PyCFunction_GET_SELF(func);
43578     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
43579         return NULL;
43580     result = cfunc(self, arg);
43581     Py_LeaveRecursiveCall();
43582     if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
43583         PyErr_SetString(
43584             PyExc_SystemError,
43585             "NULL result without error in PyObject_Call");
43586     }
43587     return result;
43588 }
43589 #endif
43590 
43591 /* PyObjectCallNoArg */
43592 #if CYTHON_COMPILING_IN_CPYTHON
43593 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
43594 #if CYTHON_FAST_PYCALL
43595     if (PyFunction_Check(func)) {
43596         return __Pyx_PyFunction_FastCall(func, NULL, 0);
43597     }
43598 #endif
43599 #ifdef __Pyx_CyFunction_USED
43600     if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
43601 #else
43602     if (likely(PyCFunction_Check(func)))
43603 #endif
43604     {
43605         if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
43606             return __Pyx_PyObject_CallMethO(func, NULL);
43607         }
43608     }
43609     return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
43610 }
43611 #endif
43612 
43613 /* PyDictVersioning */
43614 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
43615 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
43616     PyObject *dict = Py_TYPE(obj)->tp_dict;
43617     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
43618 }
43619 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
43620     PyObject **dictptr = NULL;
43621     Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
43622     if (offset) {
43623 #if CYTHON_COMPILING_IN_CPYTHON
43624         dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
43625 #else
43626         dictptr = _PyObject_GetDictPtr(obj);
43627 #endif
43628     }
43629     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
43630 }
43631 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
43632     PyObject *dict = Py_TYPE(obj)->tp_dict;
43633     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
43634         return 0;
43635     return obj_dict_version == __Pyx_get_object_dict_version(obj);
43636 }
43637 #endif
43638 
43639 /* GetModuleGlobalName */
43640 #if CYTHON_USE_DICT_VERSIONS
43641 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
43642 #else
43643 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
43644 #endif
43645 {
43646     PyObject *result;
43647 #if !CYTHON_AVOID_BORROWED_REFS
43648 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
43649     result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
43650     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
43651     if (likely(result)) {
43652         return __Pyx_NewRef(result);
43653     } else if (unlikely(PyErr_Occurred())) {
43654         return NULL;
43655     }
43656 #else
43657     result = PyDict_GetItem(__pyx_d, name);
43658     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
43659     if (likely(result)) {
43660         return __Pyx_NewRef(result);
43661     }
43662 #endif
43663 #else
43664     result = PyObject_GetItem(__pyx_d, name);
43665     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
43666     if (likely(result)) {
43667         return __Pyx_NewRef(result);
43668     }
43669     PyErr_Clear();
43670 #endif
43671     return __Pyx_GetBuiltinName(name);
43672 }
43673 
43674 /* PyCFunctionFastCall */
43675 #if CYTHON_FAST_PYCCALL
43676 static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
43677     PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
43678     PyCFunction meth = PyCFunction_GET_FUNCTION(func);
43679     PyObject *self = PyCFunction_GET_SELF(func);
43680     int flags = PyCFunction_GET_FLAGS(func);
43681     assert(PyCFunction_Check(func));
43682     assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
43683     assert(nargs >= 0);
43684     assert(nargs == 0 || args != NULL);
43685     /* _PyCFunction_FastCallDict() must not be called with an exception set,
43686        because it may clear it (directly or indirectly) and so the
43687        caller loses its exception */
43688     assert(!PyErr_Occurred());
43689     if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
43690         return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
43691     } else {
43692         return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
43693     }
43694 }
43695 #endif
43696 
43697 /* PyObjectCall2Args */
43698 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
43699     PyObject *args, *result = NULL;
43700     #if CYTHON_FAST_PYCALL
43701     if (PyFunction_Check(function)) {
43702         PyObject *args[2] = {arg1, arg2};
43703         return __Pyx_PyFunction_FastCall(function, args, 2);
43704     }
43705     #endif
43706     #if CYTHON_FAST_PYCCALL
43707     if (__Pyx_PyFastCFunction_Check(function)) {
43708         PyObject *args[2] = {arg1, arg2};
43709         return __Pyx_PyCFunction_FastCall(function, args, 2);
43710     }
43711     #endif
43712     args = PyTuple_New(2);
43713     if (unlikely(!args)) goto done;
43714     Py_INCREF(arg1);
43715     PyTuple_SET_ITEM(args, 0, arg1);
43716     Py_INCREF(arg2);
43717     PyTuple_SET_ITEM(args, 1, arg2);
43718     Py_INCREF(function);
43719     result = __Pyx_PyObject_Call(function, args, NULL);
43720     Py_DECREF(args);
43721     Py_DECREF(function);
43722 done:
43723     return result;
43724 }
43725 
43726 /* PyObjectCallOneArg */
43727 #if CYTHON_COMPILING_IN_CPYTHON
43728 static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
43729     PyObject *result;
43730     PyObject *args = PyTuple_New(1);
43731     if (unlikely(!args)) return NULL;
43732     Py_INCREF(arg);
43733     PyTuple_SET_ITEM(args, 0, arg);
43734     result = __Pyx_PyObject_Call(func, args, NULL);
43735     Py_DECREF(args);
43736     return result;
43737 }
43738 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
43739 #if CYTHON_FAST_PYCALL
43740     if (PyFunction_Check(func)) {
43741         return __Pyx_PyFunction_FastCall(func, &arg, 1);
43742     }
43743 #endif
43744     if (likely(PyCFunction_Check(func))) {
43745         if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
43746             return __Pyx_PyObject_CallMethO(func, arg);
43747 #if CYTHON_FAST_PYCCALL
43748         } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
43749             return __Pyx_PyCFunction_FastCall(func, &arg, 1);
43750 #endif
43751         }
43752     }
43753     return __Pyx__PyObject_CallOneArg(func, arg);
43754 }
43755 #else
43756 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
43757     PyObject *result;
43758     PyObject *args = PyTuple_Pack(1, arg);
43759     if (unlikely(!args)) return NULL;
43760     result = __Pyx_PyObject_Call(func, args, NULL);
43761     Py_DECREF(args);
43762     return result;
43763 }
43764 #endif
43765 
43766 /* RaiseException */
43767 #if PY_MAJOR_VERSION < 3
43768 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
43769                         CYTHON_UNUSED PyObject *cause) {
43770     __Pyx_PyThreadState_declare
43771     Py_XINCREF(type);
43772     if (!value || value == Py_None)
43773         value = NULL;
43774     else
43775         Py_INCREF(value);
43776     if (!tb || tb == Py_None)
43777         tb = NULL;
43778     else {
43779         Py_INCREF(tb);
43780         if (!PyTraceBack_Check(tb)) {
43781             PyErr_SetString(PyExc_TypeError,
43782                 "raise: arg 3 must be a traceback or None");
43783             goto raise_error;
43784         }
43785     }
43786     if (PyType_Check(type)) {
43787 #if CYTHON_COMPILING_IN_PYPY
43788         if (!value) {
43789             Py_INCREF(Py_None);
43790             value = Py_None;
43791         }
43792 #endif
43793         PyErr_NormalizeException(&type, &value, &tb);
43794     } else {
43795         if (value) {
43796             PyErr_SetString(PyExc_TypeError,
43797                 "instance exception may not have a separate value");
43798             goto raise_error;
43799         }
43800         value = type;
43801         type = (PyObject*) Py_TYPE(type);
43802         Py_INCREF(type);
43803         if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
43804             PyErr_SetString(PyExc_TypeError,
43805                 "raise: exception class must be a subclass of BaseException");
43806             goto raise_error;
43807         }
43808     }
43809     __Pyx_PyThreadState_assign
43810     __Pyx_ErrRestore(type, value, tb);
43811     return;
43812 raise_error:
43813     Py_XDECREF(value);
43814     Py_XDECREF(type);
43815     Py_XDECREF(tb);
43816     return;
43817 }
43818 #else
43819 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
43820     PyObject* owned_instance = NULL;
43821     if (tb == Py_None) {
43822         tb = 0;
43823     } else if (tb && !PyTraceBack_Check(tb)) {
43824         PyErr_SetString(PyExc_TypeError,
43825             "raise: arg 3 must be a traceback or None");
43826         goto bad;
43827     }
43828     if (value == Py_None)
43829         value = 0;
43830     if (PyExceptionInstance_Check(type)) {
43831         if (value) {
43832             PyErr_SetString(PyExc_TypeError,
43833                 "instance exception may not have a separate value");
43834             goto bad;
43835         }
43836         value = type;
43837         type = (PyObject*) Py_TYPE(value);
43838     } else if (PyExceptionClass_Check(type)) {
43839         PyObject *instance_class = NULL;
43840         if (value && PyExceptionInstance_Check(value)) {
43841             instance_class = (PyObject*) Py_TYPE(value);
43842             if (instance_class != type) {
43843                 int is_subclass = PyObject_IsSubclass(instance_class, type);
43844                 if (!is_subclass) {
43845                     instance_class = NULL;
43846                 } else if (unlikely(is_subclass == -1)) {
43847                     goto bad;
43848                 } else {
43849                     type = instance_class;
43850                 }
43851             }
43852         }
43853         if (!instance_class) {
43854             PyObject *args;
43855             if (!value)
43856                 args = PyTuple_New(0);
43857             else if (PyTuple_Check(value)) {
43858                 Py_INCREF(value);
43859                 args = value;
43860             } else
43861                 args = PyTuple_Pack(1, value);
43862             if (!args)
43863                 goto bad;
43864             owned_instance = PyObject_Call(type, args, NULL);
43865             Py_DECREF(args);
43866             if (!owned_instance)
43867                 goto bad;
43868             value = owned_instance;
43869             if (!PyExceptionInstance_Check(value)) {
43870                 PyErr_Format(PyExc_TypeError,
43871                              "calling %R should have returned an instance of "
43872                              "BaseException, not %R",
43873                              type, Py_TYPE(value));
43874                 goto bad;
43875             }
43876         }
43877     } else {
43878         PyErr_SetString(PyExc_TypeError,
43879             "raise: exception class must be a subclass of BaseException");
43880         goto bad;
43881     }
43882     if (cause) {
43883         PyObject *fixed_cause;
43884         if (cause == Py_None) {
43885             fixed_cause = NULL;
43886         } else if (PyExceptionClass_Check(cause)) {
43887             fixed_cause = PyObject_CallObject(cause, NULL);
43888             if (fixed_cause == NULL)
43889                 goto bad;
43890         } else if (PyExceptionInstance_Check(cause)) {
43891             fixed_cause = cause;
43892             Py_INCREF(fixed_cause);
43893         } else {
43894             PyErr_SetString(PyExc_TypeError,
43895                             "exception causes must derive from "
43896                             "BaseException");
43897             goto bad;
43898         }
43899         PyException_SetCause(value, fixed_cause);
43900     }
43901     PyErr_SetObject(type, value);
43902     if (tb) {
43903 #if CYTHON_COMPILING_IN_PYPY
43904         PyObject *tmp_type, *tmp_value, *tmp_tb;
43905         PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
43906         Py_INCREF(tb);
43907         PyErr_Restore(tmp_type, tmp_value, tb);
43908         Py_XDECREF(tmp_tb);
43909 #else
43910         PyThreadState *tstate = __Pyx_PyThreadState_Current;
43911         PyObject* tmp_tb = tstate->curexc_traceback;
43912         if (tb != tmp_tb) {
43913             Py_INCREF(tb);
43914             tstate->curexc_traceback = tb;
43915             Py_XDECREF(tmp_tb);
43916         }
43917 #endif
43918     }
43919 bad:
43920     Py_XDECREF(owned_instance);
43921     return;
43922 }
43923 #endif
43924 
43925 /* WriteUnraisableException */
43926 static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
43927                                   CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
43928                                   int full_traceback, CYTHON_UNUSED int nogil) {
43929     PyObject *old_exc, *old_val, *old_tb;
43930     PyObject *ctx;
43931     __Pyx_PyThreadState_declare
43932 #ifdef WITH_THREAD
43933     PyGILState_STATE state;
43934     if (nogil)
43935         state = PyGILState_Ensure();
43936 #ifdef _MSC_VER
43937     else state = (PyGILState_STATE)-1;
43938 #endif
43939 #endif
43940     __Pyx_PyThreadState_assign
43941     __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
43942     if (full_traceback) {
43943         Py_XINCREF(old_exc);
43944         Py_XINCREF(old_val);
43945         Py_XINCREF(old_tb);
43946         __Pyx_ErrRestore(old_exc, old_val, old_tb);
43947         PyErr_PrintEx(1);
43948     }
43949     #if PY_MAJOR_VERSION < 3
43950     ctx = PyString_FromString(name);
43951     #else
43952     ctx = PyUnicode_FromString(name);
43953     #endif
43954     __Pyx_ErrRestore(old_exc, old_val, old_tb);
43955     if (!ctx) {
43956         PyErr_WriteUnraisable(Py_None);
43957     } else {
43958         PyErr_WriteUnraisable(ctx);
43959         Py_DECREF(ctx);
43960     }
43961 #ifdef WITH_THREAD
43962     if (nogil)
43963         PyGILState_Release(state);
43964 #endif
43965 }
43966 
43967 /* ExtTypeTest */
43968 static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
43969     if (unlikely(!type)) {
43970         PyErr_SetString(PyExc_SystemError, "Missing type object");
43971         return 0;
43972     }
43973     if (likely(__Pyx_TypeCheck(obj, type)))
43974         return 1;
43975     PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
43976                  Py_TYPE(obj)->tp_name, type->tp_name);
43977     return 0;
43978 }
43979 
43980 /* IsLittleEndian */
43981 static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)
43982 {
43983   union {
43984     uint32_t u32;
43985     uint8_t u8[4];
43986   } S;
43987   S.u32 = 0x01020304;
43988   return S.u8[0] == 4;
43989 }
43990 
43991 /* BufferFormatCheck */
43992 static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
43993                               __Pyx_BufFmt_StackElem* stack,
43994                               __Pyx_TypeInfo* type) {
43995   stack[0].field = &ctx->root;
43996   stack[0].parent_offset = 0;
43997   ctx->root.type = type;
43998   ctx->root.name = "buffer dtype";
43999   ctx->root.offset = 0;
44000   ctx->head = stack;
44001   ctx->head->field = &ctx->root;
44002   ctx->fmt_offset = 0;
44003   ctx->head->parent_offset = 0;
44004   ctx->new_packmode = '@';
44005   ctx->enc_packmode = '@';
44006   ctx->new_count = 1;
44007   ctx->enc_count = 0;
44008   ctx->enc_type = 0;
44009   ctx->is_complex = 0;
44010   ctx->is_valid_array = 0;
44011   ctx->struct_alignment = 0;
44012   while (type->typegroup == 'S') {
44013     ++ctx->head;
44014     ctx->head->field = type->fields;
44015     ctx->head->parent_offset = 0;
44016     type = type->fields->type;
44017   }
44018 }
44019 static int __Pyx_BufFmt_ParseNumber(const char** ts) {
44020     int count;
44021     const char* t = *ts;
44022     if (*t < '0' || *t > '9') {
44023       return -1;
44024     } else {
44025         count = *t++ - '0';
44026         while (*t >= '0' && *t <= '9') {
44027             count *= 10;
44028             count += *t++ - '0';
44029         }
44030     }
44031     *ts = t;
44032     return count;
44033 }
44034 static int __Pyx_BufFmt_ExpectNumber(const char **ts) {
44035     int number = __Pyx_BufFmt_ParseNumber(ts);
44036     if (number == -1)
44037         PyErr_Format(PyExc_ValueError,\
44038                      "Does not understand character buffer dtype format string ('%c')", **ts);
44039     return number;
44040 }
44041 static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
44042   PyErr_Format(PyExc_ValueError,
44043                "Unexpected format string character: '%c'", ch);
44044 }
44045 static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
44046   switch (ch) {
44047     case '?': return "'bool'";
44048     case 'c': return "'char'";
44049     case 'b': return "'signed char'";
44050     case 'B': return "'unsigned char'";
44051     case 'h': return "'short'";
44052     case 'H': return "'unsigned short'";
44053     case 'i': return "'int'";
44054     case 'I': return "'unsigned int'";
44055     case 'l': return "'long'";
44056     case 'L': return "'unsigned long'";
44057     case 'q': return "'long long'";
44058     case 'Q': return "'unsigned long long'";
44059     case 'f': return (is_complex ? "'complex float'" : "'float'");
44060     case 'd': return (is_complex ? "'complex double'" : "'double'");
44061     case 'g': return (is_complex ? "'complex long double'" : "'long double'");
44062     case 'T': return "a struct";
44063     case 'O': return "Python object";
44064     case 'P': return "a pointer";
44065     case 's': case 'p': return "a string";
44066     case 0: return "end";
44067     default: return "unparseable format string";
44068   }
44069 }
44070 static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) {
44071   switch (ch) {
44072     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
44073     case 'h': case 'H': return 2;
44074     case 'i': case 'I': case 'l': case 'L': return 4;
44075     case 'q': case 'Q': return 8;
44076     case 'f': return (is_complex ? 8 : 4);
44077     case 'd': return (is_complex ? 16 : 8);
44078     case 'g': {
44079       PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g')..");
44080       return 0;
44081     }
44082     case 'O': case 'P': return sizeof(void*);
44083     default:
44084       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
44085       return 0;
44086     }
44087 }
44088 static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
44089   switch (ch) {
44090     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
44091     case 'h': case 'H': return sizeof(short);
44092     case 'i': case 'I': return sizeof(int);
44093     case 'l': case 'L': return sizeof(long);
44094     #ifdef HAVE_LONG_LONG
44095     case 'q': case 'Q': return sizeof(PY_LONG_LONG);
44096     #endif
44097     case 'f': return sizeof(float) * (is_complex ? 2 : 1);
44098     case 'd': return sizeof(double) * (is_complex ? 2 : 1);
44099     case 'g': return sizeof(long double) * (is_complex ? 2 : 1);
44100     case 'O': case 'P': return sizeof(void*);
44101     default: {
44102       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
44103       return 0;
44104     }
44105   }
44106 }
44107 typedef struct { char c; short x; } __Pyx_st_short;
44108 typedef struct { char c; int x; } __Pyx_st_int;
44109 typedef struct { char c; long x; } __Pyx_st_long;
44110 typedef struct { char c; float x; } __Pyx_st_float;
44111 typedef struct { char c; double x; } __Pyx_st_double;
44112 typedef struct { char c; long double x; } __Pyx_st_longdouble;
44113 typedef struct { char c; void *x; } __Pyx_st_void_p;
44114 #ifdef HAVE_LONG_LONG
44115 typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
44116 #endif
44117 static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) {
44118   switch (ch) {
44119     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
44120     case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short);
44121     case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int);
44122     case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long);
44123 #ifdef HAVE_LONG_LONG
44124     case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG);
44125 #endif
44126     case 'f': return sizeof(__Pyx_st_float) - sizeof(float);
44127     case 'd': return sizeof(__Pyx_st_double) - sizeof(double);
44128     case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double);
44129     case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*);
44130     default:
44131       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
44132       return 0;
44133     }
44134 }
44135 /* These are for computing the padding at the end of the struct to align
44136    on the first member of the struct. This will probably the same as above,
44137    but we don't have any guarantees.
44138  */
44139 typedef struct { short x; char c; } __Pyx_pad_short;
44140 typedef struct { int x; char c; } __Pyx_pad_int;
44141 typedef struct { long x; char c; } __Pyx_pad_long;
44142 typedef struct { float x; char c; } __Pyx_pad_float;
44143 typedef struct { double x; char c; } __Pyx_pad_double;
44144 typedef struct { long double x; char c; } __Pyx_pad_longdouble;
44145 typedef struct { void *x; char c; } __Pyx_pad_void_p;
44146 #ifdef HAVE_LONG_LONG
44147 typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
44148 #endif
44149 static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) {
44150   switch (ch) {
44151     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
44152     case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short);
44153     case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int);
44154     case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long);
44155 #ifdef HAVE_LONG_LONG
44156     case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG);
44157 #endif
44158     case 'f': return sizeof(__Pyx_pad_float) - sizeof(float);
44159     case 'd': return sizeof(__Pyx_pad_double) - sizeof(double);
44160     case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double);
44161     case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*);
44162     default:
44163       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
44164       return 0;
44165     }
44166 }
44167 static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
44168   switch (ch) {
44169     case 'c':
44170         return 'H';
44171     case 'b': case 'h': case 'i':
44172     case 'l': case 'q': case 's': case 'p':
44173         return 'I';
44174     case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
44175         return 'U';
44176     case 'f': case 'd': case 'g':
44177         return (is_complex ? 'C' : 'R');
44178     case 'O':
44179         return 'O';
44180     case 'P':
44181         return 'P';
44182     default: {
44183       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
44184       return 0;
44185     }
44186   }
44187 }
44188 static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
44189   if (ctx->head == NULL || ctx->head->field == &ctx->root) {
44190     const char* expected;
44191     const char* quote;
44192     if (ctx->head == NULL) {
44193       expected = "end";
44194       quote = "";
44195     } else {
44196       expected = ctx->head->field->type->name;
44197       quote = "'";
44198     }
44199     PyErr_Format(PyExc_ValueError,
44200                  "Buffer dtype mismatch, expected %s%s%s but got %s",
44201                  quote, expected, quote,
44202                  __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex));
44203   } else {
44204     __Pyx_StructField* field = ctx->head->field;
44205     __Pyx_StructField* parent = (ctx->head - 1)->field;
44206     PyErr_Format(PyExc_ValueError,
44207                  "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'",
44208                  field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex),
44209                  parent->type->name, field->name);
44210   }
44211 }
44212 static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
44213   char group;
44214   size_t size, offset, arraysize = 1;
44215   if (ctx->enc_type == 0) return 0;
44216   if (ctx->head->field->type->arraysize[0]) {
44217     int i, ndim = 0;
44218     if (ctx->enc_type == 's' || ctx->enc_type == 'p') {
44219         ctx->is_valid_array = ctx->head->field->type->ndim == 1;
44220         ndim = 1;
44221         if (ctx->enc_count != ctx->head->field->type->arraysize[0]) {
44222             PyErr_Format(PyExc_ValueError,
44223                          "Expected a dimension of size %zu, got %zu",
44224                          ctx->head->field->type->arraysize[0], ctx->enc_count);
44225             return -1;
44226         }
44227     }
44228     if (!ctx->is_valid_array) {
44229       PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d",
44230                    ctx->head->field->type->ndim, ndim);
44231       return -1;
44232     }
44233     for (i = 0; i < ctx->head->field->type->ndim; i++) {
44234       arraysize *= ctx->head->field->type->arraysize[i];
44235     }
44236     ctx->is_valid_array = 0;
44237     ctx->enc_count = 1;
44238   }
44239   group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex);
44240   do {
44241     __Pyx_StructField* field = ctx->head->field;
44242     __Pyx_TypeInfo* type = field->type;
44243     if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') {
44244       size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex);
44245     } else {
44246       size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex);
44247     }
44248     if (ctx->enc_packmode == '@') {
44249       size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex);
44250       size_t align_mod_offset;
44251       if (align_at == 0) return -1;
44252       align_mod_offset = ctx->fmt_offset % align_at;
44253       if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset;
44254       if (ctx->struct_alignment == 0)
44255           ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type,
44256                                                                  ctx->is_complex);
44257     }
44258     if (type->size != size || type->typegroup != group) {
44259       if (type->typegroup == 'C' && type->fields != NULL) {
44260         size_t parent_offset = ctx->head->parent_offset + field->offset;
44261         ++ctx->head;
44262         ctx->head->field = type->fields;
44263         ctx->head->parent_offset = parent_offset;
44264         continue;
44265       }
44266       if ((type->typegroup == 'H' || group == 'H') && type->size == size) {
44267       } else {
44268           __Pyx_BufFmt_RaiseExpected(ctx);
44269           return -1;
44270       }
44271     }
44272     offset = ctx->head->parent_offset + field->offset;
44273     if (ctx->fmt_offset != offset) {
44274       PyErr_Format(PyExc_ValueError,
44275                    "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected",
44276                    (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
44277       return -1;
44278     }
44279     ctx->fmt_offset += size;
44280     if (arraysize)
44281       ctx->fmt_offset += (arraysize - 1) * size;
44282     --ctx->enc_count;
44283     while (1) {
44284       if (field == &ctx->root) {
44285         ctx->head = NULL;
44286         if (ctx->enc_count != 0) {
44287           __Pyx_BufFmt_RaiseExpected(ctx);
44288           return -1;
44289         }
44290         break;
44291       }
44292       ctx->head->field = ++field;
44293       if (field->type == NULL) {
44294         --ctx->head;
44295         field = ctx->head->field;
44296         continue;
44297       } else if (field->type->typegroup == 'S') {
44298         size_t parent_offset = ctx->head->parent_offset + field->offset;
44299         if (field->type->fields->type == NULL) continue;
44300         field = field->type->fields;
44301         ++ctx->head;
44302         ctx->head->field = field;
44303         ctx->head->parent_offset = parent_offset;
44304         break;
44305       } else {
44306         break;
44307       }
44308     }
44309   } while (ctx->enc_count);
44310   ctx->enc_type = 0;
44311   ctx->is_complex = 0;
44312   return 0;
44313 }
44314 static PyObject *
44315 __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
44316 {
44317     const char *ts = *tsp;
44318     int i = 0, number, ndim;
44319     ++ts;
44320     if (ctx->new_count != 1) {
44321         PyErr_SetString(PyExc_ValueError,
44322                         "Cannot handle repeated arrays in format string");
44323         return NULL;
44324     }
44325     if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
44326     ndim = ctx->head->field->type->ndim;
44327     while (*ts && *ts != ')') {
44328         switch (*ts) {
44329             case ' ': case '\f': case '\r': case '\n': case '\t': case '\v':  continue;
44330             default:  break;
44331         }
44332         number = __Pyx_BufFmt_ExpectNumber(&ts);
44333         if (number == -1) return NULL;
44334         if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i])
44335             return PyErr_Format(PyExc_ValueError,
44336                         "Expected a dimension of size %zu, got %d",
44337                         ctx->head->field->type->arraysize[i], number);
44338         if (*ts != ',' && *ts != ')')
44339             return PyErr_Format(PyExc_ValueError,
44340                                 "Expected a comma in format string, got '%c'", *ts);
44341         if (*ts == ',') ts++;
44342         i++;
44343     }
44344     if (i != ndim)
44345         return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d",
44346                             ctx->head->field->type->ndim, i);
44347     if (!*ts) {
44348         PyErr_SetString(PyExc_ValueError,
44349                         "Unexpected end of format string, expected ')'");
44350         return NULL;
44351     }
44352     ctx->is_valid_array = 1;
44353     ctx->new_count = 1;
44354     *tsp = ++ts;
44355     return Py_None;
44356 }
44357 static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) {
44358   int got_Z = 0;
44359   while (1) {
44360     switch(*ts) {
44361       case 0:
44362         if (ctx->enc_type != 0 && ctx->head == NULL) {
44363           __Pyx_BufFmt_RaiseExpected(ctx);
44364           return NULL;
44365         }
44366         if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
44367         if (ctx->head != NULL) {
44368           __Pyx_BufFmt_RaiseExpected(ctx);
44369           return NULL;
44370         }
44371         return ts;
44372       case ' ':
44373       case '\r':
44374       case '\n':
44375         ++ts;
44376         break;
44377       case '<':
44378         if (!__Pyx_Is_Little_Endian()) {
44379           PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler");
44380           return NULL;
44381         }
44382         ctx->new_packmode = '=';
44383         ++ts;
44384         break;
44385       case '>':
44386       case '!':
44387         if (__Pyx_Is_Little_Endian()) {
44388           PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler");
44389           return NULL;
44390         }
44391         ctx->new_packmode = '=';
44392         ++ts;
44393         break;
44394       case '=':
44395       case '@':
44396       case '^':
44397         ctx->new_packmode = *ts++;
44398         break;
44399       case 'T':
44400         {
44401           const char* ts_after_sub;
44402           size_t i, struct_count = ctx->new_count;
44403           size_t struct_alignment = ctx->struct_alignment;
44404           ctx->new_count = 1;
44405           ++ts;
44406           if (*ts != '{') {
44407             PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'");
44408             return NULL;
44409           }
44410           if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
44411           ctx->enc_type = 0;
44412           ctx->enc_count = 0;
44413           ctx->struct_alignment = 0;
44414           ++ts;
44415           ts_after_sub = ts;
44416           for (i = 0; i != struct_count; ++i) {
44417             ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts);
44418             if (!ts_after_sub) return NULL;
44419           }
44420           ts = ts_after_sub;
44421           if (struct_alignment) ctx->struct_alignment = struct_alignment;
44422         }
44423         break;
44424       case '}':
44425         {
44426           size_t alignment = ctx->struct_alignment;
44427           ++ts;
44428           if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
44429           ctx->enc_type = 0;
44430           if (alignment && ctx->fmt_offset % alignment) {
44431             ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment);
44432           }
44433         }
44434         return ts;
44435       case 'x':
44436         if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
44437         ctx->fmt_offset += ctx->new_count;
44438         ctx->new_count = 1;
44439         ctx->enc_count = 0;
44440         ctx->enc_type = 0;
44441         ctx->enc_packmode = ctx->new_packmode;
44442         ++ts;
44443         break;
44444       case 'Z':
44445         got_Z = 1;
44446         ++ts;
44447         if (*ts != 'f' && *ts != 'd' && *ts != 'g') {
44448           __Pyx_BufFmt_RaiseUnexpectedChar('Z');
44449           return NULL;
44450         }
44451         CYTHON_FALLTHROUGH;
44452       case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
44453       case 'l': case 'L': case 'q': case 'Q':
44454       case 'f': case 'd': case 'g':
44455       case 'O': case 'p':
44456         if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
44457             (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
44458           ctx->enc_count += ctx->new_count;
44459           ctx->new_count = 1;
44460           got_Z = 0;
44461           ++ts;
44462           break;
44463         }
44464         CYTHON_FALLTHROUGH;
44465       case 's':
44466         if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
44467         ctx->enc_count = ctx->new_count;
44468         ctx->enc_packmode = ctx->new_packmode;
44469         ctx->enc_type = *ts;
44470         ctx->is_complex = got_Z;
44471         ++ts;
44472         ctx->new_count = 1;
44473         got_Z = 0;
44474         break;
44475       case ':':
44476         ++ts;
44477         while(*ts != ':') ++ts;
44478         ++ts;
44479         break;
44480       case '(':
44481         if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL;
44482         break;
44483       default:
44484         {
44485           int number = __Pyx_BufFmt_ExpectNumber(&ts);
44486           if (number == -1) return NULL;
44487           ctx->new_count = (size_t)number;
44488         }
44489     }
44490   }
44491 }
44492 
44493 /* BufferGetAndValidate */
44494   static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) {
44495   if (unlikely(info->buf == NULL)) return;
44496   if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL;
44497   __Pyx_ReleaseBuffer(info);
44498 }
44499 static void __Pyx_ZeroBuffer(Py_buffer* buf) {
44500   buf->buf = NULL;
44501   buf->obj = NULL;
44502   buf->strides = __Pyx_zeros;
44503   buf->shape = __Pyx_zeros;
44504   buf->suboffsets = __Pyx_minusones;
44505 }
44506 static int __Pyx__GetBufferAndValidate(
44507         Py_buffer* buf, PyObject* obj,  __Pyx_TypeInfo* dtype, int flags,
44508         int nd, int cast, __Pyx_BufFmt_StackElem* stack)
44509 {
44510   buf->buf = NULL;
44511   if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) {
44512     __Pyx_ZeroBuffer(buf);
44513     return -1;
44514   }
44515   if (unlikely(buf->ndim != nd)) {
44516     PyErr_Format(PyExc_ValueError,
44517                  "Buffer has wrong number of dimensions (expected %d, got %d)",
44518                  nd, buf->ndim);
44519     goto fail;
44520   }
44521   if (!cast) {
44522     __Pyx_BufFmt_Context ctx;
44523     __Pyx_BufFmt_Init(&ctx, stack, dtype);
44524     if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail;
44525   }
44526   if (unlikely((size_t)buf->itemsize != dtype->size)) {
44527     PyErr_Format(PyExc_ValueError,
44528       "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)",
44529       buf->itemsize, (buf->itemsize > 1) ? "s" : "",
44530       dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : "");
44531     goto fail;
44532   }
44533   if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones;
44534   return 0;
44535 fail:;
44536   __Pyx_SafeReleaseBuffer(buf);
44537   return -1;
44538 }
44539 
44540 /* PyObjectSetAttrStr */
44541   #if CYTHON_USE_TYPE_SLOTS
44542 static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
44543     PyTypeObject* tp = Py_TYPE(obj);
44544     if (likely(tp->tp_setattro))
44545         return tp->tp_setattro(obj, attr_name, value);
44546 #if PY_MAJOR_VERSION < 3
44547     if (likely(tp->tp_setattr))
44548         return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
44549 #endif
44550     return PyObject_SetAttr(obj, attr_name, value);
44551 }
44552 #endif
44553 
44554 /* GetItemInt */
44555   static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
44556     PyObject *r;
44557     if (!j) return NULL;
44558     r = PyObject_GetItem(o, j);
44559     Py_DECREF(j);
44560     return r;
44561 }
44562 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
44563                                                               CYTHON_NCP_UNUSED int wraparound,
44564                                                               CYTHON_NCP_UNUSED int boundscheck) {
44565 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
44566     Py_ssize_t wrapped_i = i;
44567     if (wraparound & unlikely(i < 0)) {
44568         wrapped_i += PyList_GET_SIZE(o);
44569     }
44570     if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
44571         PyObject *r = PyList_GET_ITEM(o, wrapped_i);
44572         Py_INCREF(r);
44573         return r;
44574     }
44575     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
44576 #else
44577     return PySequence_GetItem(o, i);
44578 #endif
44579 }
44580 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
44581                                                               CYTHON_NCP_UNUSED int wraparound,
44582                                                               CYTHON_NCP_UNUSED int boundscheck) {
44583 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
44584     Py_ssize_t wrapped_i = i;
44585     if (wraparound & unlikely(i < 0)) {
44586         wrapped_i += PyTuple_GET_SIZE(o);
44587     }
44588     if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
44589         PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
44590         Py_INCREF(r);
44591         return r;
44592     }
44593     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
44594 #else
44595     return PySequence_GetItem(o, i);
44596 #endif
44597 }
44598 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
44599                                                      CYTHON_NCP_UNUSED int wraparound,
44600                                                      CYTHON_NCP_UNUSED int boundscheck) {
44601 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
44602     if (is_list || PyList_CheckExact(o)) {
44603         Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
44604         if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
44605             PyObject *r = PyList_GET_ITEM(o, n);
44606             Py_INCREF(r);
44607             return r;
44608         }
44609     }
44610     else if (PyTuple_CheckExact(o)) {
44611         Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
44612         if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
44613             PyObject *r = PyTuple_GET_ITEM(o, n);
44614             Py_INCREF(r);
44615             return r;
44616         }
44617     } else {
44618         PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
44619         if (likely(m && m->sq_item)) {
44620             if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
44621                 Py_ssize_t l = m->sq_length(o);
44622                 if (likely(l >= 0)) {
44623                     i += l;
44624                 } else {
44625                     if (!PyErr_ExceptionMatches(PyExc_OverflowError))
44626                         return NULL;
44627                     PyErr_Clear();
44628                 }
44629             }
44630             return m->sq_item(o, i);
44631         }
44632     }
44633 #else
44634     if (is_list || PySequence_Check(o)) {
44635         return PySequence_GetItem(o, i);
44636     }
44637 #endif
44638     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
44639 }
44640 
44641 /* GetTopmostException */
44642   #if CYTHON_USE_EXC_INFO_STACK
44643 static _PyErr_StackItem *
44644 __Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
44645 {
44646     _PyErr_StackItem *exc_info = tstate->exc_info;
44647     while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
44648            exc_info->previous_item != NULL)
44649     {
44650         exc_info = exc_info->previous_item;
44651     }
44652     return exc_info;
44653 }
44654 #endif
44655 
44656 /* SaveResetException */
44657   #if CYTHON_FAST_THREAD_STATE
44658 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
44659     #if CYTHON_USE_EXC_INFO_STACK
44660     _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
44661     *type = exc_info->exc_type;
44662     *value = exc_info->exc_value;
44663     *tb = exc_info->exc_traceback;
44664     #else
44665     *type = tstate->exc_type;
44666     *value = tstate->exc_value;
44667     *tb = tstate->exc_traceback;
44668     #endif
44669     Py_XINCREF(*type);
44670     Py_XINCREF(*value);
44671     Py_XINCREF(*tb);
44672 }
44673 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
44674     PyObject *tmp_type, *tmp_value, *tmp_tb;
44675     #if CYTHON_USE_EXC_INFO_STACK
44676     _PyErr_StackItem *exc_info = tstate->exc_info;
44677     tmp_type = exc_info->exc_type;
44678     tmp_value = exc_info->exc_value;
44679     tmp_tb = exc_info->exc_traceback;
44680     exc_info->exc_type = type;
44681     exc_info->exc_value = value;
44682     exc_info->exc_traceback = tb;
44683     #else
44684     tmp_type = tstate->exc_type;
44685     tmp_value = tstate->exc_value;
44686     tmp_tb = tstate->exc_traceback;
44687     tstate->exc_type = type;
44688     tstate->exc_value = value;
44689     tstate->exc_traceback = tb;
44690     #endif
44691     Py_XDECREF(tmp_type);
44692     Py_XDECREF(tmp_value);
44693     Py_XDECREF(tmp_tb);
44694 }
44695 #endif
44696 
44697 /* GetException */
44698   #if CYTHON_FAST_THREAD_STATE
44699 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
44700 #else
44701 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
44702 #endif
44703 {
44704     PyObject *local_type, *local_value, *local_tb;
44705 #if CYTHON_FAST_THREAD_STATE
44706     PyObject *tmp_type, *tmp_value, *tmp_tb;
44707     local_type = tstate->curexc_type;
44708     local_value = tstate->curexc_value;
44709     local_tb = tstate->curexc_traceback;
44710     tstate->curexc_type = 0;
44711     tstate->curexc_value = 0;
44712     tstate->curexc_traceback = 0;
44713 #else
44714     PyErr_Fetch(&local_type, &local_value, &local_tb);
44715 #endif
44716     PyErr_NormalizeException(&local_type, &local_value, &local_tb);
44717 #if CYTHON_FAST_THREAD_STATE
44718     if (unlikely(tstate->curexc_type))
44719 #else
44720     if (unlikely(PyErr_Occurred()))
44721 #endif
44722         goto bad;
44723     #if PY_MAJOR_VERSION >= 3
44724     if (local_tb) {
44725         if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
44726             goto bad;
44727     }
44728     #endif
44729     Py_XINCREF(local_tb);
44730     Py_XINCREF(local_type);
44731     Py_XINCREF(local_value);
44732     *type = local_type;
44733     *value = local_value;
44734     *tb = local_tb;
44735 #if CYTHON_FAST_THREAD_STATE
44736     #if CYTHON_USE_EXC_INFO_STACK
44737     {
44738         _PyErr_StackItem *exc_info = tstate->exc_info;
44739         tmp_type = exc_info->exc_type;
44740         tmp_value = exc_info->exc_value;
44741         tmp_tb = exc_info->exc_traceback;
44742         exc_info->exc_type = local_type;
44743         exc_info->exc_value = local_value;
44744         exc_info->exc_traceback = local_tb;
44745     }
44746     #else
44747     tmp_type = tstate->exc_type;
44748     tmp_value = tstate->exc_value;
44749     tmp_tb = tstate->exc_traceback;
44750     tstate->exc_type = local_type;
44751     tstate->exc_value = local_value;
44752     tstate->exc_traceback = local_tb;
44753     #endif
44754     Py_XDECREF(tmp_type);
44755     Py_XDECREF(tmp_value);
44756     Py_XDECREF(tmp_tb);
44757 #else
44758     PyErr_SetExcInfo(local_type, local_value, local_tb);
44759 #endif
44760     return 0;
44761 bad:
44762     *type = 0;
44763     *value = 0;
44764     *tb = 0;
44765     Py_XDECREF(local_type);
44766     Py_XDECREF(local_value);
44767     Py_XDECREF(local_tb);
44768     return -1;
44769 }
44770 
44771 /* ObjectGetItem */
44772   #if CYTHON_USE_TYPE_SLOTS
44773 static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) {
44774     PyObject *runerr;
44775     Py_ssize_t key_value;
44776     PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence;
44777     if (unlikely(!(m && m->sq_item))) {
44778         PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name);
44779         return NULL;
44780     }
44781     key_value = __Pyx_PyIndex_AsSsize_t(index);
44782     if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
44783         return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
44784     }
44785     if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
44786         PyErr_Clear();
44787         PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name);
44788     }
44789     return NULL;
44790 }
44791 static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) {
44792     PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping;
44793     if (likely(m && m->mp_subscript)) {
44794         return m->mp_subscript(obj, key);
44795     }
44796     return __Pyx_PyObject_GetIndex(obj, key);
44797 }
44798 #endif
44799 
44800 /* ArgTypeTest */
44801   static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
44802 {
44803     if (unlikely(!type)) {
44804         PyErr_SetString(PyExc_SystemError, "Missing type object");
44805         return 0;
44806     }
44807     else if (exact) {
44808         #if PY_MAJOR_VERSION == 2
44809         if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
44810         #endif
44811     }
44812     else {
44813         if (likely(__Pyx_TypeCheck(obj, type))) return 1;
44814     }
44815     PyErr_Format(PyExc_TypeError,
44816         "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
44817         name, type->tp_name, Py_TYPE(obj)->tp_name);
44818     return 0;
44819 }
44820 
44821 /* PyIntCompare */
44822   static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) {
44823     if (op1 == op2) {
44824         Py_RETURN_TRUE;
44825     }
44826     #if PY_MAJOR_VERSION < 3
44827     if (likely(PyInt_CheckExact(op1))) {
44828         const long b = intval;
44829         long a = PyInt_AS_LONG(op1);
44830         if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
44831     }
44832     #endif
44833     #if CYTHON_USE_PYLONG_INTERNALS
44834     if (likely(PyLong_CheckExact(op1))) {
44835         int unequal;
44836         unsigned long uintval;
44837         Py_ssize_t size = Py_SIZE(op1);
44838         const digit* digits = ((PyLongObject*)op1)->ob_digit;
44839         if (intval == 0) {
44840             if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
44841         } else if (intval < 0) {
44842             if (size >= 0)
44843                 Py_RETURN_FALSE;
44844             intval = -intval;
44845             size = -size;
44846         } else {
44847             if (size <= 0)
44848                 Py_RETURN_FALSE;
44849         }
44850         uintval = (unsigned long) intval;
44851 #if PyLong_SHIFT * 4 < SIZEOF_LONG*8
44852         if (uintval >> (PyLong_SHIFT * 4)) {
44853             unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
44854                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
44855         } else
44856 #endif
44857 #if PyLong_SHIFT * 3 < SIZEOF_LONG*8
44858         if (uintval >> (PyLong_SHIFT * 3)) {
44859             unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
44860                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
44861         } else
44862 #endif
44863 #if PyLong_SHIFT * 2 < SIZEOF_LONG*8
44864         if (uintval >> (PyLong_SHIFT * 2)) {
44865             unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
44866                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
44867         } else
44868 #endif
44869 #if PyLong_SHIFT * 1 < SIZEOF_LONG*8
44870         if (uintval >> (PyLong_SHIFT * 1)) {
44871             unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
44872                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
44873         } else
44874 #endif
44875             unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
44876         if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
44877     }
44878     #endif
44879     if (PyFloat_CheckExact(op1)) {
44880         const long b = intval;
44881         double a = PyFloat_AS_DOUBLE(op1);
44882         if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
44883     }
44884     return (
44885         PyObject_RichCompare(op1, op2, Py_EQ));
44886 }
44887 
44888 /* PyIntBinop */
44889   #if !CYTHON_COMPILING_IN_PYPY
44890 static PyObject* __Pyx_PyInt_AndObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
44891     (void)inplace;
44892     (void)zerodivision_check;
44893     #if PY_MAJOR_VERSION < 3
44894     if (likely(PyInt_CheckExact(op1))) {
44895         const long b = intval;
44896         long a = PyInt_AS_LONG(op1);
44897             return PyInt_FromLong(a & b);
44898     }
44899     #endif
44900     #if CYTHON_USE_PYLONG_INTERNALS
44901     if (likely(PyLong_CheckExact(op1))) {
44902         const long b = intval;
44903         long a, x;
44904 #ifdef HAVE_LONG_LONG
44905         const PY_LONG_LONG llb = intval;
44906         PY_LONG_LONG lla, llx;
44907 #endif
44908         const digit* digits = ((PyLongObject*)op1)->ob_digit;
44909         const Py_ssize_t size = Py_SIZE(op1);
44910         if (likely(__Pyx_sst_abs(size) <= 1)) {
44911             a = likely(size) ? digits[0] : 0;
44912             if (size == -1) a = -a;
44913         } else {
44914             switch (size) {
44915                 case -2:
44916                     if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
44917                         a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
44918                         break;
44919 #ifdef HAVE_LONG_LONG
44920                     } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
44921                         lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
44922                         goto long_long;
44923 #endif
44924                     }
44925                     CYTHON_FALLTHROUGH;
44926                 case 2:
44927                     if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
44928                         a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
44929                         break;
44930 #ifdef HAVE_LONG_LONG
44931                     } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
44932                         lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
44933                         goto long_long;
44934 #endif
44935                     }
44936                     CYTHON_FALLTHROUGH;
44937                 case -3:
44938                     if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
44939                         a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
44940                         break;
44941 #ifdef HAVE_LONG_LONG
44942                     } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
44943                         lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
44944                         goto long_long;
44945 #endif
44946                     }
44947                     CYTHON_FALLTHROUGH;
44948                 case 3:
44949                     if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
44950                         a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
44951                         break;
44952 #ifdef HAVE_LONG_LONG
44953                     } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
44954                         lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
44955                         goto long_long;
44956 #endif
44957                     }
44958                     CYTHON_FALLTHROUGH;
44959                 case -4:
44960                     if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
44961                         a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
44962                         break;
44963 #ifdef HAVE_LONG_LONG
44964                     } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
44965                         lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
44966                         goto long_long;
44967 #endif
44968                     }
44969                     CYTHON_FALLTHROUGH;
44970                 case 4:
44971                     if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
44972                         a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
44973                         break;
44974 #ifdef HAVE_LONG_LONG
44975                     } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
44976                         lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
44977                         goto long_long;
44978 #endif
44979                     }
44980                     CYTHON_FALLTHROUGH;
44981                 default: return PyLong_Type.tp_as_number->nb_and(op1, op2);
44982             }
44983         }
44984                 x = a & b;
44985             return PyLong_FromLong(x);
44986 #ifdef HAVE_LONG_LONG
44987         long_long:
44988                 llx = lla & llb;
44989             return PyLong_FromLongLong(llx);
44990 #endif
44991 
44992 
44993     }
44994     #endif
44995     return (inplace ? PyNumber_InPlaceAnd : PyNumber_And)(op1, op2);
44996 }
44997 #endif
44998 
44999 /* PyIntCompare */
45000   static CYTHON_INLINE PyObject* __Pyx_PyInt_NeObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) {
45001     if (op1 == op2) {
45002         Py_RETURN_FALSE;
45003     }
45004     #if PY_MAJOR_VERSION < 3
45005     if (likely(PyInt_CheckExact(op1))) {
45006         const long b = intval;
45007         long a = PyInt_AS_LONG(op1);
45008         if (a != b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
45009     }
45010     #endif
45011     #if CYTHON_USE_PYLONG_INTERNALS
45012     if (likely(PyLong_CheckExact(op1))) {
45013         int unequal;
45014         unsigned long uintval;
45015         Py_ssize_t size = Py_SIZE(op1);
45016         const digit* digits = ((PyLongObject*)op1)->ob_digit;
45017         if (intval == 0) {
45018             if (size != 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
45019         } else if (intval < 0) {
45020             if (size >= 0)
45021                 Py_RETURN_TRUE;
45022             intval = -intval;
45023             size = -size;
45024         } else {
45025             if (size <= 0)
45026                 Py_RETURN_TRUE;
45027         }
45028         uintval = (unsigned long) intval;
45029 #if PyLong_SHIFT * 4 < SIZEOF_LONG*8
45030         if (uintval >> (PyLong_SHIFT * 4)) {
45031             unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
45032                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
45033         } else
45034 #endif
45035 #if PyLong_SHIFT * 3 < SIZEOF_LONG*8
45036         if (uintval >> (PyLong_SHIFT * 3)) {
45037             unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
45038                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
45039         } else
45040 #endif
45041 #if PyLong_SHIFT * 2 < SIZEOF_LONG*8
45042         if (uintval >> (PyLong_SHIFT * 2)) {
45043             unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
45044                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
45045         } else
45046 #endif
45047 #if PyLong_SHIFT * 1 < SIZEOF_LONG*8
45048         if (uintval >> (PyLong_SHIFT * 1)) {
45049             unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
45050                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
45051         } else
45052 #endif
45053             unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
45054         if (unequal != 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
45055     }
45056     #endif
45057     if (PyFloat_CheckExact(op1)) {
45058         const long b = intval;
45059         double a = PyFloat_AS_DOUBLE(op1);
45060         if ((double)a != (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
45061     }
45062     return (
45063         PyObject_RichCompare(op1, op2, Py_NE));
45064 }
45065 
45066 /* None */
45067   static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
45068     PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
45069 }
45070 
45071 /* PyIntFromDouble */
45072   #if PY_MAJOR_VERSION < 3
45073 static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value) {
45074     if (value >= (double)LONG_MIN && value <= (double)LONG_MAX) {
45075         return PyInt_FromLong((long)value);
45076     }
45077     return PyLong_FromDouble(value);
45078 }
45079 #endif
45080 
45081 /* DictGetItem */
45082   #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
45083 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
45084     PyObject *value;
45085     value = PyDict_GetItemWithError(d, key);
45086     if (unlikely(!value)) {
45087         if (!PyErr_Occurred()) {
45088             if (unlikely(PyTuple_Check(key))) {
45089                 PyObject* args = PyTuple_Pack(1, key);
45090                 if (likely(args)) {
45091                     PyErr_SetObject(PyExc_KeyError, args);
45092                     Py_DECREF(args);
45093                 }
45094             } else {
45095                 PyErr_SetObject(PyExc_KeyError, key);
45096             }
45097         }
45098         return NULL;
45099     }
45100     Py_INCREF(value);
45101     return value;
45102 }
45103 #endif
45104 
45105 /* BytesEquals */
45106   static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
45107 #if CYTHON_COMPILING_IN_PYPY
45108     return PyObject_RichCompareBool(s1, s2, equals);
45109 #else
45110     if (s1 == s2) {
45111         return (equals == Py_EQ);
45112     } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
45113         const char *ps1, *ps2;
45114         Py_ssize_t length = PyBytes_GET_SIZE(s1);
45115         if (length != PyBytes_GET_SIZE(s2))
45116             return (equals == Py_NE);
45117         ps1 = PyBytes_AS_STRING(s1);
45118         ps2 = PyBytes_AS_STRING(s2);
45119         if (ps1[0] != ps2[0]) {
45120             return (equals == Py_NE);
45121         } else if (length == 1) {
45122             return (equals == Py_EQ);
45123         } else {
45124             int result;
45125 #if CYTHON_USE_UNICODE_INTERNALS
45126             Py_hash_t hash1, hash2;
45127             hash1 = ((PyBytesObject*)s1)->ob_shash;
45128             hash2 = ((PyBytesObject*)s2)->ob_shash;
45129             if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
45130                 return (equals == Py_NE);
45131             }
45132 #endif
45133             result = memcmp(ps1, ps2, (size_t)length);
45134             return (equals == Py_EQ) ? (result == 0) : (result != 0);
45135         }
45136     } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
45137         return (equals == Py_NE);
45138     } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
45139         return (equals == Py_NE);
45140     } else {
45141         int result;
45142         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
45143         if (!py_result)
45144             return -1;
45145         result = __Pyx_PyObject_IsTrue(py_result);
45146         Py_DECREF(py_result);
45147         return result;
45148     }
45149 #endif
45150 }
45151 
45152 /* UnicodeEquals */
45153   static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
45154 #if CYTHON_COMPILING_IN_PYPY
45155     return PyObject_RichCompareBool(s1, s2, equals);
45156 #else
45157 #if PY_MAJOR_VERSION < 3
45158     PyObject* owned_ref = NULL;
45159 #endif
45160     int s1_is_unicode, s2_is_unicode;
45161     if (s1 == s2) {
45162         goto return_eq;
45163     }
45164     s1_is_unicode = PyUnicode_CheckExact(s1);
45165     s2_is_unicode = PyUnicode_CheckExact(s2);
45166 #if PY_MAJOR_VERSION < 3
45167     if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
45168         owned_ref = PyUnicode_FromObject(s2);
45169         if (unlikely(!owned_ref))
45170             return -1;
45171         s2 = owned_ref;
45172         s2_is_unicode = 1;
45173     } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
45174         owned_ref = PyUnicode_FromObject(s1);
45175         if (unlikely(!owned_ref))
45176             return -1;
45177         s1 = owned_ref;
45178         s1_is_unicode = 1;
45179     } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
45180         return __Pyx_PyBytes_Equals(s1, s2, equals);
45181     }
45182 #endif
45183     if (s1_is_unicode & s2_is_unicode) {
45184         Py_ssize_t length;
45185         int kind;
45186         void *data1, *data2;
45187         if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
45188             return -1;
45189         length = __Pyx_PyUnicode_GET_LENGTH(s1);
45190         if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
45191             goto return_ne;
45192         }
45193 #if CYTHON_USE_UNICODE_INTERNALS
45194         {
45195             Py_hash_t hash1, hash2;
45196         #if CYTHON_PEP393_ENABLED
45197             hash1 = ((PyASCIIObject*)s1)->hash;
45198             hash2 = ((PyASCIIObject*)s2)->hash;
45199         #else
45200             hash1 = ((PyUnicodeObject*)s1)->hash;
45201             hash2 = ((PyUnicodeObject*)s2)->hash;
45202         #endif
45203             if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
45204                 goto return_ne;
45205             }
45206         }
45207 #endif
45208         kind = __Pyx_PyUnicode_KIND(s1);
45209         if (kind != __Pyx_PyUnicode_KIND(s2)) {
45210             goto return_ne;
45211         }
45212         data1 = __Pyx_PyUnicode_DATA(s1);
45213         data2 = __Pyx_PyUnicode_DATA(s2);
45214         if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
45215             goto return_ne;
45216         } else if (length == 1) {
45217             goto return_eq;
45218         } else {
45219             int result = memcmp(data1, data2, (size_t)(length * kind));
45220             #if PY_MAJOR_VERSION < 3
45221             Py_XDECREF(owned_ref);
45222             #endif
45223             return (equals == Py_EQ) ? (result == 0) : (result != 0);
45224         }
45225     } else if ((s1 == Py_None) & s2_is_unicode) {
45226         goto return_ne;
45227     } else if ((s2 == Py_None) & s1_is_unicode) {
45228         goto return_ne;
45229     } else {
45230         int result;
45231         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
45232         #if PY_MAJOR_VERSION < 3
45233         Py_XDECREF(owned_ref);
45234         #endif
45235         if (!py_result)
45236             return -1;
45237         result = __Pyx_PyObject_IsTrue(py_result);
45238         Py_DECREF(py_result);
45239         return result;
45240     }
45241 return_eq:
45242     #if PY_MAJOR_VERSION < 3
45243     Py_XDECREF(owned_ref);
45244     #endif
45245     return (equals == Py_EQ);
45246 return_ne:
45247     #if PY_MAJOR_VERSION < 3
45248     Py_XDECREF(owned_ref);
45249     #endif
45250     return (equals == Py_NE);
45251 #endif
45252 }
45253 
45254 /* RaiseTooManyValuesToUnpack */
45255   static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
45256     PyErr_Format(PyExc_ValueError,
45257                  "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
45258 }
45259 
45260 /* RaiseNeedMoreValuesToUnpack */
45261   static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
45262     PyErr_Format(PyExc_ValueError,
45263                  "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
45264                  index, (index == 1) ? "" : "s");
45265 }
45266 
45267 /* IterFinish */
45268   static CYTHON_INLINE int __Pyx_IterFinish(void) {
45269 #if CYTHON_FAST_THREAD_STATE
45270     PyThreadState *tstate = __Pyx_PyThreadState_Current;
45271     PyObject* exc_type = tstate->curexc_type;
45272     if (unlikely(exc_type)) {
45273         if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
45274             PyObject *exc_value, *exc_tb;
45275             exc_value = tstate->curexc_value;
45276             exc_tb = tstate->curexc_traceback;
45277             tstate->curexc_type = 0;
45278             tstate->curexc_value = 0;
45279             tstate->curexc_traceback = 0;
45280             Py_DECREF(exc_type);
45281             Py_XDECREF(exc_value);
45282             Py_XDECREF(exc_tb);
45283             return 0;
45284         } else {
45285             return -1;
45286         }
45287     }
45288     return 0;
45289 #else
45290     if (unlikely(PyErr_Occurred())) {
45291         if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
45292             PyErr_Clear();
45293             return 0;
45294         } else {
45295             return -1;
45296         }
45297     }
45298     return 0;
45299 #endif
45300 }
45301 
45302 /* UnpackItemEndCheck */
45303   static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
45304     if (unlikely(retval)) {
45305         Py_DECREF(retval);
45306         __Pyx_RaiseTooManyValuesError(expected);
45307         return -1;
45308     } else {
45309         return __Pyx_IterFinish();
45310     }
45311     return 0;
45312 }
45313 
45314 /* Import */
45315   static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
45316     PyObject *empty_list = 0;
45317     PyObject *module = 0;
45318     PyObject *global_dict = 0;
45319     PyObject *empty_dict = 0;
45320     PyObject *list;
45321     #if PY_MAJOR_VERSION < 3
45322     PyObject *py_import;
45323     py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
45324     if (!py_import)
45325         goto bad;
45326     #endif
45327     if (from_list)
45328         list = from_list;
45329     else {
45330         empty_list = PyList_New(0);
45331         if (!empty_list)
45332             goto bad;
45333         list = empty_list;
45334     }
45335     global_dict = PyModule_GetDict(__pyx_m);
45336     if (!global_dict)
45337         goto bad;
45338     empty_dict = PyDict_New();
45339     if (!empty_dict)
45340         goto bad;
45341     {
45342         #if PY_MAJOR_VERSION >= 3
45343         if (level == -1) {
45344             if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
45345                 module = PyImport_ImportModuleLevelObject(
45346                     name, global_dict, empty_dict, list, 1);
45347                 if (!module) {
45348                     if (!PyErr_ExceptionMatches(PyExc_ImportError))
45349                         goto bad;
45350                     PyErr_Clear();
45351                 }
45352             }
45353             level = 0;
45354         }
45355         #endif
45356         if (!module) {
45357             #if PY_MAJOR_VERSION < 3
45358             PyObject *py_level = PyInt_FromLong(level);
45359             if (!py_level)
45360                 goto bad;
45361             module = PyObject_CallFunctionObjArgs(py_import,
45362                 name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
45363             Py_DECREF(py_level);
45364             #else
45365             module = PyImport_ImportModuleLevelObject(
45366                 name, global_dict, empty_dict, list, level);
45367             #endif
45368         }
45369     }
45370 bad:
45371     #if PY_MAJOR_VERSION < 3
45372     Py_XDECREF(py_import);
45373     #endif
45374     Py_XDECREF(empty_list);
45375     Py_XDECREF(empty_dict);
45376     return module;
45377 }
45378 
45379 /* ImportFrom */
45380   static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
45381     PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
45382     if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
45383         PyErr_Format(PyExc_ImportError,
45384         #if PY_MAJOR_VERSION < 3
45385             "cannot import name %.230s", PyString_AS_STRING(name));
45386         #else
45387             "cannot import name %S", name);
45388         #endif
45389     }
45390     return value;
45391 }
45392 
45393 /* SliceObject */
45394   static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
45395         Py_ssize_t cstart, Py_ssize_t cstop,
45396         PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
45397         int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
45398 #if CYTHON_USE_TYPE_SLOTS
45399     PyMappingMethods* mp;
45400 #if PY_MAJOR_VERSION < 3
45401     PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
45402     if (likely(ms && ms->sq_slice)) {
45403         if (!has_cstart) {
45404             if (_py_start && (*_py_start != Py_None)) {
45405                 cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
45406                 if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
45407             } else
45408                 cstart = 0;
45409         }
45410         if (!has_cstop) {
45411             if (_py_stop && (*_py_stop != Py_None)) {
45412                 cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
45413                 if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
45414             } else
45415                 cstop = PY_SSIZE_T_MAX;
45416         }
45417         if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
45418             Py_ssize_t l = ms->sq_length(obj);
45419             if (likely(l >= 0)) {
45420                 if (cstop < 0) {
45421                     cstop += l;
45422                     if (cstop < 0) cstop = 0;
45423                 }
45424                 if (cstart < 0) {
45425                     cstart += l;
45426                     if (cstart < 0) cstart = 0;
45427                 }
45428             } else {
45429                 if (!PyErr_ExceptionMatches(PyExc_OverflowError))
45430                     goto bad;
45431                 PyErr_Clear();
45432             }
45433         }
45434         return ms->sq_slice(obj, cstart, cstop);
45435     }
45436 #endif
45437     mp = Py_TYPE(obj)->tp_as_mapping;
45438     if (likely(mp && mp->mp_subscript))
45439 #endif
45440     {
45441         PyObject* result;
45442         PyObject *py_slice, *py_start, *py_stop;
45443         if (_py_slice) {
45444             py_slice = *_py_slice;
45445         } else {
45446             PyObject* owned_start = NULL;
45447             PyObject* owned_stop = NULL;
45448             if (_py_start) {
45449                 py_start = *_py_start;
45450             } else {
45451                 if (has_cstart) {
45452                     owned_start = py_start = PyInt_FromSsize_t(cstart);
45453                     if (unlikely(!py_start)) goto bad;
45454                 } else
45455                     py_start = Py_None;
45456             }
45457             if (_py_stop) {
45458                 py_stop = *_py_stop;
45459             } else {
45460                 if (has_cstop) {
45461                     owned_stop = py_stop = PyInt_FromSsize_t(cstop);
45462                     if (unlikely(!py_stop)) {
45463                         Py_XDECREF(owned_start);
45464                         goto bad;
45465                     }
45466                 } else
45467                     py_stop = Py_None;
45468             }
45469             py_slice = PySlice_New(py_start, py_stop, Py_None);
45470             Py_XDECREF(owned_start);
45471             Py_XDECREF(owned_stop);
45472             if (unlikely(!py_slice)) goto bad;
45473         }
45474 #if CYTHON_USE_TYPE_SLOTS
45475         result = mp->mp_subscript(obj, py_slice);
45476 #else
45477         result = PyObject_GetItem(obj, py_slice);
45478 #endif
45479         if (!_py_slice) {
45480             Py_DECREF(py_slice);
45481         }
45482         return result;
45483     }
45484     PyErr_Format(PyExc_TypeError,
45485         "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
45486 bad:
45487     return NULL;
45488 }
45489 
45490 /* PatchModuleWithCoroutine */
45491   static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
45492 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
45493     int result;
45494     PyObject *globals, *result_obj;
45495     globals = PyDict_New();  if (unlikely(!globals)) goto ignore;
45496     result = PyDict_SetItemString(globals, "_cython_coroutine_type",
45497     #ifdef __Pyx_Coroutine_USED
45498         (PyObject*)__pyx_CoroutineType);
45499     #else
45500         Py_None);
45501     #endif
45502     if (unlikely(result < 0)) goto ignore;
45503     result = PyDict_SetItemString(globals, "_cython_generator_type",
45504     #ifdef __Pyx_Generator_USED
45505         (PyObject*)__pyx_GeneratorType);
45506     #else
45507         Py_None);
45508     #endif
45509     if (unlikely(result < 0)) goto ignore;
45510     if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore;
45511     if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore;
45512     result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
45513     if (unlikely(!result_obj)) goto ignore;
45514     Py_DECREF(result_obj);
45515     Py_DECREF(globals);
45516     return module;
45517 ignore:
45518     Py_XDECREF(globals);
45519     PyErr_WriteUnraisable(module);
45520     if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) {
45521         Py_DECREF(module);
45522         module = NULL;
45523     }
45524 #else
45525     py_code++;
45526 #endif
45527     return module;
45528 }
45529 
45530 /* PatchInspect */
45531   static PyObject* __Pyx_patch_inspect(PyObject* module) {
45532 #if defined(__Pyx_Generator_USED) && (!defined(CYTHON_PATCH_INSPECT) || CYTHON_PATCH_INSPECT)
45533     static int inspect_patched = 0;
45534     if (unlikely((!inspect_patched) && module)) {
45535         module = __Pyx_Coroutine_patch_module(
45536             module, ""
45537 "old_types = getattr(_module.isgenerator, '_cython_generator_types', None)\n"
45538 "if old_types is None or not isinstance(old_types, set):\n"
45539 "    old_types = set()\n"
45540 "    def cy_wrap(orig_func, type=type, cython_generator_types=old_types):\n"
45541 "        def cy_isgenerator(obj): return type(obj) in cython_generator_types or orig_func(obj)\n"
45542 "        cy_isgenerator._cython_generator_types = cython_generator_types\n"
45543 "        return cy_isgenerator\n"
45544 "    _module.isgenerator = cy_wrap(_module.isgenerator)\n"
45545 "old_types.add(_cython_generator_type)\n"
45546         );
45547         inspect_patched = 1;
45548     }
45549 #else
45550     if ((0)) return __Pyx_Coroutine_patch_module(module, NULL);
45551 #endif
45552     return module;
45553 }
45554 
45555 /* PyErrExceptionMatches */
45556   #if CYTHON_FAST_THREAD_STATE
45557 static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
45558     Py_ssize_t i, n;
45559     n = PyTuple_GET_SIZE(tuple);
45560 #if PY_MAJOR_VERSION >= 3
45561     for (i=0; i<n; i++) {
45562         if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
45563     }
45564 #endif
45565     for (i=0; i<n; i++) {
45566         if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
45567     }
45568     return 0;
45569 }
45570 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
45571     PyObject *exc_type = tstate->curexc_type;
45572     if (exc_type == err) return 1;
45573     if (unlikely(!exc_type)) return 0;
45574     if (unlikely(PyTuple_Check(err)))
45575         return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
45576     return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
45577 }
45578 #endif
45579 
45580 /* GetAttr */
45581   static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
45582 #if CYTHON_USE_TYPE_SLOTS
45583 #if PY_MAJOR_VERSION >= 3
45584     if (likely(PyUnicode_Check(n)))
45585 #else
45586     if (likely(PyString_Check(n)))
45587 #endif
45588         return __Pyx_PyObject_GetAttrStr(o, n);
45589 #endif
45590     return PyObject_GetAttr(o, n);
45591 }
45592 
45593 /* GetAttr3 */
45594   static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
45595     __Pyx_PyThreadState_declare
45596     __Pyx_PyThreadState_assign
45597     if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
45598         return NULL;
45599     __Pyx_PyErr_Clear();
45600     Py_INCREF(d);
45601     return d;
45602 }
45603 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
45604     PyObject *r = __Pyx_GetAttr(o, n);
45605     return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
45606 }
45607 
45608 /* HasAttr */
45609   static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
45610     PyObject *r;
45611     if (unlikely(!__Pyx_PyBaseString_Check(n))) {
45612         PyErr_SetString(PyExc_TypeError,
45613                         "hasattr(): attribute name must be string");
45614         return -1;
45615     }
45616     r = __Pyx_GetAttr(o, n);
45617     if (unlikely(!r)) {
45618         PyErr_Clear();
45619         return 0;
45620     } else {
45621         Py_DECREF(r);
45622         return 1;
45623     }
45624 }
45625 
45626 /* RaiseNoneIterError */
45627   static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
45628     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
45629 }
45630 
45631 /* PyObject_GenericGetAttrNoDict */
45632   #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
45633 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
45634     PyErr_Format(PyExc_AttributeError,
45635 #if PY_MAJOR_VERSION >= 3
45636                  "'%.50s' object has no attribute '%U'",
45637                  tp->tp_name, attr_name);
45638 #else
45639                  "'%.50s' object has no attribute '%.400s'",
45640                  tp->tp_name, PyString_AS_STRING(attr_name));
45641 #endif
45642     return NULL;
45643 }
45644 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
45645     PyObject *descr;
45646     PyTypeObject *tp = Py_TYPE(obj);
45647     if (unlikely(!PyString_Check(attr_name))) {
45648         return PyObject_GenericGetAttr(obj, attr_name);
45649     }
45650     assert(!tp->tp_dictoffset);
45651     descr = _PyType_Lookup(tp, attr_name);
45652     if (unlikely(!descr)) {
45653         return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
45654     }
45655     Py_INCREF(descr);
45656     #if PY_MAJOR_VERSION < 3
45657     if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
45658     #endif
45659     {
45660         descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
45661         if (unlikely(f)) {
45662             PyObject *res = f(descr, obj, (PyObject *)tp);
45663             Py_DECREF(descr);
45664             return res;
45665         }
45666     }
45667     return descr;
45668 }
45669 #endif
45670 
45671 /* PyObject_GenericGetAttr */
45672   #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
45673 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
45674     if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
45675         return PyObject_GenericGetAttr(obj, attr_name);
45676     }
45677     return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
45678 }
45679 #endif
45680 
45681 /* SetVTable */
45682   static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
45683 #if PY_VERSION_HEX >= 0x02070000
45684     PyObject *ob = PyCapsule_New(vtable, 0, 0);
45685 #else
45686     PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
45687 #endif
45688     if (!ob)
45689         goto bad;
45690     if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0)
45691         goto bad;
45692     Py_DECREF(ob);
45693     return 0;
45694 bad:
45695     Py_XDECREF(ob);
45696     return -1;
45697 }
45698 
45699 /* PyObjectGetAttrStrNoError */
45700   static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
45701     __Pyx_PyThreadState_declare
45702     __Pyx_PyThreadState_assign
45703     if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
45704         __Pyx_PyErr_Clear();
45705 }
45706 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
45707     PyObject *result;
45708 #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
45709     PyTypeObject* tp = Py_TYPE(obj);
45710     if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
45711         return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
45712     }
45713 #endif
45714     result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
45715     if (unlikely(!result)) {
45716         __Pyx_PyObject_GetAttrStr_ClearAttributeError();
45717     }
45718     return result;
45719 }
45720 
45721 /* SetupReduce */
45722   static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
45723   int ret;
45724   PyObject *name_attr;
45725   name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2);
45726   if (likely(name_attr)) {
45727       ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
45728   } else {
45729       ret = -1;
45730   }
45731   if (unlikely(ret < 0)) {
45732       PyErr_Clear();
45733       ret = 0;
45734   }
45735   Py_XDECREF(name_attr);
45736   return ret;
45737 }
45738 static int __Pyx_setup_reduce(PyObject* type_obj) {
45739     int ret = 0;
45740     PyObject *object_reduce = NULL;
45741     PyObject *object_reduce_ex = NULL;
45742     PyObject *reduce = NULL;
45743     PyObject *reduce_ex = NULL;
45744     PyObject *reduce_cython = NULL;
45745     PyObject *setstate = NULL;
45746     PyObject *setstate_cython = NULL;
45747 #if CYTHON_USE_PYTYPE_LOOKUP
45748     if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
45749 #else
45750     if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
45751 #endif
45752 #if CYTHON_USE_PYTYPE_LOOKUP
45753     object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
45754 #else
45755     object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
45756 #endif
45757     reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
45758     if (reduce_ex == object_reduce_ex) {
45759 #if CYTHON_USE_PYTYPE_LOOKUP
45760         object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
45761 #else
45762         object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
45763 #endif
45764         reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
45765         if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
45766             reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
45767             if (likely(reduce_cython)) {
45768                 ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
45769                 ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
45770             } else if (reduce == object_reduce || PyErr_Occurred()) {
45771                 goto __PYX_BAD;
45772             }
45773             setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
45774             if (!setstate) PyErr_Clear();
45775             if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
45776                 setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
45777                 if (likely(setstate_cython)) {
45778                     ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
45779                     ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
45780                 } else if (!setstate || PyErr_Occurred()) {
45781                     goto __PYX_BAD;
45782                 }
45783             }
45784             PyType_Modified((PyTypeObject*)type_obj);
45785         }
45786     }
45787     goto __PYX_GOOD;
45788 __PYX_BAD:
45789     if (!PyErr_Occurred())
45790         PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
45791     ret = -1;
45792 __PYX_GOOD:
45793 #if !CYTHON_USE_PYTYPE_LOOKUP
45794     Py_XDECREF(object_reduce);
45795     Py_XDECREF(object_reduce_ex);
45796 #endif
45797     Py_XDECREF(reduce);
45798     Py_XDECREF(reduce_ex);
45799     Py_XDECREF(reduce_cython);
45800     Py_XDECREF(setstate);
45801     Py_XDECREF(setstate_cython);
45802     return ret;
45803 }
45804 
45805 /* TypeImport */
45806   #ifndef __PYX_HAVE_RT_ImportType
45807 #define __PYX_HAVE_RT_ImportType
45808 static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
45809     size_t size, enum __Pyx_ImportType_CheckSize check_size)
45810 {
45811     PyObject *result = 0;
45812     char warning[200];
45813     Py_ssize_t basicsize;
45814 #ifdef Py_LIMITED_API
45815     PyObject *py_basicsize;
45816 #endif
45817     result = PyObject_GetAttrString(module, class_name);
45818     if (!result)
45819         goto bad;
45820     if (!PyType_Check(result)) {
45821         PyErr_Format(PyExc_TypeError,
45822             "%.200s.%.200s is not a type object",
45823             module_name, class_name);
45824         goto bad;
45825     }
45826 #ifndef Py_LIMITED_API
45827     basicsize = ((PyTypeObject *)result)->tp_basicsize;
45828 #else
45829     py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
45830     if (!py_basicsize)
45831         goto bad;
45832     basicsize = PyLong_AsSsize_t(py_basicsize);
45833     Py_DECREF(py_basicsize);
45834     py_basicsize = 0;
45835     if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
45836         goto bad;
45837 #endif
45838     if ((size_t)basicsize < size) {
45839         PyErr_Format(PyExc_ValueError,
45840             "%.200s.%.200s size changed, may indicate binary incompatibility. "
45841             "Expected %zd from C header, got %zd from PyObject",
45842             module_name, class_name, size, basicsize);
45843         goto bad;
45844     }
45845     if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
45846         PyErr_Format(PyExc_ValueError,
45847             "%.200s.%.200s size changed, may indicate binary incompatibility. "
45848             "Expected %zd from C header, got %zd from PyObject",
45849             module_name, class_name, size, basicsize);
45850         goto bad;
45851     }
45852     else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
45853         PyOS_snprintf(warning, sizeof(warning),
45854             "%s.%s size changed, may indicate binary incompatibility. "
45855             "Expected %zd from C header, got %zd from PyObject",
45856             module_name, class_name, size, basicsize);
45857         if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
45858     }
45859     return (PyTypeObject *)result;
45860 bad:
45861     Py_XDECREF(result);
45862     return NULL;
45863 }
45864 #endif
45865 
45866 /* GetVTable */
45867   static void* __Pyx_GetVtable(PyObject *dict) {
45868     void* ptr;
45869     PyObject *ob = PyObject_GetItem(dict, __pyx_n_s_pyx_vtable);
45870     if (!ob)
45871         goto bad;
45872 #if PY_VERSION_HEX >= 0x02070000
45873     ptr = PyCapsule_GetPointer(ob, 0);
45874 #else
45875     ptr = PyCObject_AsVoidPtr(ob);
45876 #endif
45877     if (!ptr && !PyErr_Occurred())
45878         PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
45879     Py_DECREF(ob);
45880     return ptr;
45881 bad:
45882     Py_XDECREF(ob);
45883     return NULL;
45884 }
45885 
45886 /* GetNameInClass */
45887   static PyObject *__Pyx_GetGlobalNameAfterAttributeLookup(PyObject *name) {
45888     PyObject *result;
45889     __Pyx_PyThreadState_declare
45890     __Pyx_PyThreadState_assign
45891     if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
45892         return NULL;
45893     __Pyx_PyErr_Clear();
45894     __Pyx_GetModuleGlobalNameUncached(result, name);
45895     return result;
45896 }
45897 static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name) {
45898     PyObject *result;
45899     result = __Pyx_PyObject_GetAttrStr(nmspace, name);
45900     if (!result) {
45901         result = __Pyx_GetGlobalNameAfterAttributeLookup(name);
45902     }
45903     return result;
45904 }
45905 
45906 /* CLineInTraceback */
45907   #ifndef CYTHON_CLINE_IN_TRACEBACK
45908 static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
45909     PyObject *use_cline;
45910     PyObject *ptype, *pvalue, *ptraceback;
45911 #if CYTHON_COMPILING_IN_CPYTHON
45912     PyObject **cython_runtime_dict;
45913 #endif
45914     if (unlikely(!__pyx_cython_runtime)) {
45915         return c_line;
45916     }
45917     __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
45918 #if CYTHON_COMPILING_IN_CPYTHON
45919     cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
45920     if (likely(cython_runtime_dict)) {
45921         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
45922             use_cline, *cython_runtime_dict,
45923             __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
45924     } else
45925 #endif
45926     {
45927       PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
45928       if (use_cline_obj) {
45929         use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
45930         Py_DECREF(use_cline_obj);
45931       } else {
45932         PyErr_Clear();
45933         use_cline = NULL;
45934       }
45935     }
45936     if (!use_cline) {
45937         c_line = 0;
45938         PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
45939     }
45940     else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
45941         c_line = 0;
45942     }
45943     __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
45944     return c_line;
45945 }
45946 #endif
45947 
45948 /* CodeObjectCache */
45949   static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
45950     int start = 0, mid = 0, end = count - 1;
45951     if (end >= 0 && code_line > entries[end].code_line) {
45952         return count;
45953     }
45954     while (start < end) {
45955         mid = start + (end - start) / 2;
45956         if (code_line < entries[mid].code_line) {
45957             end = mid;
45958         } else if (code_line > entries[mid].code_line) {
45959              start = mid + 1;
45960         } else {
45961             return mid;
45962         }
45963     }
45964     if (code_line <= entries[mid].code_line) {
45965         return mid;
45966     } else {
45967         return mid + 1;
45968     }
45969 }
45970 static PyCodeObject *__pyx_find_code_object(int code_line) {
45971     PyCodeObject* code_object;
45972     int pos;
45973     if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
45974         return NULL;
45975     }
45976     pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
45977     if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
45978         return NULL;
45979     }
45980     code_object = __pyx_code_cache.entries[pos].code_object;
45981     Py_INCREF(code_object);
45982     return code_object;
45983 }
45984 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
45985     int pos, i;
45986     __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
45987     if (unlikely(!code_line)) {
45988         return;
45989     }
45990     if (unlikely(!entries)) {
45991         entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
45992         if (likely(entries)) {
45993             __pyx_code_cache.entries = entries;
45994             __pyx_code_cache.max_count = 64;
45995             __pyx_code_cache.count = 1;
45996             entries[0].code_line = code_line;
45997             entries[0].code_object = code_object;
45998             Py_INCREF(code_object);
45999         }
46000         return;
46001     }
46002     pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
46003     if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
46004         PyCodeObject* tmp = entries[pos].code_object;
46005         entries[pos].code_object = code_object;
46006         Py_DECREF(tmp);
46007         return;
46008     }
46009     if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
46010         int new_max = __pyx_code_cache.max_count + 64;
46011         entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
46012             __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
46013         if (unlikely(!entries)) {
46014             return;
46015         }
46016         __pyx_code_cache.entries = entries;
46017         __pyx_code_cache.max_count = new_max;
46018     }
46019     for (i=__pyx_code_cache.count; i>pos; i--) {
46020         entries[i] = entries[i-1];
46021     }
46022     entries[pos].code_line = code_line;
46023     entries[pos].code_object = code_object;
46024     __pyx_code_cache.count++;
46025     Py_INCREF(code_object);
46026 }
46027 
46028 /* AddTraceback */
46029   #include "compile.h"
46030 #include "frameobject.h"
46031 #include "traceback.h"
46032 static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
46033             const char *funcname, int c_line,
46034             int py_line, const char *filename) {
46035     PyCodeObject *py_code = 0;
46036     PyObject *py_srcfile = 0;
46037     PyObject *py_funcname = 0;
46038     #if PY_MAJOR_VERSION < 3
46039     py_srcfile = PyString_FromString(filename);
46040     #else
46041     py_srcfile = PyUnicode_FromString(filename);
46042     #endif
46043     if (!py_srcfile) goto bad;
46044     if (c_line) {
46045         #if PY_MAJOR_VERSION < 3
46046         py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
46047         #else
46048         py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
46049         #endif
46050     }
46051     else {
46052         #if PY_MAJOR_VERSION < 3
46053         py_funcname = PyString_FromString(funcname);
46054         #else
46055         py_funcname = PyUnicode_FromString(funcname);
46056         #endif
46057     }
46058     if (!py_funcname) goto bad;
46059     py_code = __Pyx_PyCode_New(
46060         0,
46061         0,
46062         0,
46063         0,
46064         0,
46065         __pyx_empty_bytes, /*PyObject *code,*/
46066         __pyx_empty_tuple, /*PyObject *consts,*/
46067         __pyx_empty_tuple, /*PyObject *names,*/
46068         __pyx_empty_tuple, /*PyObject *varnames,*/
46069         __pyx_empty_tuple, /*PyObject *freevars,*/
46070         __pyx_empty_tuple, /*PyObject *cellvars,*/
46071         py_srcfile,   /*PyObject *filename,*/
46072         py_funcname,  /*PyObject *name,*/
46073         py_line,
46074         __pyx_empty_bytes  /*PyObject *lnotab*/
46075     );
46076     Py_DECREF(py_srcfile);
46077     Py_DECREF(py_funcname);
46078     return py_code;
46079 bad:
46080     Py_XDECREF(py_srcfile);
46081     Py_XDECREF(py_funcname);
46082     return NULL;
46083 }
46084 static void __Pyx_AddTraceback(const char *funcname, int c_line,
46085                                int py_line, const char *filename) {
46086     PyCodeObject *py_code = 0;
46087     PyFrameObject *py_frame = 0;
46088     PyThreadState *tstate = __Pyx_PyThreadState_Current;
46089     if (c_line) {
46090         c_line = __Pyx_CLineForTraceback(tstate, c_line);
46091     }
46092     py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
46093     if (!py_code) {
46094         py_code = __Pyx_CreateCodeObjectForTraceback(
46095             funcname, c_line, py_line, filename);
46096         if (!py_code) goto bad;
46097         __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
46098     }
46099     py_frame = PyFrame_New(
46100         tstate,            /*PyThreadState *tstate,*/
46101         py_code,           /*PyCodeObject *code,*/
46102         __pyx_d,    /*PyObject *globals,*/
46103         0                  /*PyObject *locals*/
46104     );
46105     if (!py_frame) goto bad;
46106     __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
46107     PyTraceBack_Here(py_frame);
46108 bad:
46109     Py_XDECREF(py_code);
46110     Py_XDECREF(py_frame);
46111 }
46112 
46113 #if PY_MAJOR_VERSION < 3
46114 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) {
46115     if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags);
46116         if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags);
46117     PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name);
46118     return -1;
46119 }
46120 static void __Pyx_ReleaseBuffer(Py_buffer *view) {
46121     PyObject *obj = view->obj;
46122     if (!obj) return;
46123     if (PyObject_CheckBuffer(obj)) {
46124         PyBuffer_Release(view);
46125         return;
46126     }
46127     if ((0)) {}
46128         else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view);
46129     view->obj = NULL;
46130     Py_DECREF(obj);
46131 }
46132 #endif
46133 
46134 
46135   /* CIntFromPyVerify */
46136   #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
46137     __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
46138 #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
46139     __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
46140 #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
46141     {\
46142         func_type value = func_value;\
46143         if (sizeof(target_type) < sizeof(func_type)) {\
46144             if (unlikely(value != (func_type) (target_type) value)) {\
46145                 func_type zero = 0;\
46146                 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
46147                     return (target_type) -1;\
46148                 if (is_unsigned && unlikely(value < zero))\
46149                     goto raise_neg_overflow;\
46150                 else\
46151                     goto raise_overflow;\
46152             }\
46153         }\
46154         return (target_type) value;\
46155     }
46156 
46157 /* None */
46158   static CYTHON_INLINE long __Pyx_pow_long(long b, long e) {
46159     long t = b;
46160     switch (e) {
46161         case 3:
46162             t *= b;
46163         CYTHON_FALLTHROUGH;
46164         case 2:
46165             t *= b;
46166         CYTHON_FALLTHROUGH;
46167         case 1:
46168             return t;
46169         case 0:
46170             return 1;
46171     }
46172     #if 1
46173     if (unlikely(e<0)) return 0;
46174     #endif
46175     t = 1;
46176     while (likely(e)) {
46177         t *= (b * (e&1)) | ((~e)&1);
46178         b *= b;
46179         e >>= 1;
46180     }
46181     return t;
46182 }
46183 
46184 /* CIntToPy */
46185   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
46186     const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
46187     const int is_unsigned = neg_one > const_zero;
46188     if (is_unsigned) {
46189         if (sizeof(long) < sizeof(long)) {
46190             return PyInt_FromLong((long) value);
46191         } else if (sizeof(long) <= sizeof(unsigned long)) {
46192             return PyLong_FromUnsignedLong((unsigned long) value);
46193 #ifdef HAVE_LONG_LONG
46194         } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
46195             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
46196 #endif
46197         }
46198     } else {
46199         if (sizeof(long) <= sizeof(long)) {
46200             return PyInt_FromLong((long) value);
46201 #ifdef HAVE_LONG_LONG
46202         } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
46203             return PyLong_FromLongLong((PY_LONG_LONG) value);
46204 #endif
46205         }
46206     }
46207     {
46208         int one = 1; int little = (int)*(unsigned char *)&one;
46209         unsigned char *bytes = (unsigned char *)&value;
46210         return _PyLong_FromByteArray(bytes, sizeof(long),
46211                                      little, !is_unsigned);
46212     }
46213 }
46214 
46215 /* CIntToPy */
46216   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
46217     const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
46218     const int is_unsigned = neg_one > const_zero;
46219     if (is_unsigned) {
46220         if (sizeof(int) < sizeof(long)) {
46221             return PyInt_FromLong((long) value);
46222         } else if (sizeof(int) <= sizeof(unsigned long)) {
46223             return PyLong_FromUnsignedLong((unsigned long) value);
46224 #ifdef HAVE_LONG_LONG
46225         } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
46226             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
46227 #endif
46228         }
46229     } else {
46230         if (sizeof(int) <= sizeof(long)) {
46231             return PyInt_FromLong((long) value);
46232 #ifdef HAVE_LONG_LONG
46233         } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
46234             return PyLong_FromLongLong((PY_LONG_LONG) value);
46235 #endif
46236         }
46237     }
46238     {
46239         int one = 1; int little = (int)*(unsigned char *)&one;
46240         unsigned char *bytes = (unsigned char *)&value;
46241         return _PyLong_FromByteArray(bytes, sizeof(int),
46242                                      little, !is_unsigned);
46243     }
46244 }
46245 
46246 /* CIntToPy */
46247   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value) {
46248     const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) ((enum IClpSimplex::Status) 0 - (enum IClpSimplex::Status) 1), const_zero = (enum IClpSimplex::Status) 0;
46249     const int is_unsigned = neg_one > const_zero;
46250     if (is_unsigned) {
46251         if (sizeof(enum IClpSimplex::Status) < sizeof(long)) {
46252             return PyInt_FromLong((long) value);
46253         } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned long)) {
46254             return PyLong_FromUnsignedLong((unsigned long) value);
46255 #ifdef HAVE_LONG_LONG
46256         } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned PY_LONG_LONG)) {
46257             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
46258 #endif
46259         }
46260     } else {
46261         if (sizeof(enum IClpSimplex::Status) <= sizeof(long)) {
46262             return PyInt_FromLong((long) value);
46263 #ifdef HAVE_LONG_LONG
46264         } else if (sizeof(enum IClpSimplex::Status) <= sizeof(PY_LONG_LONG)) {
46265             return PyLong_FromLongLong((PY_LONG_LONG) value);
46266 #endif
46267         }
46268     }
46269     {
46270         int one = 1; int little = (int)*(unsigned char *)&one;
46271         unsigned char *bytes = (unsigned char *)&value;
46272         return _PyLong_FromByteArray(bytes, sizeof(enum IClpSimplex::Status),
46273                                      little, !is_unsigned);
46274     }
46275 }
46276 
46277 /* Declarations */
46278   #if CYTHON_CCOMPLEX
46279   #ifdef __cplusplus
46280     static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
46281       return ::std::complex< float >(x, y);
46282     }
46283   #else
46284     static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
46285       return x + y*(__pyx_t_float_complex)_Complex_I;
46286     }
46287   #endif
46288 #else
46289     static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
46290       __pyx_t_float_complex z;
46291       z.real = x;
46292       z.imag = y;
46293       return z;
46294     }
46295 #endif
46296 
46297 /* Arithmetic */
46298   #if CYTHON_CCOMPLEX
46299 #else
46300     static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
46301        return (a.real == b.real) && (a.imag == b.imag);
46302     }
46303     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
46304         __pyx_t_float_complex z;
46305         z.real = a.real + b.real;
46306         z.imag = a.imag + b.imag;
46307         return z;
46308     }
46309     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
46310         __pyx_t_float_complex z;
46311         z.real = a.real - b.real;
46312         z.imag = a.imag - b.imag;
46313         return z;
46314     }
46315     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
46316         __pyx_t_float_complex z;
46317         z.real = a.real * b.real - a.imag * b.imag;
46318         z.imag = a.real * b.imag + a.imag * b.real;
46319         return z;
46320     }
46321     #if 1
46322     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
46323         if (b.imag == 0) {
46324             return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
46325         } else if (fabsf(b.real) >= fabsf(b.imag)) {
46326             if (b.real == 0 && b.imag == 0) {
46327                 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
46328             } else {
46329                 float r = b.imag / b.real;
46330                 float s = (float)(1.0) / (b.real + b.imag * r);
46331                 return __pyx_t_float_complex_from_parts(
46332                     (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
46333             }
46334         } else {
46335             float r = b.real / b.imag;
46336             float s = (float)(1.0) / (b.imag + b.real * r);
46337             return __pyx_t_float_complex_from_parts(
46338                 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
46339         }
46340     }
46341     #else
46342     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
46343         if (b.imag == 0) {
46344             return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
46345         } else {
46346             float denom = b.real * b.real + b.imag * b.imag;
46347             return __pyx_t_float_complex_from_parts(
46348                 (a.real * b.real + a.imag * b.imag) / denom,
46349                 (a.imag * b.real - a.real * b.imag) / denom);
46350         }
46351     }
46352     #endif
46353     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
46354         __pyx_t_float_complex z;
46355         z.real = -a.real;
46356         z.imag = -a.imag;
46357         return z;
46358     }
46359     static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
46360        return (a.real == 0) && (a.imag == 0);
46361     }
46362     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
46363         __pyx_t_float_complex z;
46364         z.real =  a.real;
46365         z.imag = -a.imag;
46366         return z;
46367     }
46368     #if 1
46369         static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
46370           #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
46371             return sqrtf(z.real*z.real + z.imag*z.imag);
46372           #else
46373             return hypotf(z.real, z.imag);
46374           #endif
46375         }
46376         static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
46377             __pyx_t_float_complex z;
46378             float r, lnr, theta, z_r, z_theta;
46379             if (b.imag == 0 && b.real == (int)b.real) {
46380                 if (b.real < 0) {
46381                     float denom = a.real * a.real + a.imag * a.imag;
46382                     a.real = a.real / denom;
46383                     a.imag = -a.imag / denom;
46384                     b.real = -b.real;
46385                 }
46386                 switch ((int)b.real) {
46387                     case 0:
46388                         z.real = 1;
46389                         z.imag = 0;
46390                         return z;
46391                     case 1:
46392                         return a;
46393                     case 2:
46394                         return __Pyx_c_prod_float(a, a);
46395                     case 3:
46396                         z = __Pyx_c_prod_float(a, a);
46397                         return __Pyx_c_prod_float(z, a);
46398                     case 4:
46399                         z = __Pyx_c_prod_float(a, a);
46400                         return __Pyx_c_prod_float(z, z);
46401                 }
46402             }
46403             if (a.imag == 0) {
46404                 if (a.real == 0) {
46405                     return a;
46406                 } else if (b.imag == 0) {
46407                     z.real = powf(a.real, b.real);
46408                     z.imag = 0;
46409                     return z;
46410                 } else if (a.real > 0) {
46411                     r = a.real;
46412                     theta = 0;
46413                 } else {
46414                     r = -a.real;
46415                     theta = atan2f(0.0, -1.0);
46416                 }
46417             } else {
46418                 r = __Pyx_c_abs_float(a);
46419                 theta = atan2f(a.imag, a.real);
46420             }
46421             lnr = logf(r);
46422             z_r = expf(lnr * b.real - theta * b.imag);
46423             z_theta = theta * b.real + lnr * b.imag;
46424             z.real = z_r * cosf(z_theta);
46425             z.imag = z_r * sinf(z_theta);
46426             return z;
46427         }
46428     #endif
46429 #endif
46430 
46431 /* Declarations */
46432   #if CYTHON_CCOMPLEX
46433   #ifdef __cplusplus
46434     static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
46435       return ::std::complex< double >(x, y);
46436     }
46437   #else
46438     static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
46439       return x + y*(__pyx_t_double_complex)_Complex_I;
46440     }
46441   #endif
46442 #else
46443     static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
46444       __pyx_t_double_complex z;
46445       z.real = x;
46446       z.imag = y;
46447       return z;
46448     }
46449 #endif
46450 
46451 /* Arithmetic */
46452   #if CYTHON_CCOMPLEX
46453 #else
46454     static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
46455        return (a.real == b.real) && (a.imag == b.imag);
46456     }
46457     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
46458         __pyx_t_double_complex z;
46459         z.real = a.real + b.real;
46460         z.imag = a.imag + b.imag;
46461         return z;
46462     }
46463     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
46464         __pyx_t_double_complex z;
46465         z.real = a.real - b.real;
46466         z.imag = a.imag - b.imag;
46467         return z;
46468     }
46469     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
46470         __pyx_t_double_complex z;
46471         z.real = a.real * b.real - a.imag * b.imag;
46472         z.imag = a.real * b.imag + a.imag * b.real;
46473         return z;
46474     }
46475     #if 1
46476     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
46477         if (b.imag == 0) {
46478             return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
46479         } else if (fabs(b.real) >= fabs(b.imag)) {
46480             if (b.real == 0 && b.imag == 0) {
46481                 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
46482             } else {
46483                 double r = b.imag / b.real;
46484                 double s = (double)(1.0) / (b.real + b.imag * r);
46485                 return __pyx_t_double_complex_from_parts(
46486                     (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
46487             }
46488         } else {
46489             double r = b.real / b.imag;
46490             double s = (double)(1.0) / (b.imag + b.real * r);
46491             return __pyx_t_double_complex_from_parts(
46492                 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
46493         }
46494     }
46495     #else
46496     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
46497         if (b.imag == 0) {
46498             return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
46499         } else {
46500             double denom = b.real * b.real + b.imag * b.imag;
46501             return __pyx_t_double_complex_from_parts(
46502                 (a.real * b.real + a.imag * b.imag) / denom,
46503                 (a.imag * b.real - a.real * b.imag) / denom);
46504         }
46505     }
46506     #endif
46507     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
46508         __pyx_t_double_complex z;
46509         z.real = -a.real;
46510         z.imag = -a.imag;
46511         return z;
46512     }
46513     static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
46514        return (a.real == 0) && (a.imag == 0);
46515     }
46516     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
46517         __pyx_t_double_complex z;
46518         z.real =  a.real;
46519         z.imag = -a.imag;
46520         return z;
46521     }
46522     #if 1
46523         static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
46524           #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
46525             return sqrt(z.real*z.real + z.imag*z.imag);
46526           #else
46527             return hypot(z.real, z.imag);
46528           #endif
46529         }
46530         static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
46531             __pyx_t_double_complex z;
46532             double r, lnr, theta, z_r, z_theta;
46533             if (b.imag == 0 && b.real == (int)b.real) {
46534                 if (b.real < 0) {
46535                     double denom = a.real * a.real + a.imag * a.imag;
46536                     a.real = a.real / denom;
46537                     a.imag = -a.imag / denom;
46538                     b.real = -b.real;
46539                 }
46540                 switch ((int)b.real) {
46541                     case 0:
46542                         z.real = 1;
46543                         z.imag = 0;
46544                         return z;
46545                     case 1:
46546                         return a;
46547                     case 2:
46548                         return __Pyx_c_prod_double(a, a);
46549                     case 3:
46550                         z = __Pyx_c_prod_double(a, a);
46551                         return __Pyx_c_prod_double(z, a);
46552                     case 4:
46553                         z = __Pyx_c_prod_double(a, a);
46554                         return __Pyx_c_prod_double(z, z);
46555                 }
46556             }
46557             if (a.imag == 0) {
46558                 if (a.real == 0) {
46559                     return a;
46560                 } else if (b.imag == 0) {
46561                     z.real = pow(a.real, b.real);
46562                     z.imag = 0;
46563                     return z;
46564                 } else if (a.real > 0) {
46565                     r = a.real;
46566                     theta = 0;
46567                 } else {
46568                     r = -a.real;
46569                     theta = atan2(0.0, -1.0);
46570                 }
46571             } else {
46572                 r = __Pyx_c_abs_double(a);
46573                 theta = atan2(a.imag, a.real);
46574             }
46575             lnr = log(r);
46576             z_r = exp(lnr * b.real - theta * b.imag);
46577             z_theta = theta * b.real + lnr * b.imag;
46578             z.real = z_r * cos(z_theta);
46579             z.imag = z_r * sin(z_theta);
46580             return z;
46581         }
46582     #endif
46583 #endif
46584 
46585 /* CIntToPy */
46586   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) {
46587     const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0;
46588     const int is_unsigned = neg_one > const_zero;
46589     if (is_unsigned) {
46590         if (sizeof(enum NPY_TYPES) < sizeof(long)) {
46591             return PyInt_FromLong((long) value);
46592         } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) {
46593             return PyLong_FromUnsignedLong((unsigned long) value);
46594 #ifdef HAVE_LONG_LONG
46595         } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) {
46596             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
46597 #endif
46598         }
46599     } else {
46600         if (sizeof(enum NPY_TYPES) <= sizeof(long)) {
46601             return PyInt_FromLong((long) value);
46602 #ifdef HAVE_LONG_LONG
46603         } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) {
46604             return PyLong_FromLongLong((PY_LONG_LONG) value);
46605 #endif
46606         }
46607     }
46608     {
46609         int one = 1; int little = (int)*(unsigned char *)&one;
46610         unsigned char *bytes = (unsigned char *)&value;
46611         return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES),
46612                                      little, !is_unsigned);
46613     }
46614 }
46615 
46616 /* CIntFromPy */
46617   static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
46618     const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
46619     const int is_unsigned = neg_one > const_zero;
46620 #if PY_MAJOR_VERSION < 3
46621     if (likely(PyInt_Check(x))) {
46622         if (sizeof(int) < sizeof(long)) {
46623             __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
46624         } else {
46625             long val = PyInt_AS_LONG(x);
46626             if (is_unsigned && unlikely(val < 0)) {
46627                 goto raise_neg_overflow;
46628             }
46629             return (int) val;
46630         }
46631     } else
46632 #endif
46633     if (likely(PyLong_Check(x))) {
46634         if (is_unsigned) {
46635 #if CYTHON_USE_PYLONG_INTERNALS
46636             const digit* digits = ((PyLongObject*)x)->ob_digit;
46637             switch (Py_SIZE(x)) {
46638                 case  0: return (int) 0;
46639                 case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
46640                 case 2:
46641                     if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
46642                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
46643                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46644                         } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
46645                             return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
46646                         }
46647                     }
46648                     break;
46649                 case 3:
46650                     if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
46651                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
46652                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46653                         } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
46654                             return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
46655                         }
46656                     }
46657                     break;
46658                 case 4:
46659                     if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
46660                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
46661                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46662                         } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
46663                             return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
46664                         }
46665                     }
46666                     break;
46667             }
46668 #endif
46669 #if CYTHON_COMPILING_IN_CPYTHON
46670             if (unlikely(Py_SIZE(x) < 0)) {
46671                 goto raise_neg_overflow;
46672             }
46673 #else
46674             {
46675                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
46676                 if (unlikely(result < 0))
46677                     return (int) -1;
46678                 if (unlikely(result == 1))
46679                     goto raise_neg_overflow;
46680             }
46681 #endif
46682             if (sizeof(int) <= sizeof(unsigned long)) {
46683                 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
46684 #ifdef HAVE_LONG_LONG
46685             } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
46686                 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
46687 #endif
46688             }
46689         } else {
46690 #if CYTHON_USE_PYLONG_INTERNALS
46691             const digit* digits = ((PyLongObject*)x)->ob_digit;
46692             switch (Py_SIZE(x)) {
46693                 case  0: return (int) 0;
46694                 case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
46695                 case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
46696                 case -2:
46697                     if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
46698                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
46699                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46700                         } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
46701                             return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
46702                         }
46703                     }
46704                     break;
46705                 case 2:
46706                     if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
46707                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
46708                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46709                         } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
46710                             return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
46711                         }
46712                     }
46713                     break;
46714                 case -3:
46715                     if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
46716                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
46717                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46718                         } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
46719                             return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
46720                         }
46721                     }
46722                     break;
46723                 case 3:
46724                     if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
46725                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
46726                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46727                         } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
46728                             return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
46729                         }
46730                     }
46731                     break;
46732                 case -4:
46733                     if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
46734                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
46735                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46736                         } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
46737                             return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
46738                         }
46739                     }
46740                     break;
46741                 case 4:
46742                     if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
46743                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
46744                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46745                         } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
46746                             return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
46747                         }
46748                     }
46749                     break;
46750             }
46751 #endif
46752             if (sizeof(int) <= sizeof(long)) {
46753                 __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
46754 #ifdef HAVE_LONG_LONG
46755             } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
46756                 __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
46757 #endif
46758             }
46759         }
46760         {
46761 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
46762             PyErr_SetString(PyExc_RuntimeError,
46763                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
46764 #else
46765             int val;
46766             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
46767  #if PY_MAJOR_VERSION < 3
46768             if (likely(v) && !PyLong_Check(v)) {
46769                 PyObject *tmp = v;
46770                 v = PyNumber_Long(tmp);
46771                 Py_DECREF(tmp);
46772             }
46773  #endif
46774             if (likely(v)) {
46775                 int one = 1; int is_little = (int)*(unsigned char *)&one;
46776                 unsigned char *bytes = (unsigned char *)&val;
46777                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
46778                                               bytes, sizeof(val),
46779                                               is_little, !is_unsigned);
46780                 Py_DECREF(v);
46781                 if (likely(!ret))
46782                     return val;
46783             }
46784 #endif
46785             return (int) -1;
46786         }
46787     } else {
46788         int val;
46789         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
46790         if (!tmp) return (int) -1;
46791         val = __Pyx_PyInt_As_int(tmp);
46792         Py_DECREF(tmp);
46793         return val;
46794     }
46795 raise_overflow:
46796     PyErr_SetString(PyExc_OverflowError,
46797         "value too large to convert to int");
46798     return (int) -1;
46799 raise_neg_overflow:
46800     PyErr_SetString(PyExc_OverflowError,
46801         "can't convert negative value to int");
46802     return (int) -1;
46803 }
46804 
46805 /* CIntFromPy */
46806   static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
46807     const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
46808     const int is_unsigned = neg_one > const_zero;
46809 #if PY_MAJOR_VERSION < 3
46810     if (likely(PyInt_Check(x))) {
46811         if (sizeof(long) < sizeof(long)) {
46812             __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
46813         } else {
46814             long val = PyInt_AS_LONG(x);
46815             if (is_unsigned && unlikely(val < 0)) {
46816                 goto raise_neg_overflow;
46817             }
46818             return (long) val;
46819         }
46820     } else
46821 #endif
46822     if (likely(PyLong_Check(x))) {
46823         if (is_unsigned) {
46824 #if CYTHON_USE_PYLONG_INTERNALS
46825             const digit* digits = ((PyLongObject*)x)->ob_digit;
46826             switch (Py_SIZE(x)) {
46827                 case  0: return (long) 0;
46828                 case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
46829                 case 2:
46830                     if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
46831                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
46832                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46833                         } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
46834                             return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
46835                         }
46836                     }
46837                     break;
46838                 case 3:
46839                     if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
46840                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
46841                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46842                         } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
46843                             return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
46844                         }
46845                     }
46846                     break;
46847                 case 4:
46848                     if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
46849                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
46850                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46851                         } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
46852                             return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
46853                         }
46854                     }
46855                     break;
46856             }
46857 #endif
46858 #if CYTHON_COMPILING_IN_CPYTHON
46859             if (unlikely(Py_SIZE(x) < 0)) {
46860                 goto raise_neg_overflow;
46861             }
46862 #else
46863             {
46864                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
46865                 if (unlikely(result < 0))
46866                     return (long) -1;
46867                 if (unlikely(result == 1))
46868                     goto raise_neg_overflow;
46869             }
46870 #endif
46871             if (sizeof(long) <= sizeof(unsigned long)) {
46872                 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
46873 #ifdef HAVE_LONG_LONG
46874             } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
46875                 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
46876 #endif
46877             }
46878         } else {
46879 #if CYTHON_USE_PYLONG_INTERNALS
46880             const digit* digits = ((PyLongObject*)x)->ob_digit;
46881             switch (Py_SIZE(x)) {
46882                 case  0: return (long) 0;
46883                 case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
46884                 case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
46885                 case -2:
46886                     if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
46887                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
46888                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46889                         } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
46890                             return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
46891                         }
46892                     }
46893                     break;
46894                 case 2:
46895                     if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
46896                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
46897                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46898                         } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
46899                             return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
46900                         }
46901                     }
46902                     break;
46903                 case -3:
46904                     if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
46905                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
46906                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46907                         } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
46908                             return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
46909                         }
46910                     }
46911                     break;
46912                 case 3:
46913                     if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
46914                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
46915                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46916                         } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
46917                             return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
46918                         }
46919                     }
46920                     break;
46921                 case -4:
46922                     if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
46923                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
46924                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46925                         } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
46926                             return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
46927                         }
46928                     }
46929                     break;
46930                 case 4:
46931                     if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
46932                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
46933                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
46934                         } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
46935                             return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
46936                         }
46937                     }
46938                     break;
46939             }
46940 #endif
46941             if (sizeof(long) <= sizeof(long)) {
46942                 __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
46943 #ifdef HAVE_LONG_LONG
46944             } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
46945                 __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
46946 #endif
46947             }
46948         }
46949         {
46950 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
46951             PyErr_SetString(PyExc_RuntimeError,
46952                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
46953 #else
46954             long val;
46955             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
46956  #if PY_MAJOR_VERSION < 3
46957             if (likely(v) && !PyLong_Check(v)) {
46958                 PyObject *tmp = v;
46959                 v = PyNumber_Long(tmp);
46960                 Py_DECREF(tmp);
46961             }
46962  #endif
46963             if (likely(v)) {
46964                 int one = 1; int is_little = (int)*(unsigned char *)&one;
46965                 unsigned char *bytes = (unsigned char *)&val;
46966                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
46967                                               bytes, sizeof(val),
46968                                               is_little, !is_unsigned);
46969                 Py_DECREF(v);
46970                 if (likely(!ret))
46971                     return val;
46972             }
46973 #endif
46974             return (long) -1;
46975         }
46976     } else {
46977         long val;
46978         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
46979         if (!tmp) return (long) -1;
46980         val = __Pyx_PyInt_As_long(tmp);
46981         Py_DECREF(tmp);
46982         return val;
46983     }
46984 raise_overflow:
46985     PyErr_SetString(PyExc_OverflowError,
46986         "value too large to convert to long");
46987     return (long) -1;
46988 raise_neg_overflow:
46989     PyErr_SetString(PyExc_OverflowError,
46990         "can't convert negative value to long");
46991     return (long) -1;
46992 }
46993 
46994 /* CIntFromPy */
46995   static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
46996     const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0;
46997     const int is_unsigned = neg_one > const_zero;
46998 #if PY_MAJOR_VERSION < 3
46999     if (likely(PyInt_Check(x))) {
47000         if (sizeof(size_t) < sizeof(long)) {
47001             __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
47002         } else {
47003             long val = PyInt_AS_LONG(x);
47004             if (is_unsigned && unlikely(val < 0)) {
47005                 goto raise_neg_overflow;
47006             }
47007             return (size_t) val;
47008         }
47009     } else
47010 #endif
47011     if (likely(PyLong_Check(x))) {
47012         if (is_unsigned) {
47013 #if CYTHON_USE_PYLONG_INTERNALS
47014             const digit* digits = ((PyLongObject*)x)->ob_digit;
47015             switch (Py_SIZE(x)) {
47016                 case  0: return (size_t) 0;
47017                 case  1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0])
47018                 case 2:
47019                     if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
47020                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
47021                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47022                         } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) {
47023                             return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
47024                         }
47025                     }
47026                     break;
47027                 case 3:
47028                     if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
47029                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
47030                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47031                         } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) {
47032                             return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
47033                         }
47034                     }
47035                     break;
47036                 case 4:
47037                     if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
47038                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
47039                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47040                         } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) {
47041                             return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
47042                         }
47043                     }
47044                     break;
47045             }
47046 #endif
47047 #if CYTHON_COMPILING_IN_CPYTHON
47048             if (unlikely(Py_SIZE(x) < 0)) {
47049                 goto raise_neg_overflow;
47050             }
47051 #else
47052             {
47053                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
47054                 if (unlikely(result < 0))
47055                     return (size_t) -1;
47056                 if (unlikely(result == 1))
47057                     goto raise_neg_overflow;
47058             }
47059 #endif
47060             if (sizeof(size_t) <= sizeof(unsigned long)) {
47061                 __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
47062 #ifdef HAVE_LONG_LONG
47063             } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) {
47064                 __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
47065 #endif
47066             }
47067         } else {
47068 #if CYTHON_USE_PYLONG_INTERNALS
47069             const digit* digits = ((PyLongObject*)x)->ob_digit;
47070             switch (Py_SIZE(x)) {
47071                 case  0: return (size_t) 0;
47072                 case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0]))
47073                 case  1: __PYX_VERIFY_RETURN_INT(size_t,  digit, +digits[0])
47074                 case -2:
47075                     if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) {
47076                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
47077                             __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47078                         } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
47079                             return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
47080                         }
47081                     }
47082                     break;
47083                 case 2:
47084                     if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
47085                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
47086                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47087                         } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
47088                             return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
47089                         }
47090                     }
47091                     break;
47092                 case -3:
47093                     if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
47094                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
47095                             __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47096                         } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
47097                             return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
47098                         }
47099                     }
47100                     break;
47101                 case 3:
47102                     if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
47103                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
47104                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47105                         } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
47106                             return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
47107                         }
47108                     }
47109                     break;
47110                 case -4:
47111                     if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
47112                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
47113                             __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47114                         } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
47115                             return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
47116                         }
47117                     }
47118                     break;
47119                 case 4:
47120                     if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
47121                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
47122                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47123                         } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
47124                             return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
47125                         }
47126                     }
47127                     break;
47128             }
47129 #endif
47130             if (sizeof(size_t) <= sizeof(long)) {
47131                 __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
47132 #ifdef HAVE_LONG_LONG
47133             } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) {
47134                 __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
47135 #endif
47136             }
47137         }
47138         {
47139 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
47140             PyErr_SetString(PyExc_RuntimeError,
47141                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
47142 #else
47143             size_t val;
47144             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
47145  #if PY_MAJOR_VERSION < 3
47146             if (likely(v) && !PyLong_Check(v)) {
47147                 PyObject *tmp = v;
47148                 v = PyNumber_Long(tmp);
47149                 Py_DECREF(tmp);
47150             }
47151  #endif
47152             if (likely(v)) {
47153                 int one = 1; int is_little = (int)*(unsigned char *)&one;
47154                 unsigned char *bytes = (unsigned char *)&val;
47155                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
47156                                               bytes, sizeof(val),
47157                                               is_little, !is_unsigned);
47158                 Py_DECREF(v);
47159                 if (likely(!ret))
47160                     return val;
47161             }
47162 #endif
47163             return (size_t) -1;
47164         }
47165     } else {
47166         size_t val;
47167         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
47168         if (!tmp) return (size_t) -1;
47169         val = __Pyx_PyInt_As_size_t(tmp);
47170         Py_DECREF(tmp);
47171         return val;
47172     }
47173 raise_overflow:
47174     PyErr_SetString(PyExc_OverflowError,
47175         "value too large to convert to size_t");
47176     return (size_t) -1;
47177 raise_neg_overflow:
47178     PyErr_SetString(PyExc_OverflowError,
47179         "can't convert negative value to size_t");
47180     return (size_t) -1;
47181 }
47182 
47183 /* CIntFromPy */
47184   static CYTHON_INLINE enum IClpSimplex::Status __Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(PyObject *x) {
47185     const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) ((enum IClpSimplex::Status) 0 - (enum IClpSimplex::Status) 1), const_zero = (enum IClpSimplex::Status) 0;
47186     const int is_unsigned = neg_one > const_zero;
47187 #if PY_MAJOR_VERSION < 3
47188     if (likely(PyInt_Check(x))) {
47189         if (sizeof(enum IClpSimplex::Status) < sizeof(long)) {
47190             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, long, PyInt_AS_LONG(x))
47191         } else {
47192             long val = PyInt_AS_LONG(x);
47193             if (is_unsigned && unlikely(val < 0)) {
47194                 goto raise_neg_overflow;
47195             }
47196             return (enum IClpSimplex::Status) val;
47197         }
47198     } else
47199 #endif
47200     if (likely(PyLong_Check(x))) {
47201         if (is_unsigned) {
47202 #if CYTHON_USE_PYLONG_INTERNALS
47203             const digit* digits = ((PyLongObject*)x)->ob_digit;
47204             switch (Py_SIZE(x)) {
47205                 case  0: return (enum IClpSimplex::Status) 0;
47206                 case  1: __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, digit, digits[0])
47207                 case 2:
47208                     if (8 * sizeof(enum IClpSimplex::Status) > 1 * PyLong_SHIFT) {
47209                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
47210                             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47211                         } else if (8 * sizeof(enum IClpSimplex::Status) >= 2 * PyLong_SHIFT) {
47212                             return (enum IClpSimplex::Status) (((((enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0]));
47213                         }
47214                     }
47215                     break;
47216                 case 3:
47217                     if (8 * sizeof(enum IClpSimplex::Status) > 2 * PyLong_SHIFT) {
47218                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
47219                             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47220                         } else if (8 * sizeof(enum IClpSimplex::Status) >= 3 * PyLong_SHIFT) {
47221                             return (enum IClpSimplex::Status) (((((((enum IClpSimplex::Status)digits[2]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0]));
47222                         }
47223                     }
47224                     break;
47225                 case 4:
47226                     if (8 * sizeof(enum IClpSimplex::Status) > 3 * PyLong_SHIFT) {
47227                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
47228                             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47229                         } else if (8 * sizeof(enum IClpSimplex::Status) >= 4 * PyLong_SHIFT) {
47230                             return (enum IClpSimplex::Status) (((((((((enum IClpSimplex::Status)digits[3]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[2]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0]));
47231                         }
47232                     }
47233                     break;
47234             }
47235 #endif
47236 #if CYTHON_COMPILING_IN_CPYTHON
47237             if (unlikely(Py_SIZE(x) < 0)) {
47238                 goto raise_neg_overflow;
47239             }
47240 #else
47241             {
47242                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
47243                 if (unlikely(result < 0))
47244                     return (enum IClpSimplex::Status) -1;
47245                 if (unlikely(result == 1))
47246                     goto raise_neg_overflow;
47247             }
47248 #endif
47249             if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned long)) {
47250                 __PYX_VERIFY_RETURN_INT_EXC(enum IClpSimplex::Status, unsigned long, PyLong_AsUnsignedLong(x))
47251 #ifdef HAVE_LONG_LONG
47252             } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned PY_LONG_LONG)) {
47253                 __PYX_VERIFY_RETURN_INT_EXC(enum IClpSimplex::Status, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
47254 #endif
47255             }
47256         } else {
47257 #if CYTHON_USE_PYLONG_INTERNALS
47258             const digit* digits = ((PyLongObject*)x)->ob_digit;
47259             switch (Py_SIZE(x)) {
47260                 case  0: return (enum IClpSimplex::Status) 0;
47261                 case -1: __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, sdigit, (sdigit) (-(sdigit)digits[0]))
47262                 case  1: __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status,  digit, +digits[0])
47263                 case -2:
47264                     if (8 * sizeof(enum IClpSimplex::Status) - 1 > 1 * PyLong_SHIFT) {
47265                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
47266                             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47267                         } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 2 * PyLong_SHIFT) {
47268                             return (enum IClpSimplex::Status) (((enum IClpSimplex::Status)-1)*(((((enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0])));
47269                         }
47270                     }
47271                     break;
47272                 case 2:
47273                     if (8 * sizeof(enum IClpSimplex::Status) > 1 * PyLong_SHIFT) {
47274                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
47275                             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47276                         } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 2 * PyLong_SHIFT) {
47277                             return (enum IClpSimplex::Status) ((((((enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0])));
47278                         }
47279                     }
47280                     break;
47281                 case -3:
47282                     if (8 * sizeof(enum IClpSimplex::Status) - 1 > 2 * PyLong_SHIFT) {
47283                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
47284                             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47285                         } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 3 * PyLong_SHIFT) {
47286                             return (enum IClpSimplex::Status) (((enum IClpSimplex::Status)-1)*(((((((enum IClpSimplex::Status)digits[2]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0])));
47287                         }
47288                     }
47289                     break;
47290                 case 3:
47291                     if (8 * sizeof(enum IClpSimplex::Status) > 2 * PyLong_SHIFT) {
47292                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
47293                             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47294                         } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 3 * PyLong_SHIFT) {
47295                             return (enum IClpSimplex::Status) ((((((((enum IClpSimplex::Status)digits[2]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0])));
47296                         }
47297                     }
47298                     break;
47299                 case -4:
47300                     if (8 * sizeof(enum IClpSimplex::Status) - 1 > 3 * PyLong_SHIFT) {
47301                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
47302                             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47303                         } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 4 * PyLong_SHIFT) {
47304                             return (enum IClpSimplex::Status) (((enum IClpSimplex::Status)-1)*(((((((((enum IClpSimplex::Status)digits[3]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[2]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0])));
47305                         }
47306                     }
47307                     break;
47308                 case 4:
47309                     if (8 * sizeof(enum IClpSimplex::Status) > 3 * PyLong_SHIFT) {
47310                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
47311                             __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47312                         } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 4 * PyLong_SHIFT) {
47313                             return (enum IClpSimplex::Status) ((((((((((enum IClpSimplex::Status)digits[3]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[2]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0])));
47314                         }
47315                     }
47316                     break;
47317             }
47318 #endif
47319             if (sizeof(enum IClpSimplex::Status) <= sizeof(long)) {
47320                 __PYX_VERIFY_RETURN_INT_EXC(enum IClpSimplex::Status, long, PyLong_AsLong(x))
47321 #ifdef HAVE_LONG_LONG
47322             } else if (sizeof(enum IClpSimplex::Status) <= sizeof(PY_LONG_LONG)) {
47323                 __PYX_VERIFY_RETURN_INT_EXC(enum IClpSimplex::Status, PY_LONG_LONG, PyLong_AsLongLong(x))
47324 #endif
47325             }
47326         }
47327         {
47328 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
47329             PyErr_SetString(PyExc_RuntimeError,
47330                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
47331 #else
47332             enum IClpSimplex::Status val;
47333             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
47334  #if PY_MAJOR_VERSION < 3
47335             if (likely(v) && !PyLong_Check(v)) {
47336                 PyObject *tmp = v;
47337                 v = PyNumber_Long(tmp);
47338                 Py_DECREF(tmp);
47339             }
47340  #endif
47341             if (likely(v)) {
47342                 int one = 1; int is_little = (int)*(unsigned char *)&one;
47343                 unsigned char *bytes = (unsigned char *)&val;
47344                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
47345                                               bytes, sizeof(val),
47346                                               is_little, !is_unsigned);
47347                 Py_DECREF(v);
47348                 if (likely(!ret))
47349                     return val;
47350             }
47351 #endif
47352             return (enum IClpSimplex::Status) -1;
47353         }
47354     } else {
47355         enum IClpSimplex::Status val;
47356         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
47357         if (!tmp) return (enum IClpSimplex::Status) -1;
47358         val = __Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(tmp);
47359         Py_DECREF(tmp);
47360         return val;
47361     }
47362 raise_overflow:
47363     PyErr_SetString(PyExc_OverflowError,
47364         "value too large to convert to enum IClpSimplex::Status");
47365     return (enum IClpSimplex::Status) -1;
47366 raise_neg_overflow:
47367     PyErr_SetString(PyExc_OverflowError,
47368         "can't convert negative value to enum IClpSimplex::Status");
47369     return (enum IClpSimplex::Status) -1;
47370 }
47371 
47372 /* CIntFromPy */
47373   static CYTHON_INLINE Py_intptr_t __Pyx_PyInt_As_Py_intptr_t(PyObject *x) {
47374     const Py_intptr_t neg_one = (Py_intptr_t) ((Py_intptr_t) 0 - (Py_intptr_t) 1), const_zero = (Py_intptr_t) 0;
47375     const int is_unsigned = neg_one > const_zero;
47376 #if PY_MAJOR_VERSION < 3
47377     if (likely(PyInt_Check(x))) {
47378         if (sizeof(Py_intptr_t) < sizeof(long)) {
47379             __PYX_VERIFY_RETURN_INT(Py_intptr_t, long, PyInt_AS_LONG(x))
47380         } else {
47381             long val = PyInt_AS_LONG(x);
47382             if (is_unsigned && unlikely(val < 0)) {
47383                 goto raise_neg_overflow;
47384             }
47385             return (Py_intptr_t) val;
47386         }
47387     } else
47388 #endif
47389     if (likely(PyLong_Check(x))) {
47390         if (is_unsigned) {
47391 #if CYTHON_USE_PYLONG_INTERNALS
47392             const digit* digits = ((PyLongObject*)x)->ob_digit;
47393             switch (Py_SIZE(x)) {
47394                 case  0: return (Py_intptr_t) 0;
47395                 case  1: __PYX_VERIFY_RETURN_INT(Py_intptr_t, digit, digits[0])
47396                 case 2:
47397                     if (8 * sizeof(Py_intptr_t) > 1 * PyLong_SHIFT) {
47398                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
47399                             __PYX_VERIFY_RETURN_INT(Py_intptr_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47400                         } else if (8 * sizeof(Py_intptr_t) >= 2 * PyLong_SHIFT) {
47401                             return (Py_intptr_t) (((((Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0]));
47402                         }
47403                     }
47404                     break;
47405                 case 3:
47406                     if (8 * sizeof(Py_intptr_t) > 2 * PyLong_SHIFT) {
47407                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
47408                             __PYX_VERIFY_RETURN_INT(Py_intptr_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47409                         } else if (8 * sizeof(Py_intptr_t) >= 3 * PyLong_SHIFT) {
47410                             return (Py_intptr_t) (((((((Py_intptr_t)digits[2]) << PyLong_SHIFT) | (Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0]));
47411                         }
47412                     }
47413                     break;
47414                 case 4:
47415                     if (8 * sizeof(Py_intptr_t) > 3 * PyLong_SHIFT) {
47416                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
47417                             __PYX_VERIFY_RETURN_INT(Py_intptr_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47418                         } else if (8 * sizeof(Py_intptr_t) >= 4 * PyLong_SHIFT) {
47419                             return (Py_intptr_t) (((((((((Py_intptr_t)digits[3]) << PyLong_SHIFT) | (Py_intptr_t)digits[2]) << PyLong_SHIFT) | (Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0]));
47420                         }
47421                     }
47422                     break;
47423             }
47424 #endif
47425 #if CYTHON_COMPILING_IN_CPYTHON
47426             if (unlikely(Py_SIZE(x) < 0)) {
47427                 goto raise_neg_overflow;
47428             }
47429 #else
47430             {
47431                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
47432                 if (unlikely(result < 0))
47433                     return (Py_intptr_t) -1;
47434                 if (unlikely(result == 1))
47435                     goto raise_neg_overflow;
47436             }
47437 #endif
47438             if (sizeof(Py_intptr_t) <= sizeof(unsigned long)) {
47439                 __PYX_VERIFY_RETURN_INT_EXC(Py_intptr_t, unsigned long, PyLong_AsUnsignedLong(x))
47440 #ifdef HAVE_LONG_LONG
47441             } else if (sizeof(Py_intptr_t) <= sizeof(unsigned PY_LONG_LONG)) {
47442                 __PYX_VERIFY_RETURN_INT_EXC(Py_intptr_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
47443 #endif
47444             }
47445         } else {
47446 #if CYTHON_USE_PYLONG_INTERNALS
47447             const digit* digits = ((PyLongObject*)x)->ob_digit;
47448             switch (Py_SIZE(x)) {
47449                 case  0: return (Py_intptr_t) 0;
47450                 case -1: __PYX_VERIFY_RETURN_INT(Py_intptr_t, sdigit, (sdigit) (-(sdigit)digits[0]))
47451                 case  1: __PYX_VERIFY_RETURN_INT(Py_intptr_t,  digit, +digits[0])
47452                 case -2:
47453                     if (8 * sizeof(Py_intptr_t) - 1 > 1 * PyLong_SHIFT) {
47454                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
47455                             __PYX_VERIFY_RETURN_INT(Py_intptr_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47456                         } else if (8 * sizeof(Py_intptr_t) - 1 > 2 * PyLong_SHIFT) {
47457                             return (Py_intptr_t) (((Py_intptr_t)-1)*(((((Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0])));
47458                         }
47459                     }
47460                     break;
47461                 case 2:
47462                     if (8 * sizeof(Py_intptr_t) > 1 * PyLong_SHIFT) {
47463                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
47464                             __PYX_VERIFY_RETURN_INT(Py_intptr_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47465                         } else if (8 * sizeof(Py_intptr_t) - 1 > 2 * PyLong_SHIFT) {
47466                             return (Py_intptr_t) ((((((Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0])));
47467                         }
47468                     }
47469                     break;
47470                 case -3:
47471                     if (8 * sizeof(Py_intptr_t) - 1 > 2 * PyLong_SHIFT) {
47472                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
47473                             __PYX_VERIFY_RETURN_INT(Py_intptr_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47474                         } else if (8 * sizeof(Py_intptr_t) - 1 > 3 * PyLong_SHIFT) {
47475                             return (Py_intptr_t) (((Py_intptr_t)-1)*(((((((Py_intptr_t)digits[2]) << PyLong_SHIFT) | (Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0])));
47476                         }
47477                     }
47478                     break;
47479                 case 3:
47480                     if (8 * sizeof(Py_intptr_t) > 2 * PyLong_SHIFT) {
47481                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
47482                             __PYX_VERIFY_RETURN_INT(Py_intptr_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47483                         } else if (8 * sizeof(Py_intptr_t) - 1 > 3 * PyLong_SHIFT) {
47484                             return (Py_intptr_t) ((((((((Py_intptr_t)digits[2]) << PyLong_SHIFT) | (Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0])));
47485                         }
47486                     }
47487                     break;
47488                 case -4:
47489                     if (8 * sizeof(Py_intptr_t) - 1 > 3 * PyLong_SHIFT) {
47490                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
47491                             __PYX_VERIFY_RETURN_INT(Py_intptr_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47492                         } else if (8 * sizeof(Py_intptr_t) - 1 > 4 * PyLong_SHIFT) {
47493                             return (Py_intptr_t) (((Py_intptr_t)-1)*(((((((((Py_intptr_t)digits[3]) << PyLong_SHIFT) | (Py_intptr_t)digits[2]) << PyLong_SHIFT) | (Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0])));
47494                         }
47495                     }
47496                     break;
47497                 case 4:
47498                     if (8 * sizeof(Py_intptr_t) > 3 * PyLong_SHIFT) {
47499                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
47500                             __PYX_VERIFY_RETURN_INT(Py_intptr_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
47501                         } else if (8 * sizeof(Py_intptr_t) - 1 > 4 * PyLong_SHIFT) {
47502                             return (Py_intptr_t) ((((((((((Py_intptr_t)digits[3]) << PyLong_SHIFT) | (Py_intptr_t)digits[2]) << PyLong_SHIFT) | (Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0])));
47503                         }
47504                     }
47505                     break;
47506             }
47507 #endif
47508             if (sizeof(Py_intptr_t) <= sizeof(long)) {
47509                 __PYX_VERIFY_RETURN_INT_EXC(Py_intptr_t, long, PyLong_AsLong(x))
47510 #ifdef HAVE_LONG_LONG
47511             } else if (sizeof(Py_intptr_t) <= sizeof(PY_LONG_LONG)) {
47512                 __PYX_VERIFY_RETURN_INT_EXC(Py_intptr_t, PY_LONG_LONG, PyLong_AsLongLong(x))
47513 #endif
47514             }
47515         }
47516         {
47517 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
47518             PyErr_SetString(PyExc_RuntimeError,
47519                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
47520 #else
47521             Py_intptr_t val;
47522             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
47523  #if PY_MAJOR_VERSION < 3
47524             if (likely(v) && !PyLong_Check(v)) {
47525                 PyObject *tmp = v;
47526                 v = PyNumber_Long(tmp);
47527                 Py_DECREF(tmp);
47528             }
47529  #endif
47530             if (likely(v)) {
47531                 int one = 1; int is_little = (int)*(unsigned char *)&one;
47532                 unsigned char *bytes = (unsigned char *)&val;
47533                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
47534                                               bytes, sizeof(val),
47535                                               is_little, !is_unsigned);
47536                 Py_DECREF(v);
47537                 if (likely(!ret))
47538                     return val;
47539             }
47540 #endif
47541             return (Py_intptr_t) -1;
47542         }
47543     } else {
47544         Py_intptr_t val;
47545         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
47546         if (!tmp) return (Py_intptr_t) -1;
47547         val = __Pyx_PyInt_As_Py_intptr_t(tmp);
47548         Py_DECREF(tmp);
47549         return val;
47550     }
47551 raise_overflow:
47552     PyErr_SetString(PyExc_OverflowError,
47553         "value too large to convert to Py_intptr_t");
47554     return (Py_intptr_t) -1;
47555 raise_neg_overflow:
47556     PyErr_SetString(PyExc_OverflowError,
47557         "can't convert negative value to Py_intptr_t");
47558     return (Py_intptr_t) -1;
47559 }
47560 
47561 /* FastTypeChecks */
47562   #if CYTHON_COMPILING_IN_CPYTHON
47563 static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
47564     while (a) {
47565         a = a->tp_base;
47566         if (a == b)
47567             return 1;
47568     }
47569     return b == &PyBaseObject_Type;
47570 }
47571 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
47572     PyObject *mro;
47573     if (a == b) return 1;
47574     mro = a->tp_mro;
47575     if (likely(mro)) {
47576         Py_ssize_t i, n;
47577         n = PyTuple_GET_SIZE(mro);
47578         for (i = 0; i < n; i++) {
47579             if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
47580                 return 1;
47581         }
47582         return 0;
47583     }
47584     return __Pyx_InBases(a, b);
47585 }
47586 #if PY_MAJOR_VERSION == 2
47587 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
47588     PyObject *exception, *value, *tb;
47589     int res;
47590     __Pyx_PyThreadState_declare
47591     __Pyx_PyThreadState_assign
47592     __Pyx_ErrFetch(&exception, &value, &tb);
47593     res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
47594     if (unlikely(res == -1)) {
47595         PyErr_WriteUnraisable(err);
47596         res = 0;
47597     }
47598     if (!res) {
47599         res = PyObject_IsSubclass(err, exc_type2);
47600         if (unlikely(res == -1)) {
47601             PyErr_WriteUnraisable(err);
47602             res = 0;
47603         }
47604     }
47605     __Pyx_ErrRestore(exception, value, tb);
47606     return res;
47607 }
47608 #else
47609 static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
47610     int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
47611     if (!res) {
47612         res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
47613     }
47614     return res;
47615 }
47616 #endif
47617 static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
47618     Py_ssize_t i, n;
47619     assert(PyExceptionClass_Check(exc_type));
47620     n = PyTuple_GET_SIZE(tuple);
47621 #if PY_MAJOR_VERSION >= 3
47622     for (i=0; i<n; i++) {
47623         if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
47624     }
47625 #endif
47626     for (i=0; i<n; i++) {
47627         PyObject *t = PyTuple_GET_ITEM(tuple, i);
47628         #if PY_MAJOR_VERSION < 3
47629         if (likely(exc_type == t)) return 1;
47630         #endif
47631         if (likely(PyExceptionClass_Check(t))) {
47632             if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
47633         } else {
47634         }
47635     }
47636     return 0;
47637 }
47638 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
47639     if (likely(err == exc_type)) return 1;
47640     if (likely(PyExceptionClass_Check(err))) {
47641         if (likely(PyExceptionClass_Check(exc_type))) {
47642             return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
47643         } else if (likely(PyTuple_Check(exc_type))) {
47644             return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
47645         } else {
47646         }
47647     }
47648     return PyErr_GivenExceptionMatches(err, exc_type);
47649 }
47650 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
47651     assert(PyExceptionClass_Check(exc_type1));
47652     assert(PyExceptionClass_Check(exc_type2));
47653     if (likely(err == exc_type1 || err == exc_type2)) return 1;
47654     if (likely(PyExceptionClass_Check(err))) {
47655         return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
47656     }
47657     return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
47658 }
47659 #endif
47660 
47661 /* CheckBinaryVersion */
47662   static int __Pyx_check_binary_version(void) {
47663     char ctversion[4], rtversion[4];
47664     PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
47665     PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
47666     if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
47667         char message[200];
47668         PyOS_snprintf(message, sizeof(message),
47669                       "compiletime version %s of module '%.100s' "
47670                       "does not match runtime version %s",
47671                       ctversion, __Pyx_MODULE_NAME, rtversion);
47672         return PyErr_WarnEx(NULL, message, 1);
47673     }
47674     return 0;
47675 }
47676 
47677 /* FunctionExport */
47678   static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) {
47679     PyObject *d = 0;
47680     PyObject *cobj = 0;
47681     union {
47682         void (*fp)(void);
47683         void *p;
47684     } tmp;
47685     d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__");
47686     if (!d) {
47687         PyErr_Clear();
47688         d = PyDict_New();
47689         if (!d)
47690             goto bad;
47691         Py_INCREF(d);
47692         if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0)
47693             goto bad;
47694     }
47695     tmp.fp = f;
47696 #if PY_VERSION_HEX >= 0x02070000
47697     cobj = PyCapsule_New(tmp.p, sig, 0);
47698 #else
47699     cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0);
47700 #endif
47701     if (!cobj)
47702         goto bad;
47703     if (PyDict_SetItemString(d, name, cobj) < 0)
47704         goto bad;
47705     Py_DECREF(cobj);
47706     Py_DECREF(d);
47707     return 0;
47708 bad:
47709     Py_XDECREF(cobj);
47710     Py_XDECREF(d);
47711     return -1;
47712 }
47713 
47714 /* InitStrings */
47715   static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
47716     while (t->p) {
47717         #if PY_MAJOR_VERSION < 3
47718         if (t->is_unicode) {
47719             *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
47720         } else if (t->intern) {
47721             *t->p = PyString_InternFromString(t->s);
47722         } else {
47723             *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
47724         }
47725         #else
47726         if (t->is_unicode | t->is_str) {
47727             if (t->intern) {
47728                 *t->p = PyUnicode_InternFromString(t->s);
47729             } else if (t->encoding) {
47730                 *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
47731             } else {
47732                 *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
47733             }
47734         } else {
47735             *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
47736         }
47737         #endif
47738         if (!*t->p)
47739             return -1;
47740         if (PyObject_Hash(*t->p) == -1)
47741             return -1;
47742         ++t;
47743     }
47744     return 0;
47745 }
47746 
47747 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
47748     return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
47749 }
47750 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
47751     Py_ssize_t ignore;
47752     return __Pyx_PyObject_AsStringAndSize(o, &ignore);
47753 }
47754 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
47755 #if !CYTHON_PEP393_ENABLED
47756 static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
47757     char* defenc_c;
47758     PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
47759     if (!defenc) return NULL;
47760     defenc_c = PyBytes_AS_STRING(defenc);
47761 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
47762     {
47763         char* end = defenc_c + PyBytes_GET_SIZE(defenc);
47764         char* c;
47765         for (c = defenc_c; c < end; c++) {
47766             if ((unsigned char) (*c) >= 128) {
47767                 PyUnicode_AsASCIIString(o);
47768                 return NULL;
47769             }
47770         }
47771     }
47772 #endif
47773     *length = PyBytes_GET_SIZE(defenc);
47774     return defenc_c;
47775 }
47776 #else
47777 static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
47778     if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
47779 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
47780     if (likely(PyUnicode_IS_ASCII(o))) {
47781         *length = PyUnicode_GET_LENGTH(o);
47782         return PyUnicode_AsUTF8(o);
47783     } else {
47784         PyUnicode_AsASCIIString(o);
47785         return NULL;
47786     }
47787 #else
47788     return PyUnicode_AsUTF8AndSize(o, length);
47789 #endif
47790 }
47791 #endif
47792 #endif
47793 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
47794 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
47795     if (
47796 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
47797             __Pyx_sys_getdefaultencoding_not_ascii &&
47798 #endif
47799             PyUnicode_Check(o)) {
47800         return __Pyx_PyUnicode_AsStringAndSize(o, length);
47801     } else
47802 #endif
47803 #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
47804     if (PyByteArray_Check(o)) {
47805         *length = PyByteArray_GET_SIZE(o);
47806         return PyByteArray_AS_STRING(o);
47807     } else
47808 #endif
47809     {
47810         char* result;
47811         int r = PyBytes_AsStringAndSize(o, &result, length);
47812         if (unlikely(r < 0)) {
47813             return NULL;
47814         } else {
47815             return result;
47816         }
47817     }
47818 }
47819 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
47820    int is_true = x == Py_True;
47821    if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
47822    else return PyObject_IsTrue(x);
47823 }
47824 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
47825     int retval;
47826     if (unlikely(!x)) return -1;
47827     retval = __Pyx_PyObject_IsTrue(x);
47828     Py_DECREF(x);
47829     return retval;
47830 }
47831 static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
47832 #if PY_MAJOR_VERSION >= 3
47833     if (PyLong_Check(result)) {
47834         if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
47835                 "__int__ returned non-int (type %.200s).  "
47836                 "The ability to return an instance of a strict subclass of int "
47837                 "is deprecated, and may be removed in a future version of Python.",
47838                 Py_TYPE(result)->tp_name)) {
47839             Py_DECREF(result);
47840             return NULL;
47841         }
47842         return result;
47843     }
47844 #endif
47845     PyErr_Format(PyExc_TypeError,
47846                  "__%.4s__ returned non-%.4s (type %.200s)",
47847                  type_name, type_name, Py_TYPE(result)->tp_name);
47848     Py_DECREF(result);
47849     return NULL;
47850 }
47851 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
47852 #if CYTHON_USE_TYPE_SLOTS
47853   PyNumberMethods *m;
47854 #endif
47855   const char *name = NULL;
47856   PyObject *res = NULL;
47857 #if PY_MAJOR_VERSION < 3
47858   if (likely(PyInt_Check(x) || PyLong_Check(x)))
47859 #else
47860   if (likely(PyLong_Check(x)))
47861 #endif
47862     return __Pyx_NewRef(x);
47863 #if CYTHON_USE_TYPE_SLOTS
47864   m = Py_TYPE(x)->tp_as_number;
47865   #if PY_MAJOR_VERSION < 3
47866   if (m && m->nb_int) {
47867     name = "int";
47868     res = m->nb_int(x);
47869   }
47870   else if (m && m->nb_long) {
47871     name = "long";
47872     res = m->nb_long(x);
47873   }
47874   #else
47875   if (likely(m && m->nb_int)) {
47876     name = "int";
47877     res = m->nb_int(x);
47878   }
47879   #endif
47880 #else
47881   if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
47882     res = PyNumber_Int(x);
47883   }
47884 #endif
47885   if (likely(res)) {
47886 #if PY_MAJOR_VERSION < 3
47887     if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
47888 #else
47889     if (unlikely(!PyLong_CheckExact(res))) {
47890 #endif
47891         return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
47892     }
47893   }
47894   else if (!PyErr_Occurred()) {
47895     PyErr_SetString(PyExc_TypeError,
47896                     "an integer is required");
47897   }
47898   return res;
47899 }
47900 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
47901   Py_ssize_t ival;
47902   PyObject *x;
47903 #if PY_MAJOR_VERSION < 3
47904   if (likely(PyInt_CheckExact(b))) {
47905     if (sizeof(Py_ssize_t) >= sizeof(long))
47906         return PyInt_AS_LONG(b);
47907     else
47908         return PyInt_AsSsize_t(b);
47909   }
47910 #endif
47911   if (likely(PyLong_CheckExact(b))) {
47912     #if CYTHON_USE_PYLONG_INTERNALS
47913     const digit* digits = ((PyLongObject*)b)->ob_digit;
47914     const Py_ssize_t size = Py_SIZE(b);
47915     if (likely(__Pyx_sst_abs(size) <= 1)) {
47916         ival = likely(size) ? digits[0] : 0;
47917         if (size == -1) ival = -ival;
47918         return ival;
47919     } else {
47920       switch (size) {
47921          case 2:
47922            if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
47923              return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
47924            }
47925            break;
47926          case -2:
47927            if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
47928              return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
47929            }
47930            break;
47931          case 3:
47932            if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
47933              return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
47934            }
47935            break;
47936          case -3:
47937            if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
47938              return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
47939            }
47940            break;
47941          case 4:
47942            if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
47943              return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
47944            }
47945            break;
47946          case -4:
47947            if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
47948              return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
47949            }
47950            break;
47951       }
47952     }
47953     #endif
47954     return PyLong_AsSsize_t(b);
47955   }
47956   x = PyNumber_Index(b);
47957   if (!x) return -1;
47958   ival = PyInt_AsSsize_t(x);
47959   Py_DECREF(x);
47960   return ival;
47961 }
47962 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
47963   return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
47964 }
47965 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
47966     return PyInt_FromSize_t(ival);
47967 }
47968 
47969 
47970 #endif /* Py_PYTHON_H */
47971