/* Generated by Cython 0.29.21 */

#define PY_SSIZE_T_CLEAN
#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.6+ or Python 3.3+.
#else
#define CYTHON_ABI "0_29_21"
#define CYTHON_HEX_VERSION 0x001D15F0
#define CYTHON_FUTURE_DIVISION 0
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef HAVE_LONG_LONG
  #if PY_VERSION_HEX >= 0x02070000
    #define HAVE_LONG_LONG
  #endif
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#ifdef PYPY_VERSION
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#elif defined(PYSTON_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 0
  #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #if PY_MAJOR_VERSION < 3
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if PY_VERSION_HEX < 0x030300F0
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
  #endif
  #ifndef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #include "longintrepr.h"
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#ifdef _MSC_VER
    #ifndef _MSC_STDINT_H_
        #if _MSC_VER < 1300
           typedef unsigned char     uint8_t;
           typedef unsigned int      uint32_t;
        #else
           typedef unsigned __int8   uint8_t;
           typedef unsigned __int32  uint32_t;
        #endif
    #endif
#else
   #include <stdint.h>
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus) && __cplusplus >= 201103L
    #if __has_cpp_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH [[fallthrough]]
    #elif __has_cpp_attribute(clang::fallthrough)
      #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
    #elif __has_cpp_attribute(gnu::fallthrough)
      #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__ ) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif

#ifndef __cplusplus
  #error "Cython files generated with the C++ option must be compiled with a C++ compiler."
#endif
#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #else
    #define CYTHON_INLINE inline
  #endif
#endif
template<typename T>
void __Pyx_call_destructor(T& x) {
    x.~T();
}
template<typename T>
class __Pyx_FakeReference {
  public:
    __Pyx_FakeReference() : ptr(NULL) { }
    __Pyx_FakeReference(const T& ref) : ptr(const_cast<T*>(&ref)) { }
    T *operator->() { return ptr; }
    T *operator&() { return ptr; }
    operator T&() { return *ptr; }
    template<typename U> bool operator ==(U other) { return *ptr == other; }
    template<typename U> bool operator !=(U other) { return *ptr != other; }
  private:
    T *ptr;
};

#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
  #define Py_OptimizeFlag 0
#endif
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyClass_Type
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
  #define __Pyx_DefaultClassType PyType_Type
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #define __Pyx_PyCFunctionFast _PyCFunctionFast
  #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
#endif
#if CYTHON_FAST_PYCCALL
#define __Pyx_PyFastCFunction_Check(func)\
    ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
#else
#define __Pyx_PyFastCFunction_Check(func) 0
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
  #define PyMem_RawMalloc(n)           PyMem_Malloc(n)
  #define PyMem_RawRealloc(p, n)       PyMem_Realloc(p, n)
  #define PyMem_RawFree(p)             PyMem_Free(p)
#endif
#if CYTHON_COMPILING_IN_PYSTON
  #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x03060000
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#elif PY_VERSION_HEX >= 0x03000000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_Current
#endif
#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
#include "pythread.h"
#define Py_tss_NEEDS_INIT 0
typedef int Py_tss_t;
static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
  *key = PyThread_create_key();
  return 0;
}
static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
  *key = Py_tss_NEEDS_INIT;
  return key;
}
static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
  PyObject_Free(key);
}
static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
  return *key != Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
  PyThread_delete_key(*key);
  *key = Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
  return PyThread_set_key_value(*key, value);
}
static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
  return PyThread_get_key_value(*key);
}
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStr(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
#else
#define __Pyx_PyDict_GetItemStr(dict, name)  PyDict_GetItem(dict, name)
#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                              0 : _PyUnicode_Ready((PyObject *)(op)))
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
  #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
  #else
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #endif
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
  #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
  #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
  #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
#endif
#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))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
  #define PyObject_ASCII(o)            PyObject_Repr(o)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
#ifndef PyObject_Unicode
  #define PyObject_Unicode             PyObject_Str
#endif
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
#else
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
#else
  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef __Pyx_PyAsyncMethodsStruct
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
#endif

#if defined(WIN32) || defined(MS_WINDOWS)
  #define _USE_MATH_DEFINES
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#define __PYX_MARK_ERR_POS(f_index, lineno) \
    { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__cylp__cy__CyClpSimplex
#define __PYX_HAVE_API__cylp__cy__CyClpSimplex
/* Early includes */
#include <string.h>
#include <stdio.h>
#include "pythread.h"
#include "ICoinIndexedVector.hpp"
#include "ClpPrimalColumnPivot.hpp"
#include "ClpFactorization.hpp"
#include "IClpPrimalColumnPivotBase.h"
#include "numpy/arrayobject.h"
#include "numpy/ufuncobject.h"
#include "ClpDualRowPivot.hpp"
#include "IClpDualRowPivotBase.h"
#include "CoinModel.hpp"
#include "ICoinPackedMatrix.hpp"
#include "CglAllDifferent.hpp"
#include "CglClique.hpp"
#include "CglKnapsackCover.hpp"
#include "CglOddHole.hpp"
#include "CglFlowCover.hpp"
#include "CglGomory.hpp"
#include "CglRedSplit.hpp"
#include "CglLiftAndProject.hpp"
#include "CglLandP.hpp"
#include "CglMixedIntegerRounding.hpp"
#include "CglMixedIntegerRounding2.hpp"
#include "CglTwomir.hpp"
#include "CglResidualCapacity.hpp"
#include "CglPreProcess.hpp"
#include "CglProbing.hpp"
#include "CglSimpleRounding.hpp"
#include "CglCutGenerator.hpp"
#include "ICbcNode.hpp"
#include "ClpSimplex.hpp"
#include "OsiClpSolverInterface.hpp"
#include "OsiSolverInterface.hpp"
#include "CbcCompareUser.hpp"
#include "ICbcModel.hpp"
#include "ios"
#include "new"
#include "stdexcept"
#include "typeinfo"
#include <string>
#include <vector>
#include "IClpSimplex.hpp"
#include "ICoinMpsIO.hpp"
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 1
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING "ascii"
#define __Pyx_PyObject_FromString __Pyx_PyStr_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyStr_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyObject_AsWritableString(s)    ((char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
    const Py_UNICODE *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }

static PyObject *__pyx_m = NULL;
static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_cython_runtime = NULL;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
static PyObject *__pyx_empty_unicode;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;

/* Header.proto */
#if !defined(CYTHON_CCOMPLEX)
  #if defined(__cplusplus)
    #define CYTHON_CCOMPLEX 1
  #elif defined(_Complex_I)
    #define CYTHON_CCOMPLEX 1
  #else
    #define CYTHON_CCOMPLEX 0
  #endif
#endif
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    #include <complex>
  #else
    #include <complex.h>
  #endif
#endif
#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
  #undef _Complex_I
  #define _Complex_I 1.0fj
#endif


static const char *__pyx_f[] = {
  "cylp/cy/CyClpSimplex.pyx",
  "stringsource",
  "__init__.pxd",
  "type.pxd",
  "bool.pxd",
  "complex.pxd",
  "cylp/cy/CyCoinIndexedVector.pxd",
  "cylp/cy/CyClpPrimalColumnPivotBase.pxd",
  "cylp/cy/CyClpDualRowPivotBase.pxd",
  "cylp/cy/CyCoinModel.pxd",
  "cylp/cy/CyCoinPackedMatrix.pxd",
  "cylp/cy/CyCgl.pxd",
  "cylp/cy/CyCbcNode.pxd",
  "cylp/cy/CyOsiSolverInterface.pxd",
  "cylp/cy/CyCbcModel.pxd",
  "cylp/cy/CyWolfePivot.pxd",
  "cylp/cy/CyPEPivot.pxd",
  "cylp/cy/CyPivotPythonBase.pxd",
  "cylp/cy/CyDualPivotPythonBase.pxd",
  "cylp/cy/CyCoinMpsIO.pxd",
};
/* BufferFormatStructs.proto */
#define IS_UNSIGNED(type) (((type) -1) > 0)
struct __Pyx_StructField_;
#define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0)
typedef struct {
  const char* name;
  struct __Pyx_StructField_* fields;
  size_t size;
  size_t arraysize[8];
  int ndim;
  char typegroup;
  char is_unsigned;
  int flags;
} __Pyx_TypeInfo;
typedef struct __Pyx_StructField_ {
  __Pyx_TypeInfo* type;
  const char* name;
  size_t offset;
} __Pyx_StructField;
typedef struct {
  __Pyx_StructField* field;
  size_t parent_offset;
} __Pyx_BufFmt_StackElem;
typedef struct {
  __Pyx_StructField root;
  __Pyx_BufFmt_StackElem* head;
  size_t fmt_offset;
  size_t new_count, enc_count;
  size_t struct_alignment;
  int is_complex;
  char enc_type;
  char new_packmode;
  char enc_packmode;
  char is_valid_array;
} __Pyx_BufFmt_Context;


/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":775
 * # in Cython to enable them only on the right systems.
 * 
 * ctypedef npy_int8       int8_t             # <<<<<<<<<<<<<<
 * ctypedef npy_int16      int16_t
 * ctypedef npy_int32      int32_t
 */
typedef npy_int8 __pyx_t_5numpy_int8_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":776
 * 
 * ctypedef npy_int8       int8_t
 * ctypedef npy_int16      int16_t             # <<<<<<<<<<<<<<
 * ctypedef npy_int32      int32_t
 * ctypedef npy_int64      int64_t
 */
typedef npy_int16 __pyx_t_5numpy_int16_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":777
 * ctypedef npy_int8       int8_t
 * ctypedef npy_int16      int16_t
 * ctypedef npy_int32      int32_t             # <<<<<<<<<<<<<<
 * ctypedef npy_int64      int64_t
 * #ctypedef npy_int96      int96_t
 */
typedef npy_int32 __pyx_t_5numpy_int32_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":778
 * ctypedef npy_int16      int16_t
 * ctypedef npy_int32      int32_t
 * ctypedef npy_int64      int64_t             # <<<<<<<<<<<<<<
 * #ctypedef npy_int96      int96_t
 * #ctypedef npy_int128     int128_t
 */
typedef npy_int64 __pyx_t_5numpy_int64_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":782
 * #ctypedef npy_int128     int128_t
 * 
 * ctypedef npy_uint8      uint8_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uint16     uint16_t
 * ctypedef npy_uint32     uint32_t
 */
typedef npy_uint8 __pyx_t_5numpy_uint8_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":783
 * 
 * ctypedef npy_uint8      uint8_t
 * ctypedef npy_uint16     uint16_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uint32     uint32_t
 * ctypedef npy_uint64     uint64_t
 */
typedef npy_uint16 __pyx_t_5numpy_uint16_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":784
 * ctypedef npy_uint8      uint8_t
 * ctypedef npy_uint16     uint16_t
 * ctypedef npy_uint32     uint32_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uint64     uint64_t
 * #ctypedef npy_uint96     uint96_t
 */
typedef npy_uint32 __pyx_t_5numpy_uint32_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":785
 * ctypedef npy_uint16     uint16_t
 * ctypedef npy_uint32     uint32_t
 * ctypedef npy_uint64     uint64_t             # <<<<<<<<<<<<<<
 * #ctypedef npy_uint96     uint96_t
 * #ctypedef npy_uint128    uint128_t
 */
typedef npy_uint64 __pyx_t_5numpy_uint64_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":789
 * #ctypedef npy_uint128    uint128_t
 * 
 * ctypedef npy_float32    float32_t             # <<<<<<<<<<<<<<
 * ctypedef npy_float64    float64_t
 * #ctypedef npy_float80    float80_t
 */
typedef npy_float32 __pyx_t_5numpy_float32_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":790
 * 
 * ctypedef npy_float32    float32_t
 * ctypedef npy_float64    float64_t             # <<<<<<<<<<<<<<
 * #ctypedef npy_float80    float80_t
 * #ctypedef npy_float128   float128_t
 */
typedef npy_float64 __pyx_t_5numpy_float64_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":799
 * # The int types are mapped a bit surprising --
 * # numpy.int corresponds to 'l' and numpy.long to 'q'
 * ctypedef npy_long       int_t             # <<<<<<<<<<<<<<
 * ctypedef npy_longlong   long_t
 * ctypedef npy_longlong   longlong_t
 */
typedef npy_long __pyx_t_5numpy_int_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":800
 * # numpy.int corresponds to 'l' and numpy.long to 'q'
 * ctypedef npy_long       int_t
 * ctypedef npy_longlong   long_t             # <<<<<<<<<<<<<<
 * ctypedef npy_longlong   longlong_t
 * 
 */
typedef npy_longlong __pyx_t_5numpy_long_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":801
 * ctypedef npy_long       int_t
 * ctypedef npy_longlong   long_t
 * ctypedef npy_longlong   longlong_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_ulong      uint_t
 */
typedef npy_longlong __pyx_t_5numpy_longlong_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":803
 * ctypedef npy_longlong   longlong_t
 * 
 * ctypedef npy_ulong      uint_t             # <<<<<<<<<<<<<<
 * ctypedef npy_ulonglong  ulong_t
 * ctypedef npy_ulonglong  ulonglong_t
 */
typedef npy_ulong __pyx_t_5numpy_uint_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":804
 * 
 * ctypedef npy_ulong      uint_t
 * ctypedef npy_ulonglong  ulong_t             # <<<<<<<<<<<<<<
 * ctypedef npy_ulonglong  ulonglong_t
 * 
 */
typedef npy_ulonglong __pyx_t_5numpy_ulong_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":805
 * ctypedef npy_ulong      uint_t
 * ctypedef npy_ulonglong  ulong_t
 * ctypedef npy_ulonglong  ulonglong_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_intp       intp_t
 */
typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":807
 * ctypedef npy_ulonglong  ulonglong_t
 * 
 * ctypedef npy_intp       intp_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uintp      uintp_t
 * 
 */
typedef npy_intp __pyx_t_5numpy_intp_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":808
 * 
 * ctypedef npy_intp       intp_t
 * ctypedef npy_uintp      uintp_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_double     float_t
 */
typedef npy_uintp __pyx_t_5numpy_uintp_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":810
 * ctypedef npy_uintp      uintp_t
 * 
 * ctypedef npy_double     float_t             # <<<<<<<<<<<<<<
 * ctypedef npy_double     double_t
 * ctypedef npy_longdouble longdouble_t
 */
typedef npy_double __pyx_t_5numpy_float_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":811
 * 
 * ctypedef npy_double     float_t
 * ctypedef npy_double     double_t             # <<<<<<<<<<<<<<
 * ctypedef npy_longdouble longdouble_t
 * 
 */
typedef npy_double __pyx_t_5numpy_double_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":812
 * ctypedef npy_double     float_t
 * ctypedef npy_double     double_t
 * ctypedef npy_longdouble longdouble_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_cfloat      cfloat_t
 */
typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
/* Declarations.proto */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    typedef ::std::complex< float > __pyx_t_float_complex;
  #else
    typedef float _Complex __pyx_t_float_complex;
  #endif
#else
    typedef struct { float real, imag; } __pyx_t_float_complex;
#endif
static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);

/* Declarations.proto */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    typedef ::std::complex< double > __pyx_t_double_complex;
  #else
    typedef double _Complex __pyx_t_double_complex;
  #endif
#else
    typedef struct { double real, imag; } __pyx_t_double_complex;
#endif
static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);


/*--- Type declarations ---*/
struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector;
struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase;
struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase;
struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel;
struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglAllDifferent;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglClique;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglKnapsackCover;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglOddHole;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglFlowCover;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglGomory;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglRedSplit;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLiftAndProject;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLandP;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglTwomir;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglResidualCapacity;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglPreProcess;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglProbing;
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding;
struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode;
struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface;
struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel;
struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot;
struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot;
struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase;
struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase;
struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO;
struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":814
 * ctypedef npy_longdouble longdouble_t
 * 
 * ctypedef npy_cfloat      cfloat_t             # <<<<<<<<<<<<<<
 * ctypedef npy_cdouble     cdouble_t
 * ctypedef npy_clongdouble clongdouble_t
 */
typedef npy_cfloat __pyx_t_5numpy_cfloat_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":815
 * 
 * ctypedef npy_cfloat      cfloat_t
 * ctypedef npy_cdouble     cdouble_t             # <<<<<<<<<<<<<<
 * ctypedef npy_clongdouble clongdouble_t
 * 
 */
typedef npy_cdouble __pyx_t_5numpy_cdouble_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":816
 * ctypedef npy_cfloat      cfloat_t
 * ctypedef npy_cdouble     cdouble_t
 * ctypedef npy_clongdouble clongdouble_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_cdouble     complex_t
 */
typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":818
 * ctypedef npy_clongdouble clongdouble_t
 * 
 * ctypedef npy_cdouble     complex_t             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew1(a):
 */
typedef npy_cdouble __pyx_t_5numpy_complex_t;
struct __pyx_opt_args_4cylp_2cy_10CyCbcModel_10CyCbcModel_addCutGenerator;

/* "cylp/cy/CyCbcModel.pxd":89
 *     cdef setCppSelf(self, CppICbcModel* cppmodel)
 *     cdef setClpModel(self, clpmodel)
 *     cpdef addCutGenerator(self, CyCglCutGenerator generator,             # <<<<<<<<<<<<<<
 *                         howOften=*, name=*, normal=*, atSolution=*,
 *                         infeasible=*, howOftenInSub=*, whatDepth=*,
 */
struct __pyx_opt_args_4cylp_2cy_10CyCbcModel_10CyCbcModel_addCutGenerator {
  int __pyx_n;
  PyObject *howOften;
  PyObject *name;
  PyObject *normal;
  PyObject *atSolution;
  PyObject *infeasible;
  PyObject *howOftenInSub;
  PyObject *whatDepth;
  PyObject *whatDepthInSub;
};
struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps;

/* "cylp/cy/CyClpSimplex.pxd":326
 *     #cdef object isPivotAcceptable_func
 * 
 *     cpdef int readMps(self, filename, int keepNames=*,             # <<<<<<<<<<<<<<
 *                 int ignoreErrors=*) except *
 * 
 */
struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps {
  int __pyx_n;
  int keepNames;
  int ignoreErrors;
};

/* "cylp/cy/CyCoinIndexedVector.pxd":22
 * 
 * 
 * cdef class CyCoinIndexedVector:             # <<<<<<<<<<<<<<
 *     cpdef CppCoinIndexedVector *CppSelf
 *     cpdef reserve(self, n)
 */
struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector {
  PyObject_HEAD
  struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_vtab;
  ICoinIndexedVector *CppSelf;
};


/* "cylp/cy/CyClpPrimalColumnPivotBase.pxd":67
 * 
 * 
 * cdef class CyClpPrimalColumnPivotBase:             # <<<<<<<<<<<<<<
 *     cdef CppClpPrimalColumnPivotBase* CppSelf
 *     cdef CyClpSimplex.CyClpSimplex cyModel
 */
struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase {
  PyObject_HEAD
  struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_vtab;
  CppClpPrimalColumnPivotBase *CppSelf;
  struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *cyModel;
};


/* "cylp/cy/CyClpDualRowPivotBase.pxd":72
 * 
 * 
 * cdef class CyClpDualRowPivotBase:             # <<<<<<<<<<<<<<
 *     cdef CppClpDualRowPivotBase* CppSelf
 *     cdef CyClpSimplex.CyClpSimplex cyModel
 */
struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase {
  PyObject_HEAD
  struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__pyx_vtab;
  CppClpDualRowPivotBase *CppSelf;
  struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *cyModel;
};


/* "cylp/cy/CyCoinModel.pxd":34
 * 
 * 
 * cdef class CyCoinModel:             # <<<<<<<<<<<<<<
 *     cdef CppCoinModel* CppSelf
 * 
 */
struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel {
  PyObject_HEAD
  struct __pyx_vtabstruct_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_vtab;
  CoinModel *CppSelf;
};


/* "cylp/cy/CyCoinPackedMatrix.pxd":27
 * 
 * 
 * cdef class CyCoinPackedMatrix:             # <<<<<<<<<<<<<<
 *     cpdef CppCoinPackedMatrix* CppSelf
 *     #cpdef getIndices(self)
 */
struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix {
  PyObject_HEAD
  ICoinPackedMatrix *CppSelf;
};


/* "cylp/cy/CyCgl.pxd":103
 * 
 * 
 * cdef class CyCglCutGenerator:             # <<<<<<<<<<<<<<
 *     cdef CppCglCutGenerator* CppSelf
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator {
  PyObject_HEAD
  CglCutGenerator *CppSelf;
};


/* "cylp/cy/CyCgl.pxd":108
 * ###########
 * 
 * cdef class CyCglAllDifferent(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglAllDifferent {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":111
 *     pass
 * 
 * cdef class CyCglClique(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglClique {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":114
 *     pass
 * 
 * cdef class CyCglKnapsackCover(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     cdef CppCglKnapsackCover* realCppSelf(self)
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglKnapsackCover {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
  struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglKnapsackCover *__pyx_vtab;
};


/* "cylp/cy/CyCgl.pxd":117
 *     cdef CppCglKnapsackCover* realCppSelf(self)
 * 
 * cdef class CyCglOddHole(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglOddHole {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":122
 * ##################
 * 
 * cdef class CyCglFlowCover(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglFlowCover {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":127
 * ##################
 * 
 * cdef class CyCglGomory(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     cdef CppCglGomory* realCppSelf(self)
 *     #cdef CppCglGomory* CppSelf
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglGomory {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
  struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglGomory *__pyx_vtab;
};


/* "cylp/cy/CyCgl.pxd":132
 *     #cdef CppCglCutGenerator* CppSelf
 * 
 * cdef class CyCglRedSplit(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglRedSplit {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":137
 * ###################
 * 
 * cdef class CyCglLiftAndProject(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLiftAndProject {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":140
 *     pass
 * 
 * cdef class CyCglLandP(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLandP {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":145
 * ###################
 * 
 * cdef class CyCglMixedIntegerRounding(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":148
 *     pass
 * 
 * cdef class CyCglMixedIntegerRounding2(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2 {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":151
 *     pass
 * 
 * cdef class CyCglTwomir(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglTwomir {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":154
 *     pass
 * 
 * cdef class CyCglResidualCapacity(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglResidualCapacity {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":162
 * #    pass
 * 
 * cdef class CyCglPreProcess(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglPreProcess {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":165
 *     pass
 * 
 * cdef class CyCglProbing(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglProbing {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCgl.pxd":168
 *     pass
 * 
 * cdef class CyCglSimpleRounding(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding {
  struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator __pyx_base;
};


/* "cylp/cy/CyCbcNode.pxd":13
 *         bint breakTie(CppICbcNode* y)
 * 
 * cdef class CyCbcNode:             # <<<<<<<<<<<<<<
 *     cdef CppICbcNode* CppSelf
 *     cdef setCppSelf(self, CppICbcNode* cbcnode)
 */
struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode {
  PyObject_HEAD
  struct __pyx_vtabstruct_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_vtab;
  ICbcNode *CppSelf;
};


/* "cylp/cy/CyOsiSolverInterface.pxd":15
 *         pass
 * 
 * cdef class CyOsiSolverInterface:             # <<<<<<<<<<<<<<
 *     cdef CppOsiSolverInterface* CppSelf
 *     cdef setCppSelf(self, CppOsiSolverInterface* s)
 */
struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface {
  PyObject_HEAD
  struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *__pyx_vtab;
  OsiSolverInterface *CppSelf;
};


/* "cylp/cy/CyCbcModel.pxd":82
 *         CppOsiSolverInterface* solver()
 * 
 * cdef class CyCbcModel:             # <<<<<<<<<<<<<<
 *     cdef CppICbcModel* CppSelf
 *     cdef object cyLPModel
 */
struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel {
  PyObject_HEAD
  struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_vtab;
  ICbcModel *CppSelf;
  PyObject *cyLPModel;
  PyObject *clpModel;
  PyObject *cutGenerators;
};


/* "CyWolfePivot.pxd":6
 * 
 * 
 * cdef class CyWolfePivot(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
 *     cdef pivotColumn(self, CppCoinIndexedVector* v1,
 *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
 */
struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot {
  struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
};


/* "CyPEPivot.pxd":7
 * 
 * 
 * cdef class CyPEPivot(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
 *     cdef pivotColumn(self, CppCoinIndexedVector* v1,
 *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
 */
struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot {
  struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
};


/* "CyPivotPythonBase.pxd":7
 * from cpython cimport Py_INCREF, Py_DECREF
 * 
 * cdef class CyPivotPythonBase(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
 * 	cdef pivotColumn(self, CppCoinIndexedVector* v1,
 *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
 */
struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase {
  struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
  PyObject *pivotMethodObject;
};


/* "CyDualPivotPythonBase.pxd":9
 * from cpython cimport Py_INCREF, Py_DECREF
 * 
 * cdef class CyDualPivotPythonBase(CyClpDualRowPivotBase):             # <<<<<<<<<<<<<<
 *     cdef pivotRow(self)
 *     cdef CyClpDualRowPivot * clone(self, bint copyData)
 */
struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase {
  struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase __pyx_base;
  PyObject *dualPivotMethodObject;
};


/* "CyCoinMpsIO.pxd":46
 * 
 * 
 * cdef class CyCoinMpsIO:             # <<<<<<<<<<<<<<
 *     cdef CppICoinMpsIO *CppSelf
 *     cpdef Hessian
 */
struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO {
  PyObject_HEAD
  ICoinMpsIO *CppSelf;
  PyObject *Hessian;
};


/* "cylp/cy/CyClpSimplex.pxd":302
 *         void setOptimizationDirection(double value)
 * 
 * cdef class CyClpSimplex:             # <<<<<<<<<<<<<<
 *     '''
 *     This is the documentation of CyClpSimpelx in the pyx class
 */
struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex {
  PyObject_HEAD
  struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_vtab;
  IClpSimplex *CppSelf;
  PyObject *vars;
  PyObject *varSelCriteria;
  struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *coinModel;
  PyObject *cyLPModel;
  struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *cbcModel;
  PyObject *_Hessian;
  struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *cyPivot;
  struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *cyDualPivot;
};


/* "cylp/cy/CyClpSimplex.pxd":377
 *     cpdef setConstraintName(self, constInd, name)
 * 
 * cdef class VarStatus:             # <<<<<<<<<<<<<<
 *     pass
 * cpdef cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2)
 */
struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus {
  PyObject_HEAD
};



/* "cylp/cy/CyCoinIndexedVector.pxd":22
 * 
 * 
 * cdef class CyCoinIndexedVector:             # <<<<<<<<<<<<<<
 *     cpdef CppCoinIndexedVector *CppSelf
 *     cpdef reserve(self, n)
 */

struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector {
  PyObject *(*reserve)(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*assign)(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, PyObject *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, ICoinIndexedVector *);
};
static struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector;


/* "cylp/cy/CyClpPrimalColumnPivotBase.pxd":67
 * 
 * 
 * cdef class CyClpPrimalColumnPivotBase:             # <<<<<<<<<<<<<<
 *     cdef CppClpPrimalColumnPivotBase* CppSelf
 *     cdef CyClpSimplex.CyClpSimplex cyModel
 */

struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase {
  PyObject *(*pivotColumn)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *);
  ClpPrimalColumnPivot *(*clone)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *, int);
  void (*saveWeights)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *, IClpSimplex *, int);
  IClpSimplex *(*model)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *);
  void (*setModel)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *, IClpSimplex *);
  double *(*getReducedCosts)(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *);
};
static struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase;


/* "cylp/cy/CyClpDualRowPivotBase.pxd":72
 * 
 * 
 * cdef class CyClpDualRowPivotBase:             # <<<<<<<<<<<<<<
 *     cdef CppClpDualRowPivotBase* CppSelf
 *     cdef CyClpSimplex.CyClpSimplex cyModel
 */

struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase {
  PyObject *(*pivotRow)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *);
  ClpDualRowPivot *(*clone)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *, int);
  double (*updateWeights)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *);
  void (*updatePrimalSolution)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *, ICoinIndexedVector *, double, PyArrayObject *);
  IClpSimplex *(*model)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *);
  void (*setModel)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *, IClpSimplex *);
  double *(*getReducedCosts)(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *);
};
static struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__pyx_vtabptr_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase;


/* "cylp/cy/CyCoinModel.pxd":34
 * 
 * 
 * cdef class CyCoinModel:             # <<<<<<<<<<<<<<
 *     cdef CppCoinModel* CppSelf
 * 
 */

struct __pyx_vtabstruct_4cylp_2cy_11CyCoinModel_CyCoinModel {
  void (*CLP_addColumn)(struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *, int, int *, double *, double, double, double);
  void (*CLP_addRow)(struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *, int, int *, double *, double, double);
};
static struct __pyx_vtabstruct_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_vtabptr_4cylp_2cy_11CyCoinModel_CyCoinModel;


/* "cylp/cy/CyCgl.pxd":114
 *     pass
 * 
 * cdef class CyCglKnapsackCover(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     cdef CppCglKnapsackCover* realCppSelf(self)
 * 
 */

struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglKnapsackCover {
  CglKnapsackCover *(*realCppSelf)(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglKnapsackCover *);
};
static struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglKnapsackCover *__pyx_vtabptr_4cylp_2cy_5CyCgl_CyCglKnapsackCover;


/* "cylp/cy/CyCgl.pxd":127
 * ##################
 * 
 * cdef class CyCglGomory(CyCglCutGenerator):             # <<<<<<<<<<<<<<
 *     cdef CppCglGomory* realCppSelf(self)
 *     #cdef CppCglGomory* CppSelf
 */

struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglGomory {
  CglGomory *(*realCppSelf)(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglGomory *);
};
static struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglGomory *__pyx_vtabptr_4cylp_2cy_5CyCgl_CyCglGomory;


/* "cylp/cy/CyCbcNode.pxd":13
 *         bint breakTie(CppICbcNode* y)
 * 
 * cdef class CyCbcNode:             # <<<<<<<<<<<<<<
 *     cdef CppICbcNode* CppSelf
 *     cdef setCppSelf(self, CppICbcNode* cbcnode)
 */

struct __pyx_vtabstruct_4cylp_2cy_9CyCbcNode_CyCbcNode {
  PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode *, ICbcNode *);
};
static struct __pyx_vtabstruct_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_vtabptr_4cylp_2cy_9CyCbcNode_CyCbcNode;


/* "cylp/cy/CyOsiSolverInterface.pxd":15
 *         pass
 * 
 * cdef class CyOsiSolverInterface:             # <<<<<<<<<<<<<<
 *     cdef CppOsiSolverInterface* CppSelf
 *     cdef setCppSelf(self, CppOsiSolverInterface* s)
 */

struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface {
  PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *, OsiSolverInterface *);
};
static struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *__pyx_vtabptr_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface;


/* "cylp/cy/CyCbcModel.pxd":82
 *         CppOsiSolverInterface* solver()
 * 
 * cdef class CyCbcModel:             # <<<<<<<<<<<<<<
 *     cdef CppICbcModel* CppSelf
 *     cdef object cyLPModel
 */

struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel {
  PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *, ICbcModel *);
  PyObject *(*setClpModel)(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *, PyObject *);
  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);
};
static struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_vtabptr_4cylp_2cy_10CyCbcModel_CyCbcModel;


/* "CyWolfePivot.pxd":6
 * 
 * 
 * cdef class CyWolfePivot(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
 *     cdef pivotColumn(self, CppCoinIndexedVector* v1,
 *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
 */

struct __pyx_vtabstruct_4cylp_2cy_12CyWolfePivot_CyWolfePivot {
  struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
};
static struct __pyx_vtabstruct_4cylp_2cy_12CyWolfePivot_CyWolfePivot *__pyx_vtabptr_4cylp_2cy_12CyWolfePivot_CyWolfePivot;


/* "CyPEPivot.pxd":7
 * 
 * 
 * cdef class CyPEPivot(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
 *     cdef pivotColumn(self, CppCoinIndexedVector* v1,
 *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
 */

struct __pyx_vtabstruct_4cylp_2cy_9CyPEPivot_CyPEPivot {
  struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
};
static struct __pyx_vtabstruct_4cylp_2cy_9CyPEPivot_CyPEPivot *__pyx_vtabptr_4cylp_2cy_9CyPEPivot_CyPEPivot;


/* "CyPivotPythonBase.pxd":7
 * from cpython cimport Py_INCREF, Py_DECREF
 * 
 * cdef class CyPivotPythonBase(CyClpPrimalColumnPivotBase):             # <<<<<<<<<<<<<<
 * 	cdef pivotColumn(self, CppCoinIndexedVector* v1,
 *                      CppCoinIndexedVector* v2, CppCoinIndexedVector* v3,
 */

struct __pyx_vtabstruct_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase {
  struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_base;
};
static struct __pyx_vtabstruct_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *__pyx_vtabptr_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase;


/* "CyDualPivotPythonBase.pxd":9
 * from cpython cimport Py_INCREF, Py_DECREF
 * 
 * cdef class CyDualPivotPythonBase(CyClpDualRowPivotBase):             # <<<<<<<<<<<<<<
 *     cdef pivotRow(self)
 *     cdef CyClpDualRowPivot * clone(self, bint copyData)
 */

struct __pyx_vtabstruct_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase {
  struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase __pyx_base;
};
static struct __pyx_vtabstruct_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase *__pyx_vtabptr_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase;


/* "cylp/cy/CyClpSimplex.pyx":50
 *                       's' : 4} #skip initialization of work areas
 * 
 * cdef class CyClpSimplex:             # <<<<<<<<<<<<<<
 *     '''
 *     CyClpSimplex is a Cython interface to CLP.
 */

struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex {
  PyObject *(*setCppSelf)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, IClpSimplex *);
  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);
  PyObject *(*setPrimalColumnPivotAlgorithm)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, void *);
  PyObject *(*setDualRowPivotAlgorithm)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, void *);
  double *(*primalColumnSolution)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
  double *(*dualColumnSolution)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
  double *(*primalRowSolution)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
  double *(*dualRowSolution)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
  double *(*rowLower)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
  double *(*rowUpper)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
  PyObject *(*getReducedCosts)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch);
  PyObject *(*getStatusArray)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch);
  PyObject *(*getComplementarityList)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch);
  PyObject *(*getPivotVariable)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int __pyx_skip_dispatch);
  PyObject *(*filterVars)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*CLP_getVarStatus)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int, int __pyx_skip_dispatch);
  PyObject *(*CLP_setVarStatus)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int, int, int __pyx_skip_dispatch);
  PyObject *(*primalRow)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, int);
  PyObject *(*getACol)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, int, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, int __pyx_skip_dispatch);
  int *(*ComplementarityList)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
  int *(*pivotVariable)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *);
  PyObject *(*vectorTimesB_1)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *, int __pyx_skip_dispatch);
  PyObject *(*setVariableName)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*setConstraintName)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, PyObject *, PyObject *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_vtabptr_4cylp_2cy_12CyClpSimplex_CyClpSimplex;

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, int);
    void (*DECREF)(void*, PyObject*, int);
    void (*GOTREF)(void*, PyObject*, int);
    void (*GIVEREF)(void*, PyObject*, int);
    void* (*SetupContext)(const char*, int, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
#endif
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
    const char* function_name);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#define __Pyx_PyErr_Occurred()  __pyx_tstate->curexc_type
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* Profile.proto */
#ifndef CYTHON_PROFILE
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
  #define CYTHON_PROFILE 0
#else
  #define CYTHON_PROFILE 1
#endif
#endif
#ifndef CYTHON_TRACE_NOGIL
  #define CYTHON_TRACE_NOGIL 0
#else
  #if CYTHON_TRACE_NOGIL && !defined(CYTHON_TRACE)
    #define CYTHON_TRACE 1
  #endif
#endif
#ifndef CYTHON_TRACE
  #define CYTHON_TRACE 0
#endif
#if CYTHON_TRACE
  #undef CYTHON_PROFILE_REUSE_FRAME
#endif
#ifndef CYTHON_PROFILE_REUSE_FRAME
  #define CYTHON_PROFILE_REUSE_FRAME 0
#endif
#if CYTHON_PROFILE || CYTHON_TRACE
  #include "compile.h"
  #include "frameobject.h"
  #include "traceback.h"
  #if CYTHON_PROFILE_REUSE_FRAME
    #define CYTHON_FRAME_MODIFIER static
    #define CYTHON_FRAME_DEL(frame)
  #else
    #define CYTHON_FRAME_MODIFIER
    #define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame)
  #endif
  #define __Pyx_TraceDeclarations\
  static PyCodeObject *__pyx_frame_code = NULL;\
  CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\
  int __Pyx_use_tracing = 0;
  #define __Pyx_TraceFrameInit(codeobj)\
  if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj;
  #ifdef WITH_THREAD
  #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\
  if (nogil) {\
      if (CYTHON_TRACE_NOGIL) {\
          PyThreadState *tstate;\
          PyGILState_STATE state = PyGILState_Ensure();\
          tstate = __Pyx_PyThreadState_Current;\
          if (unlikely(tstate->use_tracing) && !tstate->tracing &&\
                  (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\
              __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
          }\
          PyGILState_Release(state);\
          if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
      }\
  } else {\
      PyThreadState* tstate = PyThreadState_GET();\
      if (unlikely(tstate->use_tracing) && !tstate->tracing &&\
              (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\
          __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
          if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
      }\
  }
  #else
  #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\
  {   PyThreadState* tstate = PyThreadState_GET();\
      if (unlikely(tstate->use_tracing) && !tstate->tracing &&\
              (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\
          __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\
          if (unlikely(__Pyx_use_tracing < 0)) goto_error;\
      }\
  }
  #endif
  #define __Pyx_TraceException()\
  if (likely(!__Pyx_use_tracing)); else {\
      PyThreadState* tstate = __Pyx_PyThreadState_Current;\
      if (tstate->use_tracing &&\
              (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\
          tstate->tracing++;\
          tstate->use_tracing = 0;\
          PyObject *exc_info = __Pyx_GetExceptionTuple(tstate);\
          if (exc_info) {\
              if (CYTHON_TRACE && tstate->c_tracefunc)\
                  tstate->c_tracefunc(\
                      tstate->c_traceobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\
              tstate->c_profilefunc(\
                  tstate->c_profileobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\
              Py_DECREF(exc_info);\
          }\
          tstate->use_tracing = 1;\
          tstate->tracing--;\
      }\
  }
  static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) {
      PyObject *type, *value, *traceback;
      __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
      tstate->tracing++;
      tstate->use_tracing = 0;
      if (CYTHON_TRACE && tstate->c_tracefunc)
          tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result);
      if (tstate->c_profilefunc)
          tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result);
      CYTHON_FRAME_DEL(frame);
      tstate->use_tracing = 1;
      tstate->tracing--;
      __Pyx_ErrRestoreInState(tstate, type, value, traceback);
  }
  #ifdef WITH_THREAD
  #define __Pyx_TraceReturn(result, nogil)\
  if (likely(!__Pyx_use_tracing)); else {\
      if (nogil) {\
          if (CYTHON_TRACE_NOGIL) {\
              PyThreadState *tstate;\
              PyGILState_STATE state = PyGILState_Ensure();\
              tstate = __Pyx_PyThreadState_Current;\
              if (tstate->use_tracing) {\
                  __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
              }\
              PyGILState_Release(state);\
          }\
      } else {\
          PyThreadState* tstate = __Pyx_PyThreadState_Current;\
          if (tstate->use_tracing) {\
              __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
          }\
      }\
  }
  #else
  #define __Pyx_TraceReturn(result, nogil)\
  if (likely(!__Pyx_use_tracing)); else {\
      PyThreadState* tstate = __Pyx_PyThreadState_Current;\
      if (tstate->use_tracing) {\
          __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\
      }\
  }
  #endif
  static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno);
  static int __Pyx_TraceSetupAndCall(PyCodeObject** code, PyFrameObject** frame, PyThreadState* tstate, const char *funcname, const char *srcfile, int firstlineno);
#else
  #define __Pyx_TraceDeclarations
  #define __Pyx_TraceFrameInit(codeobj)
  #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)   if ((1)); else goto_error;
  #define __Pyx_TraceException()
  #define __Pyx_TraceReturn(result, nogil)
#endif
#if CYTHON_TRACE
  static int __Pyx_call_line_trace_func(PyThreadState *tstate, PyFrameObject *frame, int lineno) {
      int ret;
      PyObject *type, *value, *traceback;
      __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
      __Pyx_PyFrame_SetLineNumber(frame, lineno);
      tstate->tracing++;
      tstate->use_tracing = 0;
      ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL);
      tstate->use_tracing = 1;
      tstate->tracing--;
      if (likely(!ret)) {
          __Pyx_ErrRestoreInState(tstate, type, value, traceback);
      } else {
          Py_XDECREF(type);
          Py_XDECREF(value);
          Py_XDECREF(traceback);
      }
      return ret;
  }
  #ifdef WITH_THREAD
  #define __Pyx_TraceLine(lineno, nogil, goto_error)\
  if (likely(!__Pyx_use_tracing)); else {\
      if (nogil) {\
          if (CYTHON_TRACE_NOGIL) {\
              int ret = 0;\
              PyThreadState *tstate;\
              PyGILState_STATE state = PyGILState_Ensure();\
              tstate = __Pyx_PyThreadState_Current;\
              if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\
                  ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
              }\
              PyGILState_Release(state);\
              if (unlikely(ret)) goto_error;\
          }\
      } else {\
          PyThreadState* tstate = __Pyx_PyThreadState_Current;\
          if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\
              int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
              if (unlikely(ret)) goto_error;\
          }\
      }\
  }
  #else
  #define __Pyx_TraceLine(lineno, nogil, goto_error)\
  if (likely(!__Pyx_use_tracing)); else {\
      PyThreadState* tstate = __Pyx_PyThreadState_Current;\
      if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\
          int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\
          if (unlikely(ret)) goto_error;\
      }\
  }
  #endif
#else
  #define __Pyx_TraceLine(lineno, nogil, goto_error)   if ((1)); else goto_error;
#endif

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
#else
#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
  static size_t __pyx_pyframe_localsplus_offset = 0;
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()\
    ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
     (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
  #define __Pyx_PyFrame_GetLocalsplus(frame)\
    (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectCallNoArg.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
#else
#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
#endif

/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __pyx_dict_cached_value;\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
#define __Pyx_GetModuleGlobalNameUncached(var, name)  {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* PyCFunctionFastCall.proto */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
#else
#define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
#endif

/* PyObjectCall2Args.proto */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* RaiseException.proto */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* IsLittleEndian.proto */
static CYTHON_INLINE int __Pyx_Is_Little_Endian(void);

/* BufferFormatCheck.proto */
static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts);
static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
                              __Pyx_BufFmt_StackElem* stack,
                              __Pyx_TypeInfo* type);

/* BufferGetAndValidate.proto */
#define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\
    ((obj == Py_None || obj == NULL) ?\
    (__Pyx_ZeroBuffer(buf), 0) :\
    __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack))
static int  __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj,
    __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
static void __Pyx_ZeroBuffer(Py_buffer* buf);
static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info);
static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 };
static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 };

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* PyIntCompare.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AndObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_AndObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAnd(op1, op2) : PyNumber_And(op1, op2))
#endif

/* PyIntCompare.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_NeObjC(PyObject *op1, PyObject *op2, long intval, long inplace);

/* None.proto */
static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);

/* PyIntFromDouble.proto */
#if PY_MAJOR_VERSION < 3
static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value);
#else
#define __Pyx_PyInt_FromDouble(value) PyLong_FromDouble(value)
#endif

/* DictGetItem.proto */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* IncludeStringH.proto */
#include <string.h>

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* StrEquals.proto */
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
#else
#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
#endif

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* SliceObject.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
        PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* PatchModuleWithCoroutine.proto */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);

/* PatchInspect.proto */
static PyObject* __Pyx_patch_inspect(PyObject* module);

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* GetAttr.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);

/* GetAttr3.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);

/* HasAttr.proto */
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);

/* RaiseNoneIterError.proto */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);

/* PyObject_GenericGetAttrNoDict.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
#endif

/* PyObject_GenericGetAttr.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
#endif

/* SetVTable.proto */
static int __Pyx_SetVtable(PyObject *dict, void *vtable);

/* PyObjectGetAttrStrNoError.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

/* SetupReduce.proto */
static int __Pyx_setup_reduce(PyObject* type_obj);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto
#define __PYX_HAVE_RT_ImportType_proto
enum __Pyx_ImportType_CheckSize {
   __Pyx_ImportType_CheckSize_Error = 0,
   __Pyx_ImportType_CheckSize_Warn = 1,
   __Pyx_ImportType_CheckSize_Ignore = 2
};
static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
#endif

/* GetVTable.proto */
static void* __Pyx_GetVtable(PyObject *dict);

/* GetNameInClass.proto */
#define __Pyx_GetNameInClass(var, nmspace, name)  (var) = __Pyx__GetNameInClass(nmspace, name)
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name);

/* CLineInTraceback.proto */
#ifdef CYTHON_CLINE_IN_TRACEBACK
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#else
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#endif

/* CodeObjectCache.proto */
typedef struct {
    PyCodeObject* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* BufferStructDeclare.proto */
typedef struct {
  Py_ssize_t shape, strides, suboffsets;
} __Pyx_Buf_DimInfo;
typedef struct {
  size_t refcount;
  Py_buffer pybuffer;
} __Pyx_Buffer;
typedef struct {
  __Pyx_Buffer *rcbuffer;
  char *data;
  __Pyx_Buf_DimInfo diminfo[8];
} __Pyx_LocalBuf_ND;

#if PY_MAJOR_VERSION < 3
    static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags);
    static void __Pyx_ReleaseBuffer(Py_buffer *view);
#else
    #define __Pyx_GetBuffer PyObject_GetBuffer
    #define __Pyx_ReleaseBuffer PyBuffer_Release
#endif


/* None.proto */
static CYTHON_INLINE long __Pyx_pow_long(long, long);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value);

/* RealImag.proto */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    #define __Pyx_CREAL(z) ((z).real())
    #define __Pyx_CIMAG(z) ((z).imag())
  #else
    #define __Pyx_CREAL(z) (__real__(z))
    #define __Pyx_CIMAG(z) (__imag__(z))
  #endif
#else
    #define __Pyx_CREAL(z) ((z).real)
    #define __Pyx_CIMAG(z) ((z).imag)
#endif
#if defined(__cplusplus) && CYTHON_CCOMPLEX\
        && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
    #define __Pyx_SET_CREAL(z,x) ((z).real(x))
    #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
#else
    #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
    #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX
    #define __Pyx_c_eq_float(a, b)   ((a)==(b))
    #define __Pyx_c_sum_float(a, b)  ((a)+(b))
    #define __Pyx_c_diff_float(a, b) ((a)-(b))
    #define __Pyx_c_prod_float(a, b) ((a)*(b))
    #define __Pyx_c_quot_float(a, b) ((a)/(b))
    #define __Pyx_c_neg_float(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
    #define __Pyx_c_conj_float(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_float(z)     (::std::abs(z))
        #define __Pyx_c_pow_float(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_float(z) ((z)==0)
    #define __Pyx_c_conj_float(z)    (conjf(z))
    #if 1
        #define __Pyx_c_abs_float(z)     (cabsf(z))
        #define __Pyx_c_pow_float(a, b)  (cpowf(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
    #if 1
        static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
    #endif
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX
    #define __Pyx_c_eq_double(a, b)   ((a)==(b))
    #define __Pyx_c_sum_double(a, b)  ((a)+(b))
    #define __Pyx_c_diff_double(a, b) ((a)-(b))
    #define __Pyx_c_prod_double(a, b) ((a)*(b))
    #define __Pyx_c_quot_double(a, b) ((a)/(b))
    #define __Pyx_c_neg_double(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
    #define __Pyx_c_conj_double(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_double(z)     (::std::abs(z))
        #define __Pyx_c_pow_double(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_double(z) ((z)==0)
    #define __Pyx_c_conj_double(z)    (conj(z))
    #if 1
        #define __Pyx_c_abs_double(z)     (cabs(z))
        #define __Pyx_c_pow_double(a, b)  (cpow(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
    #if 1
        static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
    #endif
#endif

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum IClpSimplex::Status __Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE Py_intptr_t __Pyx_PyInt_As_Py_intptr_t(PyObject *);

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
#endif
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(void);

/* FunctionExport.proto */
static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig);

/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);

static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setCppSelf(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, IClpSimplex *__pyx_v_s); /* proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getReducedCosts(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getStatusArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowLower(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowUpper(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
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*/
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*/
static int *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_pivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getPivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
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*/
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*/
static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalColumnSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualColumnSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalRowSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualRowSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
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*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setPrimalColumnPivotAlgorithm(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, void *__pyx_v_choice); /* proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setDualRowPivotAlgorithm(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, void *__pyx_v_choice); /* proto*/
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*/
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*/
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*/
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*/
static int *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_ComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/

/* Module declarations from 'libc.string' */

/* Module declarations from 'libc.stdio' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.type' */
static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;

/* Module declarations from 'cpython.version' */

/* Module declarations from 'cpython.exc' */

/* Module declarations from 'cpython.module' */

/* Module declarations from 'cpython.mem' */

/* Module declarations from 'cpython.tuple' */

/* Module declarations from 'cpython.list' */

/* Module declarations from 'cpython.sequence' */

/* Module declarations from 'cpython.mapping' */

/* Module declarations from 'cpython.iterator' */

/* Module declarations from 'cpython.number' */

/* Module declarations from 'cpython.int' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.bool' */
static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0;

/* Module declarations from 'cpython.long' */

/* Module declarations from 'cpython.float' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.complex' */
static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0;

/* Module declarations from 'cpython.string' */

/* Module declarations from 'cpython.unicode' */

/* Module declarations from 'cpython.dict' */

/* Module declarations from 'cpython.instance' */

/* Module declarations from 'cpython.function' */

/* Module declarations from 'cpython.method' */

/* Module declarations from 'cpython.weakref' */

/* Module declarations from 'cpython.getargs' */

/* Module declarations from 'cpython.pythread' */

/* Module declarations from 'cpython.pystate' */

/* Module declarations from 'cpython.cobject' */

/* Module declarations from 'cpython.oldbuffer' */

/* Module declarations from 'cpython.set' */

/* Module declarations from 'cpython.buffer' */

/* Module declarations from 'cpython.bytes' */

/* Module declarations from 'cpython.pycapsule' */

/* Module declarations from 'cpython' */

/* Module declarations from 'cpython.object' */

/* Module declarations from 'cpython.ref' */

/* Module declarations from 'cylp.cy' */

/* Module declarations from 'cylp.cy.CyCoinIndexedVector' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = 0;

/* Module declarations from 'cylp.cy.CyClpPrimalColumnPivotBase' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = 0;

/* Module declarations from 'numpy' */

/* Module declarations from 'numpy' */
static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/
static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/

/* Module declarations from 'cylp.cy.CyClpDualRowPivotBase' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0;

/* Module declarations from 'cylp.cy.CyCoinModel' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_11CyCoinModel_CyCoinModel = 0;

/* Module declarations from 'cylp.cy.CyCoinPackedMatrix' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix = 0;

/* Module declarations from 'cylp.cy.CyCgl' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglCutGenerator = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglAllDifferent = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglClique = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglKnapsackCover = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglOddHole = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglFlowCover = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglGomory = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglRedSplit = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglLiftAndProject = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglLandP = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2 = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglTwomir = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglResidualCapacity = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglPreProcess = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglProbing = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglSimpleRounding = 0;

/* Module declarations from 'cylp.cy.CyCbcNode' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_9CyCbcNode_CyCbcNode = 0;

/* Module declarations from 'cylp.cy.CyOsiSolverInterface' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface = 0;

/* Module declarations from 'cylp.cy.CyCbcModel' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_10CyCbcModel_CyCbcModel = 0;

/* Module declarations from 'libcpp.string' */

/* Module declarations from 'libcpp.vector' */

/* Module declarations from 'cylp.cy.CyWolfePivot' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_12CyWolfePivot_CyWolfePivot = 0;

/* Module declarations from 'cylp.cy.CyPEPivot' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_9CyPEPivot_CyPEPivot = 0;

/* Module declarations from 'cylp.cy.CyPivotPythonBase' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase = 0;

/* Module declarations from 'cylp.cy.CyDualPivotPythonBase' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase = 0;

/* Module declarations from 'cylp.cy.CyCoinMpsIO' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO = 0;

/* Module declarations from 'cylp.cy.CyClpSimplex' */
static PyTypeObject *__pyx_ptype_4cylp_2cy_12CyClpSimplex_CyClpSimplex = 0;
static PyTypeObject *__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus = 0;
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*/
static int __pyx_f_4cylp_2cy_12CyClpSimplex_RunIsPivotAcceptable(void *); /*proto*/
static int __pyx_f_4cylp_2cy_12CyClpSimplex_RunVarSelCriteria(void *, int); /*proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex___pyx_unpickle_VarStatus__set_state(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *, PyObject *); /*proto*/
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 };
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 };
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 };
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 };
#define __Pyx_MODULE_NAME "cylp.cy.CyClpSimplex"
extern int __pyx_module_is_main_cylp__cy__CyClpSimplex;
int __pyx_module_is_main_cylp__cy__CyClpSimplex = 0;

/* Implementation of 'cylp.cy.CyClpSimplex' */
static PyObject *__pyx_builtin_ImportError;
static PyObject *__pyx_builtin_zip;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_xrange;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_print;
static PyObject *__pyx_builtin_open;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_RuntimeError;
static const char __pyx_k_A[] = "A";
static const char __pyx_k_B[] = "B";
static const char __pyx_k_D[] = "D";
static const char __pyx_k_a[] = "a";
static const char __pyx_k_b[] = "b";
static const char __pyx_k_c[] = "c";
static const char __pyx_k_f[] = "f";
static const char __pyx_k_h[] = "h";
static const char __pyx_k_s[] = "s";
static const char __pyx_k_w[] = "w";
static const char __pyx_k_x[] = "x";
static const char __pyx_k_y[] = "y";
static const char __pyx_k_z[] = "z";
static const char __pyx_k__8[] = "";
static const char __pyx_k_cl[] = "cl";
static const char __pyx_k_np[] = "np";
static const char __pyx_k_on[] = "on";
static const char __pyx_k_os[] = "os";
static const char __pyx_k_pi[] = "pi";
static const char __pyx_k_v1[] = "v1";
static const char __pyx_k_v2[] = "v2";
static const char __pyx_k_any[] = "any";
static const char __pyx_k_arg[] = "arg";
static const char __pyx_k_arr[] = "arr";
static const char __pyx_k_col[] = "col";
static const char __pyx_k_dim[] = "dim";
static const char __pyx_k_dot[] = "dot";
static const char __pyx_k_end[] = "end";
static const char __pyx_k_ind[] = "ind";
static const char __pyx_k_max[] = "max";
static const char __pyx_k_min[] = "min";
static const char __pyx_k_mps[] = ".mps";
static const char __pyx_k_new[] = "__new__";
static const char __pyx_k_obj[] = "obj";
static const char __pyx_k_qps[] = ".qps";
static const char __pyx_k_row[] = "row";
static const char __pyx_k_sum[] = "sum";
static const char __pyx_k_val[] = "val";
static const char __pyx_k_x_u[] = "x_u";
static const char __pyx_k_zip[] = "zip";
static const char __pyx_k_cons[] = "cons";
static const char __pyx_k_copy[] = "copy";
static const char __pyx_k_data[] = "data";
static const char __pyx_k_dict[] = "__dict__";
static const char __pyx_k_dims[] = "dims";
static const char __pyx_k_free[] = "free";
static const char __pyx_k_inds[] = "inds";
static const char __pyx_k_izip[] = "izip";
static const char __pyx_k_join[] = "join";
static const char __pyx_k_keys[] = "keys";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_name[] = "name";
static const char __pyx_k_ncol[] = "ncol";
static const char __pyx_k_open[] = "open";
static const char __pyx_k_path[] = "path";
static const char __pyx_k_rows[] = "rows";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_var1[] = "var1";
static const char __pyx_k_var2[] = "var2";
static const char __pyx_k_array[] = "array";
static const char __pyx_k_ascii[] = "ascii";
static const char __pyx_k_basic[] = "basic";
static const char __pyx_k_class[] = "__class__";
static const char __pyx_k_close[] = "close";
static const char __pyx_k_collb[] = "collb";
static const char __pyx_k_colub[] = "colub";
static const char __pyx_k_cstat[] = "cstat";
static const char __pyx_k_dtype[] = "dtype";
static const char __pyx_k_empty[] = "empty";
static const char __pyx_k_fixed[] = "fixed";
static const char __pyx_k_int32[] = "int32";
static const char __pyx_k_isInt[] = "isInt";
static const char __pyx_k_lower[] = "lower";
static const char __pyx_k_model[] = "model";
static const char __pyx_k_nCons[] = "nCons";
static const char __pyx_k_nRows[] = "nRows";
static const char __pyx_k_nVars[] = "nVars";
static const char __pyx_k_numpy[] = "numpy";
static const char __pyx_k_print[] = "print";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_rowlb[] = "rowlb";
static const char __pyx_k_rowub[] = "rowub";
static const char __pyx_k_rstat[] = "rstat";
static const char __pyx_k_scipy[] = "scipy";
static const char __pyx_k_shape[] = "shape";
static const char __pyx_k_spare[] = "spare";
static const char __pyx_k_start[] = "start";
static const char __pyx_k_tocoo[] = "tocoo";
static const char __pyx_k_upper[] = "upper";
static const char __pyx_k_w_ind[] = "w_ind";
static const char __pyx_k_where[] = "where";
static const char __pyx_k_which[] = "which";
static const char __pyx_k_zeros[] = "zeros";
static const char __pyx_k_astype[] = "astype";
static const char __pyx_k_double[] = "double";
static const char __pyx_k_encode[] = "encode";
static const char __pyx_k_hasVar[] = "hasVar";
static const char __pyx_k_ignore[] = "ignore";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_indptr[] = "indptr";
static const char __pyx_k_matrix[] = "matrix";
static const char __pyx_k_name_2[] = "__name__";
static const char __pyx_k_number[] = "number";
static const char __pyx_k_parent[] = "parent";
static const char __pyx_k_pickle[] = "pickle";
static const char __pyx_k_pvdims[] = "pvdims";
static const char __pyx_k_reduce[] = "__reduce__";
static const char __pyx_k_resize[] = "resize";
static const char __pyx_k_scalar[] = "scalar";
static const char __pyx_k_sparse[] = "sparse";
static const char __pyx_k_status[] = "status";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_varInd[] = "varInd";
static const char __pyx_k_xrange[] = "xrange";
static const char __pyx_k_CyLPVar[] = "CyLPVar";
static const char __pyx_k_Hessian[] = "Hessian";
static const char __pyx_k_arr_ind[] = "arr_ind";
static const char __pyx_k_columns[] = "columns";
static const char __pyx_k_curpath[] = "curpath";
static const char __pyx_k_cylp_cy[] = "cylp.cy";
static const char __pyx_k_dirname[] = "dirname";
static const char __pyx_k_epsilon[] = "epsilon";
static const char __pyx_k_fromInd[] = "fromInd";
static const char __pyx_k_getACol[] = "getACol";
static const char __pyx_k_getfile[] = "getfile";
static const char __pyx_k_getitem[] = "__getitem__";
static const char __pyx_k_hasGaps[] = "hasGaps";
static const char __pyx_k_indices[] = "indices";
static const char __pyx_k_inspect[] = "inspect";
static const char __pyx_k_isRange[] = "isRange";
static const char __pyx_k_optimal[] = "optimal";
static const char __pyx_k_os_path[] = "os.path";
static const char __pyx_k_product[] = "product";
static const char __pyx_k_readMps[] = "readMps";
static const char __pyx_k_toarray[] = "toarray";
static const char __pyx_k_varname[] = "varname";
static const char __pyx_k_checkVar[] = "checkVar";
static const char __pyx_k_colArray[] = "colArray";
static const char __pyx_k_constInd[] = "constInd";
static const char __pyx_k_decimals[] = "decimals";
static const char __pyx_k_elements[] = "elements";
static const char __pyx_k_fileName[] = "fileName";
static const char __pyx_k_filename[] = "filename";
static const char __pyx_k_getstate[] = "__getstate__";
static const char __pyx_k_hasConst[] = "hasConst";
static const char __pyx_k_majorDim[] = "majorDim";
static const char __pyx_k_minorDim[] = "minorDim";
static const char __pyx_k_mpsNames[] = "mpsNames";
static const char __pyx_k_objSense[] = "objSense";
static const char __pyx_k_presolve[] = "presolve";
static const char __pyx_k_pyx_type[] = "__pyx_type";
static const char __pyx_k_rowLower[] = "rowLower";
static const char __pyx_k_rowUpper[] = "rowUpper";
static const char __pyx_k_sequence[] = "sequence";
static const char __pyx_k_setstate[] = "__setstate__";
static const char __pyx_k_splitext[] = "splitext";
static const char __pyx_k_status_2[] = "status_";
static const char __pyx_k_varCoefs[] = "varCoefs";
static const char __pyx_k_varIndex[] = "varIndex";
static const char __pyx_k_varNames[] = "varNames";
static const char __pyx_k_CyLPArray[] = "CyLPArray";
static const char __pyx_k_CyLPModel[] = "CyLPModel";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_VarStatus[] = "VarStatus";
static const char __pyx_k_appendCol[] = "appendCol";
static const char __pyx_k_appendRow[] = "appendRow";
static const char __pyx_k_cyLPModel[] = "cyLPModel";
static const char __pyx_k_dropNames[] = "dropNames";
static const char __pyx_k_extension[] = "extension";
static const char __pyx_k_itertools[] = "itertools";
static const char __pyx_k_keepNames[] = "keepNames";
static const char __pyx_k_objective[] = "objective";
static const char __pyx_k_parentDim[] = "parentDim";
static const char __pyx_k_pyx_state[] = "__pyx_state";
static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
static const char __pyx_k_rowStarts[] = "rowStarts";
static const char __pyx_k_variables[] = "variables";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_constIndex[] = "constIndex";
static const char __pyx_k_coo_matrix[] = "coo_matrix";
static const char __pyx_k_filterVars[] = "filterVars";
static const char __pyx_k_formatType[] = "formatType";
static const char __pyx_k_getBInvCol[] = "getBInvCol";
static const char __pyx_k_nVariables[] = "nVariables";
static const char __pyx_k_pyx_result[] = "__pyx_result";
static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static const char __pyx_k_removeGaps[] = "removeGaps";
static const char __pyx_k_setInteger[] = "setInteger";
static const char __pyx_k_superBasic[] = "superBasic";
static const char __pyx_k_ImportError[] = "ImportError";
static const char __pyx_k_IntToStatus[] = "IntToStatus";
static const char __pyx_k_PickleError[] = "PickleError";
static const char __pyx_k_StatusToInt[] = "StatusToInt";
static const char __pyx_k_addMpsNames[] = "addMpsNames";
static const char __pyx_k_addVariable[] = "addVariable";
static const char __pyx_k_columnLower[] = "columnLower";
static const char __pyx_k_columnUpper[] = "columnUpper";
static const char __pyx_k_constraints[] = "constraints";
static const char __pyx_k_getBInvACol[] = "getBInvACol";
static const char __pyx_k_modelObject[] = "modelObject";
static const char __pyx_k_numberInRow[] = "numberInRow";
static const char __pyx_k_setRowLower[] = "setRowLower";
static const char __pyx_k_setRowUpper[] = "setRowUpper";
static const char __pyx_k_useRowNames[] = "useRowNames";
static const char __pyx_k_CyClpSimplex[] = "CyClpSimplex";
static const char __pyx_k_CyLPSolution[] = "CyLPSolution";
static const char __pyx_k_RuntimeError[] = "RuntimeError";
static const char __pyx_k_atLowerBound[] = "atLowerBound";
static const char __pyx_k_atUpperBound[] = "atUpperBound";
static const char __pyx_k_columnStarts[] = "columnStarts";
static const char __pyx_k_currentframe[] = "currentframe";
static const char __pyx_k_elementIndex[] = "elementIndex";
static const char __pyx_k_elementValue[] = "elementValue";
static const char __pyx_k_getVarByName[] = "getVarByName";
static const char __pyx_k_ifValuesPass[] = "ifValuesPass";
static const char __pyx_k_ignoreErrors[] = "ignoreErrors";
static const char __pyx_k_keepIntegers[] = "keepIntegers";
static const char __pyx_k_makeMatrices[] = "makeMatrices";
static const char __pyx_k_nConstraints[] = "nConstraints";
static const char __pyx_k_numberAcross[] = "numberAcross";
static const char __pyx_k_numberPasses[] = "numberPasses";
static const char __pyx_k_numberWanted[] = "numberWanted";
static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
static const char __pyx_k_rowObjective[] = "rowObjective";
static const char __pyx_k_sparseConcat[] = "sparseConcat";
static const char __pyx_k_stringsource[] = "stringsource";
static const char __pyx_k_updateStatus[] = "updateStatus";
static const char __pyx_k_vectorStarts[] = "vectorStarts";
static const char __pyx_k_addConstraint[] = "addConstraint";
static const char __pyx_k_deleteCurrent[] = "deleteCurrent";
static const char __pyx_k_getMpsExample[] = "getMpsExample";
static const char __pyx_k_getStatusCode[] = "getStatusCode";
static const char __pyx_k_newNumberRows[] = "newNumberRows";
static const char __pyx_k_problemStatus[] = "problemStatus";
static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
static const char __pyx_k_regionSparse1[] = "regionSparse1";
static const char __pyx_k_regionSparse2[] = "regionSparse2";
static const char __pyx_k_replaceMatrix[] = "replaceMatrix";
static const char __pyx_k_updatedColumn[] = "updatedColumn";
static const char __pyx_k_variableNames[] = "variableNames";
static const char __pyx_k_addConstraints[] = "addConstraints";
static const char __pyx_k_csc_matrixPlus[] = "csc_matrixPlus";
static const char __pyx_k_doRowObjective[] = "doRowObjective";
static const char __pyx_k_getStatusArray[] = "getStatusArray";
static const char __pyx_k_numberInColumn[] = "numberInColumn";
static const char __pyx_k_removeVariable[] = "removeVariable";
static const char __pyx_k_setColumnLower[] = "setColumnLower";
static const char __pyx_k_setColumnUpper[] = "setColumnUpper";
static const char __pyx_k_variablesLower[] = "variablesLower";
static const char __pyx_k_variablesUpper[] = "variablesUpper";
static const char __pyx_k_vectorTimesB_1[] = "vectorTimesB_1";
static const char __pyx_k_PivotPythonBase[] = "PivotPythonBase";
static const char __pyx_k_dual_infeasible[] = "dual infeasible";
static const char __pyx_k_getModelExample[] = "getModelExample";
static const char __pyx_k_getReducedCosts[] = "getReducedCosts";
static const char __pyx_k_input_p0033_mps[] = "../input/p0033.mps";
static const char __pyx_k_objectiveOffset[] = "objectiveOffset";
static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
static const char __pyx_k_setVariableName[] = "setVariableName";
static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
static const char __pyx_k_tryPlusMinusOne[] = "tryPlusMinusOne";
static const char __pyx_k_CLP_getVarStatus[] = "CLP_getVarStatus";
static const char __pyx_k_CLP_setVarStatus[] = "CLP_setVarStatus";
static const char __pyx_k_constraintsLower[] = "constraintsLower";
static const char __pyx_k_constraintsUpper[] = "constraintsUpper";
static const char __pyx_k_dualWithPresolve[] = "dualWithPresolve";
static const char __pyx_k_getPivotVariable[] = "getPivotVariable";
static const char __pyx_k_getRightHandSide[] = "getRightHandSide";
static const char __pyx_k_getVariableNames[] = "getVariableNames";
static const char __pyx_k_indicesOfIndices[] = "indicesOfIndices";
static const char __pyx_k_newNumberColumns[] = "newNumberColumns";
static const char __pyx_k_removeConstraint[] = "removeConstraint";
static const char __pyx_k_reverseVarSearch[] = "reverseVarSearch";
static const char __pyx_k_setRowLowerArray[] = "setRowLowerArray";
static const char __pyx_k_setRowUpperArray[] = "setRowUpperArray";
static const char __pyx_k_isPivotAcceptable[] = "isPivotAcceptable";
static const char __pyx_k_loadFromCyLPModel[] = "loadFromCyLPModel";
static const char __pyx_k_primal_infeasible[] = "primal infeasible";
static const char __pyx_k_setConstraintName[] = "setConstraintName";
static const char __pyx_k_setObjectiveArray[] = "setObjectiveArray";
static const char __pyx_k_No_such_variable_s[] = "No such variable: %s";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_extractStartFinish[] = "_extractStartFinish";
static const char __pyx_k_primalWithPresolve[] = "primalWithPresolve";
static const char __pyx_k_startFinishOptions[] = "startFinishOptions";
static const char __pyx_k_DualPivotPythonBase[] = "DualPivotPythonBase";
static const char __pyx_k_No_such_constraint_s[] = "No such constraint: %s";
static const char __pyx_k_cylp_cy_CyClpSimplex[] = "cylp.cy.CyClpSimplex";
static const char __pyx_k_feasibilityTolerance[] = "feasibilityTolerance";
static const char __pyx_k_setColumnLowerSubset[] = "setColumnLowerSubset";
static const char __pyx_k_setColumnUpperSubset[] = "setColumnUpperSubset";
static const char __pyx_k_CLP_deleteConstraints[] = "CLP_deleteConstraints";
static const char __pyx_k_objectiveCoefficients[] = "objectiveCoefficients";
static const char __pyx_k_startFinishOptionsDic[] = "startFinishOptionsDic";
static const char __pyx_k_stopped_due_to_errors[] = "stopped due to errors";
static const char __pyx_k_CLP_variableStatusEnum[] = "CLP_variableStatusEnum";
static const char __pyx_k_getComplementarityList[] = "getComplementarityList";
static const char __pyx_k_loadQuadraticObjective[] = "loadQuadraticObjective";
static const char __pyx_k_pyx_unpickle_VarStatus[] = "__pyx_unpickle_VarStatus";
static const char __pyx_k_cylp_cy_CyClpSimplex_pyx[] = "cylp/cy/CyClpSimplex.pyx";
static const char __pyx_k_cylp_py_utils_sparseUtil[] = "cylp.py.utils.sparseUtil";
static const char __pyx_k_unrecognised_extension_s[] = "unrecognised extension %s";
static const char __pyx_k_No_CyClpSimplex_cyLPModel[] = "No CyClpSimplex cyLPModel.";
static const char __pyx_k_cylp_py_modeling_CyLPModel[] = "cylp.py.modeling.CyLPModel";
static const char __pyx_k_CyClpSimplex_dual_line_1577[] = "CyClpSimplex.dual (line 1577)";
static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous";
static const char __pyx_k_setColumnLowerFirstElements[] = "setColumnLowerFirstElements";
static const char __pyx_k_setColumnUpperFirstElements[] = "setColumnUpperFirstElements";
static const char __pyx_k_stopped_on_iterations_or_time[] = "stopped on iterations or time";
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        ";
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        ";
static const char __pyx_k_cylp_py_pivots_PivotPythonBase[] = "cylp.py.pivots.PivotPythonBase";
static const char __pyx_k_CyClpSimplex_initialPrimalSolve[] = "CyClpSimplex.initialPrimalSolve (line 1254)";
static const char __pyx_k_No_cylpSimplex_cyLPModel_is_set[] = "No cylpSimplex.cyLPModel is set.";
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        ";
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        ";
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        ";
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        ";
static const char __pyx_k_To_remove_a_constraint_you_must[] = "To remove a constraint you must set cylpSimplex.cyLPModel first.";
static const char __pyx_k_dualPivotMethodObject_should_be[] = "dualPivotMethodObject should be of a                             class derived from DualPivotPythonBase";
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        ";
static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)";
static const char __pyx_k_CyClpPrimalColumnPivotBase_pyx_p[] = "CyClpPrimalColumnPivotBase.pyx: pivot column should be implemented.";
static const char __pyx_k_CyClpSimplex_initialDualSolve_li[] = "CyClpSimplex.initialDualSolve (line 1274)";
static const char __pyx_k_CyClpSimplex_initialSolve_line_1[] = "CyClpSimplex.initialSolve (line 1233)";
static const char __pyx_k_CyClpSimplex_loadFromCyLPModel_l[] = "CyClpSimplex.loadFromCyLPModel (line 1865)";
static const char __pyx_k_CyClpSimplex_pyx_addColumn_Row_i[] = "CyClpSimplex.pyx:addColumn: Row index out of range (number of rows:  %d)";
static const char __pyx_k_CyClpSimplex_pyx_addConstraint_C[] = "CyClpSimplex.pyx:addConstraint: Column index out of range (number of columns: %d)";
static const char __pyx_k_CyClpSimplex_pyx_deleteConstrain[] = "CyClpSimplex.pyx:deleteConstraints: Constraint index out of range (number of constraints: %d)";
static const char __pyx_k_CyClpSimplex_pyx_deleteVariables[] = "CyClpSimplex.pyx:deleteVariables: variable index out of range (number of variables: %d)";
static const char __pyx_k_CyClpSimplex_setConstraintStatus[] = "CyClpSimplex.setConstraintStatus (line 1083)";
static const char __pyx_k_CyClpSimplex_setInteger_line_167[] = "CyClpSimplex.setInteger (line 1678)";
static const char __pyx_k_CyClpSimplex_setVariableStatus_l[] = "CyClpSimplex.setVariableStatus (line 1006)";
static const char __pyx_k_Expected_a_CyLPModel_as_an_argum[] = "Expected a CyLPModel as an argument to cylpSimplex constructor. Got %s";
static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd";
static const char __pyx_k_Hessian_can_be_set_to_a_matrix_t[] = "Hessian can be set to a matrix that implements *tocoo* method";
static const char __pyx_k_Incompatible_checksums_s_vs_0xd4[] = "Incompatible checksums (%s vs 0xd41d8cd = ())";
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.";
static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported";
static const char __pyx_k_Presolve_says_problem_infeasible[] = "Presolve says problem infeasible.";
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.";
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.";
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.";
static const char __pyx_k_To_add_a_constraint_you_must_set[] = "To add a constraint you must set cylpSimplex.cyLPModel first.";
static const char __pyx_k_To_remove_a_variable_you_must_se[] = "To remove a variable you must set cylpSimplex.cyLPModel first.";
static const char __pyx_k_To_set_the_objective_function_of[] = "To set the objective function of CyClpSimplex set cylpSimplex.cyLPModel first.";
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";
static const char __pyx_k_coefMatrix_must_be_a_scipy_spars[] = "coefMatrix must be a scipy sparse matrix.";
static const char __pyx_k_cylp_py_pivots_DualPivotPythonBa[] = "cylp.py.pivots.DualPivotPythonBase";
static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous";
static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
static const char __pyx_k_pivotMethodObject_should_be_of_a[] = "pivotMethodObject should be of a                             class derived from PivotPythonBase";
static const char __pyx_k_stopped_by_event_handler_virtual[] = "stopped by event handler (virtual int ClpEventHandler::event())";
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        ";
static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short.";
static PyObject *__pyx_n_s_A;
static PyObject *__pyx_n_s_B;
static PyObject *__pyx_n_s_CLP_deleteConstraints;
static PyObject *__pyx_n_s_CLP_getVarStatus;
static PyObject *__pyx_n_s_CLP_setVarStatus;
static PyObject *__pyx_n_s_CLP_variableStatusEnum;
static PyObject *__pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_p;
static PyObject *__pyx_n_s_CyClpSimplex;
static PyObject *__pyx_kp_u_CyClpSimplex_dual_line_1577;
static PyObject *__pyx_kp_u_CyClpSimplex_initialDualSolve_li;
static PyObject *__pyx_kp_u_CyClpSimplex_initialPrimalSolve;
static PyObject *__pyx_kp_u_CyClpSimplex_initialSolve_line_1;
static PyObject *__pyx_kp_u_CyClpSimplex_loadFromCyLPModel_l;
static PyObject *__pyx_kp_s_CyClpSimplex_pyx_addColumn_Row_i;
static PyObject *__pyx_kp_s_CyClpSimplex_pyx_addConstraint_C;
static PyObject *__pyx_kp_s_CyClpSimplex_pyx_deleteConstrain;
static PyObject *__pyx_kp_s_CyClpSimplex_pyx_deleteVariables;
static PyObject *__pyx_kp_u_CyClpSimplex_setConstraintStatus;
static PyObject *__pyx_kp_u_CyClpSimplex_setInteger_line_167;
static PyObject *__pyx_kp_u_CyClpSimplex_setVariableStatus_l;
static PyObject *__pyx_n_s_CyLPArray;
static PyObject *__pyx_n_s_CyLPModel;
static PyObject *__pyx_n_s_CyLPSolution;
static PyObject *__pyx_n_s_CyLPVar;
static PyObject *__pyx_n_s_D;
static PyObject *__pyx_n_s_DualPivotPythonBase;
static PyObject *__pyx_kp_s_Expected_a_CyLPModel_as_an_argum;
static PyObject *__pyx_kp_u_Format_string_allocated_too_shor;
static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2;
static PyObject *__pyx_n_s_Hessian;
static PyObject *__pyx_kp_s_Hessian_can_be_set_to_a_matrix_t;
static PyObject *__pyx_n_s_ImportError;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xd4;
static PyObject *__pyx_n_s_IntToStatus;
static PyObject *__pyx_kp_s_No_CyClpSimplex_cyLPModel;
static PyObject *__pyx_kp_s_No_cylpSimplex_cyLPModel_is_set;
static PyObject *__pyx_kp_s_No_such_constraint_s;
static PyObject *__pyx_kp_s_No_such_variable_s;
static PyObject *__pyx_kp_s_No_write_access_for_s_or_an_inte;
static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor;
static PyObject *__pyx_n_s_PickleError;
static PyObject *__pyx_n_s_PivotPythonBase;
static PyObject *__pyx_kp_s_Presolve_says_problem_infeasible;
static PyObject *__pyx_kp_u_Run_CLP_s_initalPrimalSolve_The;
static PyObject *__pyx_kp_u_Run_CLP_s_initalPrimalSolve_The_2;
static PyObject *__pyx_kp_u_Run_CLP_s_initialSolve_It_does;
static PyObject *__pyx_kp_u_Runs_CLP_dual_simplex_Usage_Exa;
static PyObject *__pyx_n_s_RuntimeError;
static PyObject *__pyx_kp_u_Set_the_coefficient_matrix_cons;
static PyObject *__pyx_kp_u_Set_the_status_of_a_constraint;
static PyObject *__pyx_kp_u_Set_the_status_of_a_variable_ar;
static PyObject *__pyx_n_s_StatusToInt;
static PyObject *__pyx_kp_s_The_argument_of_getVarStatus_can;
static PyObject *__pyx_kp_s_The_argument_of_setInteger_can_b;
static PyObject *__pyx_kp_s_The_argument_of_setVarStatus_can;
static PyObject *__pyx_kp_s_To_add_a_constraint_you_must_set;
static PyObject *__pyx_kp_s_To_remove_a_constraint_you_must;
static PyObject *__pyx_kp_s_To_remove_a_variable_you_must_se;
static PyObject *__pyx_kp_s_To_set_the_objective_function_of;
static PyObject *__pyx_n_s_TypeError;
static PyObject *__pyx_n_s_ValueError;
static PyObject *__pyx_n_s_VarStatus;
static PyObject *__pyx_kp_s_Variables_should_have_the_same_d;
static PyObject *__pyx_kp_s__8;
static PyObject *__pyx_n_s_a;
static PyObject *__pyx_n_s_addConstraint;
static PyObject *__pyx_n_s_addConstraints;
static PyObject *__pyx_n_s_addMpsNames;
static PyObject *__pyx_n_s_addVariable;
static PyObject *__pyx_n_s_any;
static PyObject *__pyx_n_s_appendCol;
static PyObject *__pyx_n_s_appendRow;
static PyObject *__pyx_n_s_arg;
static PyObject *__pyx_n_s_arr;
static PyObject *__pyx_n_s_arr_ind;
static PyObject *__pyx_n_s_array;
static PyObject *__pyx_n_s_ascii;
static PyObject *__pyx_n_s_astype;
static PyObject *__pyx_n_s_atLowerBound;
static PyObject *__pyx_n_s_atUpperBound;
static PyObject *__pyx_n_s_b;
static PyObject *__pyx_n_s_basic;
static PyObject *__pyx_n_s_c;
static PyObject *__pyx_n_s_checkVar;
static PyObject *__pyx_n_s_cl;
static PyObject *__pyx_n_s_class;
static PyObject *__pyx_n_s_cline_in_traceback;
static PyObject *__pyx_n_s_close;
static PyObject *__pyx_kp_s_coefMatrix_must_be_a_scipy_spars;
static PyObject *__pyx_n_s_col;
static PyObject *__pyx_n_s_colArray;
static PyObject *__pyx_n_s_collb;
static PyObject *__pyx_n_s_colub;
static PyObject *__pyx_n_s_columnLower;
static PyObject *__pyx_n_s_columnStarts;
static PyObject *__pyx_n_s_columnUpper;
static PyObject *__pyx_n_s_columns;
static PyObject *__pyx_n_s_cons;
static PyObject *__pyx_n_s_constInd;
static PyObject *__pyx_n_s_constIndex;
static PyObject *__pyx_n_s_constraints;
static PyObject *__pyx_n_s_constraintsLower;
static PyObject *__pyx_n_s_constraintsUpper;
static PyObject *__pyx_n_s_coo_matrix;
static PyObject *__pyx_n_s_copy;
static PyObject *__pyx_n_s_csc_matrixPlus;
static PyObject *__pyx_n_s_cstat;
static PyObject *__pyx_n_s_curpath;
static PyObject *__pyx_n_s_currentframe;
static PyObject *__pyx_n_s_cyLPModel;
static PyObject *__pyx_n_s_cylp_cy;
static PyObject *__pyx_n_s_cylp_cy_CyClpSimplex;
static PyObject *__pyx_kp_s_cylp_cy_CyClpSimplex_pyx;
static PyObject *__pyx_n_s_cylp_py_modeling_CyLPModel;
static PyObject *__pyx_n_s_cylp_py_pivots_DualPivotPythonBa;
static PyObject *__pyx_n_s_cylp_py_pivots_PivotPythonBase;
static PyObject *__pyx_n_s_cylp_py_utils_sparseUtil;
static PyObject *__pyx_n_s_data;
static PyObject *__pyx_n_s_decimals;
static PyObject *__pyx_n_s_deleteCurrent;
static PyObject *__pyx_n_s_dict;
static PyObject *__pyx_n_s_dim;
static PyObject *__pyx_n_s_dims;
static PyObject *__pyx_n_s_dirname;
static PyObject *__pyx_n_s_doRowObjective;
static PyObject *__pyx_n_s_dot;
static PyObject *__pyx_n_s_double;
static PyObject *__pyx_n_s_dropNames;
static PyObject *__pyx_n_s_dtype;
static PyObject *__pyx_kp_s_dualPivotMethodObject_should_be;
static PyObject *__pyx_n_s_dualWithPresolve;
static PyObject *__pyx_kp_s_dual_infeasible;
static PyObject *__pyx_n_s_elementIndex;
static PyObject *__pyx_n_s_elementValue;
static PyObject *__pyx_n_s_elements;
static PyObject *__pyx_n_s_empty;
static PyObject *__pyx_n_s_encode;
static PyObject *__pyx_n_s_end;
static PyObject *__pyx_n_s_epsilon;
static PyObject *__pyx_n_s_extension;
static PyObject *__pyx_n_s_extractStartFinish;
static PyObject *__pyx_n_s_f;
static PyObject *__pyx_n_s_feasibilityTolerance;
static PyObject *__pyx_n_s_fileName;
static PyObject *__pyx_n_s_filename;
static PyObject *__pyx_n_s_filterVars;
static PyObject *__pyx_n_s_fixed;
static PyObject *__pyx_n_s_formatType;
static PyObject *__pyx_n_s_free;
static PyObject *__pyx_n_s_fromInd;
static PyObject *__pyx_n_s_getACol;
static PyObject *__pyx_n_s_getBInvACol;
static PyObject *__pyx_n_s_getBInvCol;
static PyObject *__pyx_n_s_getComplementarityList;
static PyObject *__pyx_n_s_getModelExample;
static PyObject *__pyx_n_s_getMpsExample;
static PyObject *__pyx_n_s_getPivotVariable;
static PyObject *__pyx_n_s_getReducedCosts;
static PyObject *__pyx_n_s_getRightHandSide;
static PyObject *__pyx_n_s_getStatusArray;
static PyObject *__pyx_n_s_getStatusCode;
static PyObject *__pyx_n_s_getVarByName;
static PyObject *__pyx_n_s_getVariableNames;
static PyObject *__pyx_n_s_getfile;
static PyObject *__pyx_n_s_getitem;
static PyObject *__pyx_n_s_getstate;
static PyObject *__pyx_n_s_h;
static PyObject *__pyx_n_s_hasConst;
static PyObject *__pyx_n_s_hasGaps;
static PyObject *__pyx_n_s_hasVar;
static PyObject *__pyx_n_s_ifValuesPass;
static PyObject *__pyx_kp_u_if_arg_is_an_integer_mark_varia;
static PyObject *__pyx_n_s_ignore;
static PyObject *__pyx_n_s_ignoreErrors;
static PyObject *__pyx_n_s_import;
static PyObject *__pyx_n_s_ind;
static PyObject *__pyx_n_s_indices;
static PyObject *__pyx_n_s_indicesOfIndices;
static PyObject *__pyx_n_s_indptr;
static PyObject *__pyx_n_s_inds;
static PyObject *__pyx_kp_s_input_p0033_mps;
static PyObject *__pyx_n_s_inspect;
static PyObject *__pyx_n_s_int32;
static PyObject *__pyx_n_s_isInt;
static PyObject *__pyx_n_s_isPivotAcceptable;
static PyObject *__pyx_n_s_isRange;
static PyObject *__pyx_n_s_itertools;
static PyObject *__pyx_n_s_izip;
static PyObject *__pyx_n_s_join;
static PyObject *__pyx_n_s_keepIntegers;
static PyObject *__pyx_n_s_keepNames;
static PyObject *__pyx_n_s_keys;
static PyObject *__pyx_n_s_loadFromCyLPModel;
static PyObject *__pyx_n_s_loadQuadraticObjective;
static PyObject *__pyx_n_s_lower;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_majorDim;
static PyObject *__pyx_n_s_makeMatrices;
static PyObject *__pyx_n_s_matrix;
static PyObject *__pyx_n_s_max;
static PyObject *__pyx_n_s_min;
static PyObject *__pyx_n_s_minorDim;
static PyObject *__pyx_n_s_model;
static PyObject *__pyx_n_s_modelObject;
static PyObject *__pyx_kp_b_mps;
static PyObject *__pyx_n_s_mpsNames;
static PyObject *__pyx_n_s_nCons;
static PyObject *__pyx_n_s_nConstraints;
static PyObject *__pyx_n_s_nRows;
static PyObject *__pyx_n_s_nVariables;
static PyObject *__pyx_n_s_nVars;
static PyObject *__pyx_n_s_name;
static PyObject *__pyx_n_s_name_2;
static PyObject *__pyx_n_s_ncol;
static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous;
static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou;
static PyObject *__pyx_n_s_new;
static PyObject *__pyx_n_s_newNumberColumns;
static PyObject *__pyx_n_s_newNumberRows;
static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
static PyObject *__pyx_n_s_np;
static PyObject *__pyx_n_s_number;
static PyObject *__pyx_n_s_numberAcross;
static PyObject *__pyx_n_s_numberInColumn;
static PyObject *__pyx_n_s_numberInRow;
static PyObject *__pyx_n_s_numberPasses;
static PyObject *__pyx_n_s_numberWanted;
static PyObject *__pyx_n_s_numpy;
static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to;
static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor;
static PyObject *__pyx_n_s_obj;
static PyObject *__pyx_n_s_objSense;
static PyObject *__pyx_n_s_objective;
static PyObject *__pyx_n_s_objectiveCoefficients;
static PyObject *__pyx_n_s_objectiveOffset;
static PyObject *__pyx_n_s_on;
static PyObject *__pyx_n_s_open;
static PyObject *__pyx_n_s_optimal;
static PyObject *__pyx_n_s_os;
static PyObject *__pyx_n_s_os_path;
static PyObject *__pyx_n_s_parent;
static PyObject *__pyx_n_s_parentDim;
static PyObject *__pyx_n_s_path;
static PyObject *__pyx_n_s_pi;
static PyObject *__pyx_n_s_pickle;
static PyObject *__pyx_kp_s_pivotMethodObject_should_be_of_a;
static PyObject *__pyx_n_s_presolve;
static PyObject *__pyx_n_s_primalWithPresolve;
static PyObject *__pyx_kp_s_primal_infeasible;
static PyObject *__pyx_n_s_print;
static PyObject *__pyx_n_s_problemStatus;
static PyObject *__pyx_n_s_product;
static PyObject *__pyx_n_s_pvdims;
static PyObject *__pyx_n_s_pyx_PickleError;
static PyObject *__pyx_n_s_pyx_checksum;
static PyObject *__pyx_n_s_pyx_result;
static PyObject *__pyx_n_s_pyx_state;
static PyObject *__pyx_n_s_pyx_type;
static PyObject *__pyx_n_s_pyx_unpickle_VarStatus;
static PyObject *__pyx_n_s_pyx_vtable;
static PyObject *__pyx_kp_b_qps;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_readMps;
static PyObject *__pyx_n_s_reduce;
static PyObject *__pyx_n_s_reduce_cython;
static PyObject *__pyx_n_s_reduce_ex;
static PyObject *__pyx_n_s_regionSparse1;
static PyObject *__pyx_n_s_regionSparse2;
static PyObject *__pyx_n_s_removeConstraint;
static PyObject *__pyx_n_s_removeGaps;
static PyObject *__pyx_n_s_removeVariable;
static PyObject *__pyx_n_s_replaceMatrix;
static PyObject *__pyx_n_s_resize;
static PyObject *__pyx_n_s_reverseVarSearch;
static PyObject *__pyx_n_s_row;
static PyObject *__pyx_n_s_rowLower;
static PyObject *__pyx_n_s_rowObjective;
static PyObject *__pyx_n_s_rowStarts;
static PyObject *__pyx_n_s_rowUpper;
static PyObject *__pyx_n_s_rowlb;
static PyObject *__pyx_n_s_rows;
static PyObject *__pyx_n_s_rowub;
static PyObject *__pyx_n_s_rstat;
static PyObject *__pyx_n_s_s;
static PyObject *__pyx_n_s_scalar;
static PyObject *__pyx_n_s_scipy;
static PyObject *__pyx_n_s_sequence;
static PyObject *__pyx_n_s_setColumnLower;
static PyObject *__pyx_n_s_setColumnLowerFirstElements;
static PyObject *__pyx_n_s_setColumnLowerSubset;
static PyObject *__pyx_n_s_setColumnUpper;
static PyObject *__pyx_n_s_setColumnUpperFirstElements;
static PyObject *__pyx_n_s_setColumnUpperSubset;
static PyObject *__pyx_n_s_setConstraintName;
static PyObject *__pyx_n_s_setInteger;
static PyObject *__pyx_n_s_setObjectiveArray;
static PyObject *__pyx_n_s_setRowLower;
static PyObject *__pyx_n_s_setRowLowerArray;
static PyObject *__pyx_n_s_setRowUpper;
static PyObject *__pyx_n_s_setRowUpperArray;
static PyObject *__pyx_n_s_setVariableName;
static PyObject *__pyx_n_s_setstate;
static PyObject *__pyx_n_s_setstate_cython;
static PyObject *__pyx_n_s_shape;
static PyObject *__pyx_n_s_spare;
static PyObject *__pyx_n_s_sparse;
static PyObject *__pyx_n_s_sparseConcat;
static PyObject *__pyx_n_s_splitext;
static PyObject *__pyx_n_s_start;
static PyObject *__pyx_n_s_startFinishOptions;
static PyObject *__pyx_n_s_startFinishOptionsDic;
static PyObject *__pyx_n_s_status;
static PyObject *__pyx_n_s_status_2;
static PyObject *__pyx_kp_s_stopped_by_event_handler_virtual;
static PyObject *__pyx_kp_s_stopped_due_to_errors;
static PyObject *__pyx_kp_s_stopped_on_iterations_or_time;
static PyObject *__pyx_kp_s_stringsource;
static PyObject *__pyx_n_s_sum;
static PyObject *__pyx_n_s_superBasic;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_toarray;
static PyObject *__pyx_n_s_tocoo;
static PyObject *__pyx_n_s_tryPlusMinusOne;
static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd;
static PyObject *__pyx_kp_s_unrecognised_extension_s;
static PyObject *__pyx_n_s_update;
static PyObject *__pyx_n_s_updateStatus;
static PyObject *__pyx_n_s_updatedColumn;
static PyObject *__pyx_n_s_upper;
static PyObject *__pyx_n_s_useRowNames;
static PyObject *__pyx_n_s_v1;
static PyObject *__pyx_n_s_v2;
static PyObject *__pyx_n_s_val;
static PyObject *__pyx_n_s_var1;
static PyObject *__pyx_n_s_var2;
static PyObject *__pyx_n_s_varCoefs;
static PyObject *__pyx_n_s_varInd;
static PyObject *__pyx_n_s_varIndex;
static PyObject *__pyx_n_s_varNames;
static PyObject *__pyx_n_s_variableNames;
static PyObject *__pyx_n_s_variables;
static PyObject *__pyx_n_s_variablesLower;
static PyObject *__pyx_n_s_variablesUpper;
static PyObject *__pyx_n_s_varname;
static PyObject *__pyx_n_s_vectorStarts;
static PyObject *__pyx_n_s_vectorTimesB_1;
static PyObject *__pyx_n_s_w;
static PyObject *__pyx_n_s_w_ind;
static PyObject *__pyx_n_s_where;
static PyObject *__pyx_n_s_which;
static PyObject *__pyx_n_s_x;
static PyObject *__pyx_n_s_x_u;
static PyObject *__pyx_n_s_xrange;
static PyObject *__pyx_n_s_y;
static PyObject *__pyx_n_s_z;
static PyObject *__pyx_n_s_zeros;
static PyObject *__pyx_n_s_zip;
static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex___cinit__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyLPModel); /* proto */
static void __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_2__dealloc__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_2__get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_2__get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8getRightHandSide(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rhs); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10getStatusCode(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12getStatusString(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
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 */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22useCustomPrimal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_customPrimal); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24getUseCustomPrimal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_26flagged(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_32pivotRow(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_34setPivotRow(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_v); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_36sequenceIn(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_38setSequenceIn(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_v); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_40getVariableNames(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_46getPivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_60setColumnUpperArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnUpper); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_62setColumnUpperFirstElements(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnUpper); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_64setColumnLowerArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnLower); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_66setColumnLowerFirstElements(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnLower); /* proto */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rowUpper); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rowLower); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_objective); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_80initialSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_presolve); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_82initialPrimalSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_84initialDualSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind); /* proto */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
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 */
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 */
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 */
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 */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_136isInteger(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_138setInteger(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_140copyInIntegerInformation(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_colType); /* proto */
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 */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_updateStatus); /* proto */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_164loadFromCyLPModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyLPModel); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_x0); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_x0); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_170getCbcModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_i); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_176setPrimalColumnPivotAlgorithmToWolfe(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_178setPrimalColumnPivotAlgorithmToPE(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_180setPivotMethod(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_pivotMethodObject); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_182setDualPivotMethod(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_dualPivotMethodObject); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_inds); /* proto */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_cl); /* proto */
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 */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
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 */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_getModelExample(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
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 */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_4getMpsExample(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *__pyx_v_self); /* proto */
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 */
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 */
static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */
static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_VarStatus(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_float_0_;
static PyObject *__pyx_float_1_;
static PyObject *__pyx_float_2_;
static PyObject *__pyx_float_3_;
static PyObject *__pyx_float_0_0;
static PyObject *__pyx_float_0_5;
static PyObject *__pyx_float_1_1;
static PyObject *__pyx_float_2_5;
static PyObject *__pyx_float_3_5;
static PyObject *__pyx_float_4_2;
static PyObject *__pyx_float_neg_1_;
static PyObject *__pyx_float_neg_2_;
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
static PyObject *__pyx_int_2;
static PyObject *__pyx_int_3;
static PyObject *__pyx_int_4;
static PyObject *__pyx_int_5;
static PyObject *__pyx_int_7;
static PyObject *__pyx_int_10;
static PyObject *__pyx_int_64;
static PyObject *__pyx_int_222419149;
static PyObject *__pyx_int_neg_2000;
static PyObject *__pyx_k__15;
static PyObject *__pyx_k__16;
static PyArrayObject *__pyx_k__20;
static PyObject *__pyx_slice_;
static PyObject *__pyx_tuple__2;
static PyObject *__pyx_tuple__3;
static PyObject *__pyx_tuple__4;
static PyObject *__pyx_tuple__5;
static PyObject *__pyx_tuple__6;
static PyObject *__pyx_tuple__7;
static PyObject *__pyx_tuple__9;
static PyObject *__pyx_slice__26;
static PyObject *__pyx_tuple__10;
static PyObject *__pyx_tuple__11;
static PyObject *__pyx_tuple__12;
static PyObject *__pyx_tuple__13;
static PyObject *__pyx_tuple__14;
static PyObject *__pyx_tuple__17;
static PyObject *__pyx_tuple__18;
static PyObject *__pyx_tuple__19;
static PyObject *__pyx_tuple__21;
static PyObject *__pyx_tuple__22;
static PyObject *__pyx_tuple__24;
static PyObject *__pyx_tuple__25;
static PyObject *__pyx_tuple__29;
static PyObject *__pyx_tuple__30;
static PyObject *__pyx_tuple__31;
static PyObject *__pyx_tuple__32;
static PyObject *__pyx_tuple__33;
static PyObject *__pyx_tuple__34;
static PyObject *__pyx_tuple__35;
static PyObject *__pyx_tuple__36;
static PyObject *__pyx_tuple__37;
static PyObject *__pyx_tuple__38;
static PyObject *__pyx_codeobj__23;
static PyObject *__pyx_codeobj__27;
static PyObject *__pyx_codeobj__28;
/* Late includes */

/* "cylp/cy/CyClpSimplex.pyx":75
 *     '''
 * 
 *     def __cinit__(self, cyLPModel=None):             # <<<<<<<<<<<<<<
 *         self.CppSelf = new CppIClpSimplex(<cpy_ref.PyObject*>self,
 *                                 <runIsPivotAcceptable_t>RunIsPivotAcceptable,
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_cyLPModel = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cyLPModel,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cyLPModel);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 75, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_cyLPModel = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 75, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex___cinit__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_cyLPModel);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex___cinit__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyLPModel) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_TraceCall("__cinit__", __pyx_f[0], 75, 0, __PYX_ERR(0, 75, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":76
 * 
 *     def __cinit__(self, cyLPModel=None):
 *         self.CppSelf = new CppIClpSimplex(<cpy_ref.PyObject*>self,             # <<<<<<<<<<<<<<
 *                                 <runIsPivotAcceptable_t>RunIsPivotAcceptable,
 *                                 <varSelCriteria_t>RunVarSelCriteria)
 */
  __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));

  /* "cylp/cy/CyClpSimplex.pyx":79
 *                                 <runIsPivotAcceptable_t>RunIsPivotAcceptable,
 *                                 <varSelCriteria_t>RunVarSelCriteria)
 *         self.vars = []             # <<<<<<<<<<<<<<
 *         #self.cbcModelExists = False
 *         self.coinModel = CyCoinModel()
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->vars);
  __Pyx_DECREF(__pyx_v_self->vars);
  __pyx_v_self->vars = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":81
 *         self.vars = []
 *         #self.cbcModelExists = False
 *         self.coinModel = CyCoinModel()             # <<<<<<<<<<<<<<
 * 
 *         self.cyLPModel = cyLPModel
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->coinModel);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->coinModel));
  __pyx_v_self->coinModel = ((struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":83
 *         self.coinModel = CyCoinModel()
 * 
 *         self.cyLPModel = cyLPModel             # <<<<<<<<<<<<<<
 *         if cyLPModel:
 *             if isinstance(cyLPModel, CyLPModel):
 */
  __Pyx_INCREF(__pyx_v_cyLPModel);
  __Pyx_GIVEREF(__pyx_v_cyLPModel);
  __Pyx_GOTREF(__pyx_v_self->cyLPModel);
  __Pyx_DECREF(__pyx_v_self->cyLPModel);
  __pyx_v_self->cyLPModel = __pyx_v_cyLPModel;

  /* "cylp/cy/CyClpSimplex.pyx":84
 * 
 *         self.cyLPModel = cyLPModel
 *         if cyLPModel:             # <<<<<<<<<<<<<<
 *             if isinstance(cyLPModel, CyLPModel):
 *                 self.loadFromCyLPModel(cyLPModel)
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_cyLPModel); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 84, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "cylp/cy/CyClpSimplex.pyx":85
 *         self.cyLPModel = cyLPModel
 *         if cyLPModel:
 *             if isinstance(cyLPModel, CyLPModel):             # <<<<<<<<<<<<<<
 *                 self.loadFromCyLPModel(cyLPModel)
 *             else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (likely(__pyx_t_3)) {

      /* "cylp/cy/CyClpSimplex.pyx":86
 *         if cyLPModel:
 *             if isinstance(cyLPModel, CyLPModel):
 *                 self.loadFromCyLPModel(cyLPModel)             # <<<<<<<<<<<<<<
 *             else:
 *                 raise TypeError('Expected a CyLPModel as an argument to ' \
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __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);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":85
 *         self.cyLPModel = cyLPModel
 *         if cyLPModel:
 *             if isinstance(cyLPModel, CyLPModel):             # <<<<<<<<<<<<<<
 *                 self.loadFromCyLPModel(cyLPModel)
 *             else:
 */
      goto __pyx_L4;
    }

    /* "cylp/cy/CyClpSimplex.pyx":88
 *                 self.loadFromCyLPModel(cyLPModel)
 *             else:
 *                 raise TypeError('Expected a CyLPModel as an argument to ' \             # <<<<<<<<<<<<<<
 *                                 'cylpSimplex constructor. Got %s' %
 *                                 cyLPModel.__class__)
 */
    /*else*/ {

      /* "cylp/cy/CyClpSimplex.pyx":90
 *                 raise TypeError('Expected a CyLPModel as an argument to ' \
 *                                 'cylpSimplex constructor. Got %s' %
 *                                 cyLPModel.__class__)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
      __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)
      __Pyx_GOTREF(__pyx_t_1);

      /* "cylp/cy/CyClpSimplex.pyx":89
 *             else:
 *                 raise TypeError('Expected a CyLPModel as an argument to ' \
 *                                 'cylpSimplex constructor. Got %s' %             # <<<<<<<<<<<<<<
 *                                 cyLPModel.__class__)
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":88
 *                 self.loadFromCyLPModel(cyLPModel)
 *             else:
 *                 raise TypeError('Expected a CyLPModel as an argument to ' \             # <<<<<<<<<<<<<<
 *                                 'cylpSimplex constructor. Got %s' %
 *                                 cyLPModel.__class__)
 */
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_Raise(__pyx_t_1, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __PYX_ERR(0, 88, __pyx_L1_error)
    }
    __pyx_L4:;

    /* "cylp/cy/CyClpSimplex.pyx":84
 * 
 *         self.cyLPModel = cyLPModel
 *         if cyLPModel:             # <<<<<<<<<<<<<<
 *             if isinstance(cyLPModel, CyLPModel):
 *                 self.loadFromCyLPModel(cyLPModel)
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":75
 *     '''
 * 
 *     def __cinit__(self, cyLPModel=None):             # <<<<<<<<<<<<<<
 *         self.CppSelf = new CppIClpSimplex(<cpy_ref.PyObject*>self,
 *                                 <runIsPivotAcceptable_t>RunIsPivotAcceptable,
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":92
 *                                 cyLPModel.__class__)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.CppSelf
 * 
 */

/* Python wrapper */
static void __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_2__dealloc__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_2__dealloc__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);
  __Pyx_TraceCall("__dealloc__", __pyx_f[0], 92, 0, __PYX_ERR(0, 92, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":93
 * 
 *     def __dealloc__(self):
 *         del self.CppSelf             # <<<<<<<<<<<<<<
 * 
 *     cdef setCppSelf(self,  CppIClpSimplex* s):
 */
  delete __pyx_v_self->CppSelf;

  /* "cylp/cy/CyClpSimplex.pyx":92
 *                                 cyLPModel.__class__)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.CppSelf
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "cylp/cy/CyClpSimplex.pyx":95
 *         del self.CppSelf
 * 
 *     cdef setCppSelf(self,  CppIClpSimplex* s):             # <<<<<<<<<<<<<<
 *         del self.CppSelf
 *         self.CppSelf = s
 */

static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setCppSelf(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, IClpSimplex *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setCppSelf", 0);
  __Pyx_TraceCall("setCppSelf", __pyx_f[0], 95, 0, __PYX_ERR(0, 95, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":96
 * 
 *     cdef setCppSelf(self,  CppIClpSimplex* s):
 *         del self.CppSelf             # <<<<<<<<<<<<<<
 *         self.CppSelf = s
 * 
 */
  delete __pyx_v_self->CppSelf;

  /* "cylp/cy/CyClpSimplex.pyx":97
 *     cdef setCppSelf(self,  CppIClpSimplex* s):
 *         del self.CppSelf
 *         self.CppSelf = s             # <<<<<<<<<<<<<<
 * 
 *     #############################################
 */
  __pyx_v_self->CppSelf = __pyx_v_s;

  /* "cylp/cy/CyClpSimplex.pyx":95
 *         del self.CppSelf
 * 
 *     cdef setCppSelf(self,  CppIClpSimplex* s):             # <<<<<<<<<<<<<<
 *         del self.CppSelf
 *         self.CppSelf = s
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setCppSelf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":104
 * 
 *     property basicVariables:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)
 *             self.CppSelf.getBasics(<int*>bv.data)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyArrayObject *__pyx_v_bv = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bv;
  __Pyx_Buffer __pyx_pybuffer_bv;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyArrayObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 104, 0, __PYX_ERR(0, 104, __pyx_L1_error));
  __pyx_pybuffer_bv.pybuffer.buf = NULL;
  __pyx_pybuffer_bv.refcount = 0;
  __pyx_pybuffernd_bv.data = NULL;
  __pyx_pybuffernd_bv.rcbuffer = &__pyx_pybuffer_bv;

  /* "cylp/cy/CyClpSimplex.pyx":105
 *     property basicVariables:
 *         def __get__(self):
 *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)             # <<<<<<<<<<<<<<
 *             self.CppSelf.getBasics(<int*>bv.data)
 *             return bv
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 105, __pyx_L1_error)
  __pyx_t_6 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)) {
      __pyx_v_bv = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_bv.rcbuffer->pybuffer.buf = NULL;
      __PYX_ERR(0, 105, __pyx_L1_error)
    } 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];
    }
  }
  __pyx_t_6 = 0;
  __pyx_v_bv = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":106
 *         def __get__(self):
 *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)
 *             self.CppSelf.getBasics(<int*>bv.data)             # <<<<<<<<<<<<<<
 *             return bv
 * 
 */
  __pyx_v_self->CppSelf->getBasics(((int *)__pyx_v_bv->data));

  /* "cylp/cy/CyClpSimplex.pyx":107
 *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)
 *             self.CppSelf.getBasics(<int*>bv.data)
 *             return bv             # <<<<<<<<<<<<<<
 * 
 *     property rhs:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_bv));
  __pyx_r = ((PyObject *)__pyx_v_bv);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":104
 * 
 *     property basicVariables:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             cdef np.ndarray[np.int32_t, ndim=1] bv = np.zeros(self.nConstraints, dtype=np.int32)
 *             self.CppSelf.getBasics(<int*>bv.data)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bv.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.basicVariables.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bv.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_bv);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":110
 * 
 *     property rhs:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             r = np.zeros(self.nConstraints, dtype=np.double)
 *             self.getRightHandSide(r)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_r = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 110, 0, __PYX_ERR(0, 110, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":111
 *     property rhs:
 *         def __get__(self):
 *             r = np.zeros(self.nConstraints, dtype=np.double)             # <<<<<<<<<<<<<<
 *             self.getRightHandSide(r)
 *             #Py_INCREF(r)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 111, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_r = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":112
 *         def __get__(self):
 *             r = np.zeros(self.nConstraints, dtype=np.double)
 *             self.getRightHandSide(r)             # <<<<<<<<<<<<<<
 *             #Py_INCREF(r)
 *             return r
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":114
 *             self.getRightHandSide(r)
 *             #Py_INCREF(r)
 *             return r             # <<<<<<<<<<<<<<
 * 
 *     property basisInverse:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":110
 * 
 *     property rhs:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             r = np.zeros(self.nConstraints, dtype=np.double)
 *             self.getRightHandSide(r)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.rhs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_r);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":117
 * 
 *     property basisInverse:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_b = NULL;
  PyArrayObject *__pyx_v_c = 0;
  PyObject *__pyx_v_colInd = NULL;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_c;
  __Pyx_Buffer __pyx_pybuffer_c;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyArrayObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 117, 0, __PYX_ERR(0, 117, __pyx_L1_error));
  __pyx_pybuffer_c.pybuffer.buf = NULL;
  __pyx_pybuffer_c.refcount = 0;
  __pyx_pybuffernd_c.data = NULL;
  __pyx_pybuffernd_c.rcbuffer = &__pyx_pybuffer_c;

  /* "cylp/cy/CyClpSimplex.pyx":118
 *     property basisInverse:
 *         def __get__(self):
 *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)             # <<<<<<<<<<<<<<
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 *             for colInd in xrange(self.nConstraints):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":119
 *         def __get__(self):
 *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)             # <<<<<<<<<<<<<<
 *             for colInd in xrange(self.nConstraints):
 *                 self.getBInvCol(colInd, c)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 119, __pyx_L1_error)
  __pyx_t_6 = ((PyArrayObject *)__pyx_t_1);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)) {
      __pyx_v_c = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_c.rcbuffer->pybuffer.buf = NULL;
      __PYX_ERR(0, 119, __pyx_L1_error)
    } 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];
    }
  }
  __pyx_t_6 = 0;
  __pyx_v_c = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":120
 *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 *             for colInd in xrange(self.nConstraints):             # <<<<<<<<<<<<<<
 *                 self.getBInvCol(colInd, c)
 *                 b[:, colInd] = c
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 120, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_8(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 120, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_colInd, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":121
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 *             for colInd in xrange(self.nConstraints):
 *                 self.getBInvCol(colInd, c)             # <<<<<<<<<<<<<<
 *                 b[:, colInd] = c
 *             return b
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_colInd, ((PyObject *)__pyx_v_c)};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_colInd, ((PyObject *)__pyx_v_c)};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    {
      __pyx_t_2 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_colInd);
      __Pyx_GIVEREF(__pyx_v_colInd);
      PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_9, __pyx_v_colInd);
      __Pyx_INCREF(((PyObject *)__pyx_v_c));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_c));
      PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_9, ((PyObject *)__pyx_v_c));
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":122
 *             for colInd in xrange(self.nConstraints):
 *                 self.getBInvCol(colInd, c)
 *                 b[:, colInd] = c             # <<<<<<<<<<<<<<
 *             return b
 * 
 */
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_slice_);
    __Pyx_GIVEREF(__pyx_slice_);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_slice_);
    __Pyx_INCREF(__pyx_v_colInd);
    __Pyx_GIVEREF(__pyx_v_colInd);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_colInd);
    if (unlikely(PyObject_SetItem(__pyx_v_b, __pyx_t_5, ((PyObject *)__pyx_v_c)) < 0)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":120
 *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 *             for colInd in xrange(self.nConstraints):             # <<<<<<<<<<<<<<
 *                 self.getBInvCol(colInd, c)
 *                 b[:, colInd] = c
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":123
 *                 self.getBInvCol(colInd, c)
 *                 b[:, colInd] = c
 *             return b             # <<<<<<<<<<<<<<
 * 
 *     property tableau:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_b);
  __pyx_r = __pyx_v_b;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":117
 * 
 *     property basisInverse:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             b = np.empty((self.nConstraints, self.nConstraints), dtype=np.double)
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_c.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.basisInverse.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_c.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_colInd);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":126
 * 
 *     property tableau:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             nAllVars = self.nVariables + self.nConstraints
 *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_nAllVars = NULL;
  PyObject *__pyx_v_t = NULL;
  PyArrayObject *__pyx_v_c = 0;
  PyObject *__pyx_v_colInd = NULL;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_c;
  __Pyx_Buffer __pyx_pybuffer_c;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyArrayObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 126, 0, __PYX_ERR(0, 126, __pyx_L1_error));
  __pyx_pybuffer_c.pybuffer.buf = NULL;
  __pyx_pybuffer_c.refcount = 0;
  __pyx_pybuffernd_c.data = NULL;
  __pyx_pybuffernd_c.rcbuffer = &__pyx_pybuffer_c;

  /* "cylp/cy/CyClpSimplex.pyx":127
 *     property tableau:
 *         def __get__(self):
 *             nAllVars = self.nVariables + self.nConstraints             # <<<<<<<<<<<<<<
 *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_nAllVars = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":128
 *         def __get__(self):
 *             nAllVars = self.nVariables + self.nConstraints
 *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)             # <<<<<<<<<<<<<<
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 *             for colInd in xrange(nAllVars):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_nAllVars);
  __Pyx_GIVEREF(__pyx_v_nAllVars);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_nAllVars);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_t = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":129
 *             nAllVars = self.nVariables + self.nConstraints
 *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)             # <<<<<<<<<<<<<<
 *             for colInd in xrange(nAllVars):
 *                 self.getBInvACol(colInd, c)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 129, __pyx_L1_error)
  __pyx_t_6 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)) {
      __pyx_v_c = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_c.rcbuffer->pybuffer.buf = NULL;
      __PYX_ERR(0, 129, __pyx_L1_error)
    } 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];
    }
  }
  __pyx_t_6 = 0;
  __pyx_v_c = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":130
 *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 *             for colInd in xrange(nAllVars):             # <<<<<<<<<<<<<<
 *                 self.getBInvACol(colInd, c)
 *                 t[:, colInd] = c
 */
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_v_nAllVars); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 130, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_5);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 130, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_colInd, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":131
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 *             for colInd in xrange(nAllVars):
 *                 self.getBInvACol(colInd, c)             # <<<<<<<<<<<<<<
 *                 t[:, colInd] = c
 *             return t
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_colInd, ((PyObject *)__pyx_v_c)};
      __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)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_4);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_colInd, ((PyObject *)__pyx_v_c)};
      __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)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_4);
    } else
    #endif
    {
      __pyx_t_2 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 131, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_INCREF(__pyx_v_colInd);
      __Pyx_GIVEREF(__pyx_v_colInd);
      PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_9, __pyx_v_colInd);
      __Pyx_INCREF(((PyObject *)__pyx_v_c));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_c));
      PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_9, ((PyObject *)__pyx_v_c));
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":132
 *             for colInd in xrange(nAllVars):
 *                 self.getBInvACol(colInd, c)
 *                 t[:, colInd] = c             # <<<<<<<<<<<<<<
 *             return t
 * 
 */
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_slice_);
    __Pyx_GIVEREF(__pyx_slice_);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_slice_);
    __Pyx_INCREF(__pyx_v_colInd);
    __Pyx_GIVEREF(__pyx_v_colInd);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_colInd);
    if (unlikely(PyObject_SetItem(__pyx_v_t, __pyx_t_4, ((PyObject *)__pyx_v_c)) < 0)) __PYX_ERR(0, 132, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":130
 *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
 *             cdef np.ndarray[np.double_t, ndim=1] c = np.zeros(self.nConstraints, dtype=np.double)
 *             for colInd in xrange(nAllVars):             # <<<<<<<<<<<<<<
 *                 self.getBInvACol(colInd, c)
 *                 t[:, colInd] = c
 */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":133
 *                 self.getBInvACol(colInd, c)
 *                 t[:, colInd] = c
 *             return t             # <<<<<<<<<<<<<<
 * 
 *     property objective:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_t);
  __pyx_r = __pyx_v_t;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":126
 * 
 *     property tableau:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             nAllVars = self.nVariables + self.nConstraints
 *             t = np.empty((self.nConstraints, nAllVars), dtype=np.double)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_c.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.tableau.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_c.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_nAllVars);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_colInd);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":140
 *         See the :ref:`modeling example <modeling-usage>`.
 *         '''
 *         def __set__(self, obj):             # <<<<<<<<<<<<<<
 *             if self.cyLPModel:
 *                 self.cyLPModel.objective = obj
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_obj); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective___set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_obj));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective___set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_obj) {
  PyObject *__pyx_v_o = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 140, 0, __PYX_ERR(0, 140, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":141
 *         '''
 *         def __set__(self, obj):
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 self.cyLPModel.objective = obj
 *                 o = self.cyLPModel.objective
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 141, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "cylp/cy/CyClpSimplex.pyx":142
 *         def __set__(self, obj):
 *             if self.cyLPModel:
 *                 self.cyLPModel.objective = obj             # <<<<<<<<<<<<<<
 *                 o = self.cyLPModel.objective
 * 
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self->cyLPModel, __pyx_n_s_objective, __pyx_v_obj) < 0) __PYX_ERR(0, 142, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":143
 *             if self.cyLPModel:
 *                 self.cyLPModel.objective = obj
 *                 o = self.cyLPModel.objective             # <<<<<<<<<<<<<<
 * 
 *                 if not isinstance(o, (np.ndarray)):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_o = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":145
 *                 o = self.cyLPModel.objective
 * 
 *                 if not isinstance(o, (np.ndarray)):             # <<<<<<<<<<<<<<
 *                     o = o.toarray()[0]
 *                 self.setObjectiveArray(o.astype(np.double))
 */
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_ptype_5numpy_ndarray); 
    __pyx_t_3 = ((!(__pyx_t_1 != 0)) != 0);
    if (__pyx_t_3) {

      /* "cylp/cy/CyClpSimplex.pyx":146
 * 
 *                 if not isinstance(o, (np.ndarray)):
 *                     o = o.toarray()[0]             # <<<<<<<<<<<<<<
 *                 self.setObjectiveArray(o.astype(np.double))
 *                 # This old version doesn't work in some versions of Scipy
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 146, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF_SET(__pyx_v_o, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":145
 *                 o = self.cyLPModel.objective
 * 
 *                 if not isinstance(o, (np.ndarray)):             # <<<<<<<<<<<<<<
 *                     o = o.toarray()[0]
 *                 self.setObjectiveArray(o.astype(np.double))
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":147
 *                 if not isinstance(o, (np.ndarray)):
 *                     o = o.toarray()[0]
 *                 self.setObjectiveArray(o.astype(np.double))             # <<<<<<<<<<<<<<
 *                 # This old version doesn't work in some versions of Scipy
 *                 # For csr_matrixPlus, o[0,i] is still a matrix, not a number
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __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)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":141
 *         '''
 *         def __set__(self, obj):
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 self.cyLPModel.objective = obj
 *                 o = self.cyLPModel.objective
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":169
 *                 #       self.cyLPModel.objective.astype(np.double))
 *             else:
 *                 raise Exception('To set the objective function of ' \             # <<<<<<<<<<<<<<
 *                                 'CyClpSimplex set cylpSimplex.cyLPModel ' \
 *                                 'first.')
 */
  /*else*/ {
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 169, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":140
 *         See the :ref:`modeling example <modeling-usage>`.
 *         '''
 *         def __set__(self, obj):             # <<<<<<<<<<<<<<
 *             if self.cyLPModel:
 *                 self.cyLPModel.objective = obj
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objective.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_o);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":172
 *                                 'CyClpSimplex set cylpSimplex.cyLPModel ' \
 *                                 'first.')
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getObjective()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_3__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_3__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_2__get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_2__get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 172, 0, __PYX_ERR(0, 172, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":173
 *                                 'first.')
 *         def __get__(self):
 *             return <object>self.CppSelf.getObjective()             # <<<<<<<<<<<<<<
 * 
 *     property objectiveCoefficients:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getObjective();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":172
 *                                 'CyClpSimplex set cylpSimplex.cyLPModel ' \
 *                                 'first.')
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getObjective()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":180
 *         in a more general context. Sets and gets a numpy array.
 *         '''
 *         def __set__(self, coef):             # <<<<<<<<<<<<<<
 *             self.objective = coef
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_coef); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_coef) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients___set__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_coef));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients___set__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_coef) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 180, 0, __PYX_ERR(0, 180, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":181
 *         '''
 *         def __set__(self, coef):
 *             self.objective = coef             # <<<<<<<<<<<<<<
 * 
 *         def __get__(self):
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objective, __pyx_v_coef) < 0) __PYX_ERR(0, 181, __pyx_L1_error)

  /* "cylp/cy/CyClpSimplex.pyx":180
 *         in a more general context. Sets and gets a numpy array.
 *         '''
 *         def __set__(self, coef):             # <<<<<<<<<<<<<<
 *             self.objective = coef
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveCoefficients.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":183
 *             self.objective = coef
 * 
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.objective
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_3__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_3__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_2__get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_2__get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 183, 0, __PYX_ERR(0, 183, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":184
 * 
 *         def __get__(self):
 *             return self.objective             # <<<<<<<<<<<<<<
 * 
 *     property iteration:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":183
 *             self.objective = coef
 * 
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.objective
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveCoefficients.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":190
 *         Number of iterations.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.numberIterations()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 190, 0, __PYX_ERR(0, 190, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":191
 *         '''
 *         def __get__(self):
 *             return self.CppSelf.numberIterations()             # <<<<<<<<<<<<<<
 * 
 *     property nRows:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->numberIterations()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":190
 *         Number of iterations.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.numberIterations()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.iteration.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":197
 *         Number of rows, constraints.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.getNumRows()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 197, 0, __PYX_ERR(0, 197, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":198
 *         '''
 *         def __get__(self):
 *             return self.CppSelf.getNumRows()             # <<<<<<<<<<<<<<
 * 
 *     property nConstraints:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumRows()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":197
 *         Number of rows, constraints.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.getNumRows()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.nRows.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":204
 *         Number of constraints, rows.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.getNumRows()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 204, 0, __PYX_ERR(0, 204, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":205
 *         '''
 *         def __get__(self):
 *             return self.CppSelf.getNumRows()             # <<<<<<<<<<<<<<
 * 
 *     property nVariables:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumRows()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":204
 *         Number of constraints, rows.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.getNumRows()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.nConstraints.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":211
 *         Number of variables, columns.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.getNumCols()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 211, 0, __PYX_ERR(0, 211, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":212
 *         '''
 *         def __get__(self):
 *             return self.CppSelf.getNumCols()             # <<<<<<<<<<<<<<
 * 
 *     property nCols:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumCols()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":211
 *         Number of variables, columns.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.getNumCols()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.nVariables.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":218
 *         Number of columns, variables.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.getNumCols()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 218, 0, __PYX_ERR(0, 218, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":219
 *         '''
 *         def __get__(self):
 *             return self.CppSelf.getNumCols()             # <<<<<<<<<<<<<<
 * 
 *     property coefMatrix:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumCols()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":218
 *         Number of columns, variables.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.getNumCols()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.nCols.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":225
 *         The coefficient matrix. A scipy sparse matrix.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             mat = self.matrix
 *             if mat.hasGaps():
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_mat = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 225, 0, __PYX_ERR(0, 225, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":226
 *         '''
 *         def __get__(self):
 *             mat = self.matrix             # <<<<<<<<<<<<<<
 *             if mat.hasGaps():
 *                 mat.removeGaps()
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_mat = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":227
 *         def __get__(self):
 *             mat = self.matrix
 *             if mat.hasGaps():             # <<<<<<<<<<<<<<
 *                 mat.removeGaps()
 *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {

    /* "cylp/cy/CyClpSimplex.pyx":228
 *             mat = self.matrix
 *             if mat.hasGaps():
 *                 mat.removeGaps()             # <<<<<<<<<<<<<<
 *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
 *                              shape=(self.nConstraints, self.nVariables))
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":227
 *         def __get__(self):
 *             mat = self.matrix
 *             if mat.hasGaps():             # <<<<<<<<<<<<<<
 *                 mat.removeGaps()
 *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":229
 *             if mat.hasGaps():
 *                 mat.removeGaps()
 *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),             # <<<<<<<<<<<<<<
 *                              shape=(self.nConstraints, self.nVariables))
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_csc_matrixPlus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":230
 *                 mat.removeGaps()
 *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
 *                              shape=(self.nConstraints, self.nVariables))             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, sparseMatrix):
 */
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2);
  __pyx_t_3 = 0;
  __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_shape, __pyx_t_7) < 0) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":229
 *             if mat.hasGaps():
 *                 mat.removeGaps()
 *             return csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),             # <<<<<<<<<<<<<<
 *                              shape=(self.nConstraints, self.nVariables))
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":225
 *         The coefficient matrix. A scipy sparse matrix.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             mat = self.matrix
 *             if mat.hasGaps():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.coefMatrix.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_mat);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":232
 *                              shape=(self.nConstraints, self.nVariables))
 * 
 *         def __set__(self, sparseMatrix):             # <<<<<<<<<<<<<<
 *             try:
 *                 m = sparseMatrix.tocoo()
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_sparseMatrix); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_sparseMatrix) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_m = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 232, 0, __PYX_ERR(0, 232, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":233
 * 
 *         def __set__(self, sparseMatrix):
 *             try:             # <<<<<<<<<<<<<<
 *                 m = sparseMatrix.tocoo()
 *             except:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "cylp/cy/CyClpSimplex.pyx":234
 *         def __set__(self, sparseMatrix):
 *             try:
 *                 m = sparseMatrix.tocoo()             # <<<<<<<<<<<<<<
 *             except:
 *                 raise Exception('coefMatrix must be a scipy sparse matrix.')
 */
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_v_m = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":233
 * 
 *         def __set__(self, sparseMatrix):
 *             try:             # <<<<<<<<<<<<<<
 *                 m = sparseMatrix.tocoo()
 *             except:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":235
 *             try:
 *                 m = sparseMatrix.tocoo()
 *             except:             # <<<<<<<<<<<<<<
 *                 raise Exception('coefMatrix must be a scipy sparse matrix.')
 *             self.matrix = CyCoinPackedMatrix(True, m.row, m.col, m.data)
 */
    /*except:*/ {
      __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.coefMatrix.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(0, 235, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);

      /* "cylp/cy/CyClpSimplex.pyx":236
 *                 m = sparseMatrix.tocoo()
 *             except:
 *                 raise Exception('coefMatrix must be a scipy sparse matrix.')             # <<<<<<<<<<<<<<
 *             self.matrix = CyCoinPackedMatrix(True, m.row, m.col, m.data)
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_Raise(__pyx_t_7, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __PYX_ERR(0, 236, __pyx_L5_except_error)
    }
    __pyx_L5_except_error:;

    /* "cylp/cy/CyClpSimplex.pyx":233
 * 
 *         def __set__(self, sparseMatrix):
 *             try:             # <<<<<<<<<<<<<<
 *                 m = sparseMatrix.tocoo()
 *             except:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "cylp/cy/CyClpSimplex.pyx":237
 *             except:
 *                 raise Exception('coefMatrix must be a scipy sparse matrix.')
 *             self.matrix = CyCoinPackedMatrix(True, m.row, m.col, m.data)             # <<<<<<<<<<<<<<
 * 
 *     property matrix:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_6);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(Py_True);
  __Pyx_GIVEREF(Py_True);
  PyTuple_SET_ITEM(__pyx_t_7, 0, Py_True);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_4 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_matrix, __pyx_t_4) < 0) __PYX_ERR(0, 237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":232
 *                              shape=(self.nConstraints, self.nVariables))
 * 
 *         def __set__(self, sparseMatrix):             # <<<<<<<<<<<<<<
 *             try:
 *                 m = sparseMatrix.tocoo()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.coefMatrix.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":243
 *         The coefficient matrix. A CyCoinPackedMatrix.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()
 *             mat = CyCoinPackedMatrix()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  ICoinPackedMatrix *__pyx_v_cppMat;
  struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_mat = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 243, 0, __PYX_ERR(0, 243, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":244
 *         '''
 *         def __get__(self):
 *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()             # <<<<<<<<<<<<<<
 *             mat = CyCoinPackedMatrix()
 *             mat.CppSelf = cppMat
 */
  __pyx_v_cppMat = __pyx_v_self->CppSelf->getMatrix();

  /* "cylp/cy/CyClpSimplex.pyx":245
 *         def __get__(self):
 *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()
 *             mat = CyCoinPackedMatrix()             # <<<<<<<<<<<<<<
 *             mat.CppSelf = cppMat
 *             return mat
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_mat = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":246
 *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()
 *             mat = CyCoinPackedMatrix()
 *             mat.CppSelf = cppMat             # <<<<<<<<<<<<<<
 *             return mat
 * 
 */
  __pyx_v_mat->CppSelf = __pyx_v_cppMat;

  /* "cylp/cy/CyClpSimplex.pyx":247
 *             mat = CyCoinPackedMatrix()
 *             mat.CppSelf = cppMat
 *             return mat             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, cyCoinPackedMatrix):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_mat));
  __pyx_r = ((PyObject *)__pyx_v_mat);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":243
 *         The coefficient matrix. A CyCoinPackedMatrix.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             cdef CppCoinPackedMatrix* cppMat = self.CppSelf.getMatrix()
 *             mat = CyCoinPackedMatrix()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.matrix.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_mat);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":249
 *             return mat
 * 
 *         def __set__(self, cyCoinPackedMatrix):             # <<<<<<<<<<<<<<
 *             self.replaceMatrix(cyCoinPackedMatrix, True)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_cyCoinPackedMatrix); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_cyCoinPackedMatrix) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 249, 0, __PYX_ERR(0, 249, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":250
 * 
 *         def __set__(self, cyCoinPackedMatrix):
 *             self.replaceMatrix(cyCoinPackedMatrix, True)             # <<<<<<<<<<<<<<
 * 
 *     property constraints:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_cyCoinPackedMatrix, Py_True};
    __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)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_cyCoinPackedMatrix, Py_True};
    __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)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(__pyx_v_cyCoinPackedMatrix);
    __Pyx_GIVEREF(__pyx_v_cyCoinPackedMatrix);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_cyCoinPackedMatrix);
    __Pyx_INCREF(Py_True);
    __Pyx_GIVEREF(Py_True);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, Py_True);
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":249
 *             return mat
 * 
 *         def __set__(self, cyCoinPackedMatrix):             # <<<<<<<<<<<<<<
 *             self.replaceMatrix(cyCoinPackedMatrix, True)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.matrix.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":256
 *         Constraints.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             if not self.cyLPModel:
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 256, 0, __PYX_ERR(0, 256, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":257
 *         '''
 *         def __get__(self):
 *             if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 *             else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 257, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cylp/cy/CyClpSimplex.pyx":258
 *         def __get__(self):
 *             if not self.cyLPModel:
 *                 raise Exception('No CyClpSimplex cyLPModel.')             # <<<<<<<<<<<<<<
 *             else:
 *                 return self.cyLPModel.constraints
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 258, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":257
 *         '''
 *         def __get__(self):
 *             if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 *             else:
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":260
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 *             else:
 *                 return self.cyLPModel.constraints             # <<<<<<<<<<<<<<
 * 
 *     property variableNames:
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":256
 *         Constraints.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             if not self.cyLPModel:
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraints.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":266
 *         variable names
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.getVariableNames()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 266, 0, __PYX_ERR(0, 266, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":267
 *         '''
 *         def __get__(self):
 *             return self.getVariableNames()             # <<<<<<<<<<<<<<
 * 
 *     property variables:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":266
 *         variable names
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.getVariableNames()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variableNames.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":273
 *         Variables.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             if not self.cyLPModel:
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 273, 0, __PYX_ERR(0, 273, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":274
 *         '''
 *         def __get__(self):
 *             if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 *             else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 274, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cylp/cy/CyClpSimplex.pyx":275
 *         def __get__(self):
 *             if not self.cyLPModel:
 *                 raise Exception('No CyClpSimplex cyLPModel.')             # <<<<<<<<<<<<<<
 *             else:
 *                 return self.cyLPModel.variables
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 275, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":274
 *         '''
 *         def __get__(self):
 *             if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 *             else:
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":277
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 *             else:
 *                 return self.cyLPModel.variables             # <<<<<<<<<<<<<<
 * 
 * #    def getNumRows(self):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":273
 *         Variables.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             if not self.cyLPModel:
 *                 raise Exception('No CyClpSimplex cyLPModel.')
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variables.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":292
 *         The objective value. Readonly.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.objectiveValue()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 292, 0, __PYX_ERR(0, 292, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":293
 *         '''
 *         def __get__(self):
 *             return self.CppSelf.objectiveValue()             # <<<<<<<<<<<<<<
 * 
 *     property primalVariableSolution:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->objectiveValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":292
 *         The objective value. Readonly.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.objectiveValue()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveValue.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":301
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_v = NULL;
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_v_dimRanges = NULL;
  PyObject *__pyx_v_element = NULL;
  PyObject *__pyx_v_names = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 301, 0, __PYX_ERR(0, 301, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":304
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 *             ret = <object>self.CppSelf.getPrimalColumnSolution()             # <<<<<<<<<<<<<<
 *             if self.cyLPModel:
 *                 m = self.cyLPModel
 */
  __pyx_t_1 = __pyx_v_self->CppSelf->getPrimalColumnSolution();
  __pyx_t_2 = ((PyObject *)__pyx_t_1);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_ret = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":305
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 *             ret = <object>self.CppSelf.getPrimalColumnSolution()
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 m = self.cyLPModel
 *                 inds = m.inds
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 305, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "cylp/cy/CyClpSimplex.pyx":306
 *             ret = <object>self.CppSelf.getPrimalColumnSolution()
 *             if self.cyLPModel:
 *                 m = self.cyLPModel             # <<<<<<<<<<<<<<
 *                 inds = m.inds
 *                 d = {}
 */
    __pyx_t_2 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_m = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":307
 *             if self.cyLPModel:
 *                 m = self.cyLPModel
 *                 inds = m.inds             # <<<<<<<<<<<<<<
 *                 d = {}
 *                 for v in inds.varIndex.keys():
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_inds = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":308
 *                 m = self.cyLPModel
 *                 inds = m.inds
 *                 d = {}             # <<<<<<<<<<<<<<
 *                 for v in inds.varIndex.keys():
 *                     d[v] = ret[inds.varIndex[v]]
 */
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 308, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_d = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":309
 *                 inds = m.inds
 *                 d = {}
 *                 for v in inds.varIndex.keys():             # <<<<<<<<<<<<<<
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 309, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 309, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":310
 *                 d = {}
 *                 for v in inds.varIndex.keys():
 *                     d[v] = ret[inds.varIndex[v]]             # <<<<<<<<<<<<<<
 *                     var = m.getVarByName(v)
 *                     if var.dims:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 310, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 310, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":311
 *                 for v in inds.varIndex.keys():
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)             # <<<<<<<<<<<<<<
 *                     if var.dims:
 *                         d[v] = CyLPSolution()
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __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);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 311, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":312
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)
 *                     if var.dims:             # <<<<<<<<<<<<<<
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 312, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_3) {

        /* "cylp/cy/CyClpSimplex.pyx":313
 *                     var = m.getVarByName(v)
 *                     if var.dims:
 *                         d[v] = CyLPSolution()             # <<<<<<<<<<<<<<
 *                         dimRanges = [range(i) for i in var.dims]
 *                         for element in product(*dimRanges):
 */
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_8 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":314
 *                     if var.dims:
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]             # <<<<<<<<<<<<<<
 *                         for element in product(*dimRanges):
 * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
 */
        __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
          __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
          __pyx_t_10 = NULL;
        } else {
          __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 314, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        for (;;) {
          if (likely(!__pyx_t_10)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            } else {
              if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            }
          } else {
            __pyx_t_4 = __pyx_t_10(__pyx_t_8);
            if (unlikely(!__pyx_t_4)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 314, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
          __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_dimRanges, ((PyObject*)__pyx_t_2));
        __pyx_t_2 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":315
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]
 *                         for element in product(*dimRanges):             # <<<<<<<<<<<<<<
 * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
 *                             d[v][element] = ret[var.fromInd+var[element].indices[0]]
 */
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_8 = PySequence_Tuple(__pyx_v_dimRanges); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
          __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
          __pyx_t_10 = NULL;
        } else {
          __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 315, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 315, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        for (;;) {
          if (likely(!__pyx_t_10)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            } else {
              if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            }
          } else {
            __pyx_t_4 = __pyx_t_10(__pyx_t_8);
            if (unlikely(!__pyx_t_4)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 315, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_4);
          __pyx_t_4 = 0;

          /* "cylp/cy/CyClpSimplex.pyx":317
 *                         for element in product(*dimRanges):
 * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
 *                             d[v][element] = ret[var.fromInd+var[element].indices[0]]             # <<<<<<<<<<<<<<
 *                 ret = d
 *             else:
 */
          __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)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_var, __pyx_v_element); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 317, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __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)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 317, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 317, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_v); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 317, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_v_element, __pyx_t_2) < 0)) __PYX_ERR(0, 317, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "cylp/cy/CyClpSimplex.pyx":315
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]
 *                         for element in product(*dimRanges):             # <<<<<<<<<<<<<<
 * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
 *                             d[v][element] = ret[var.fromInd+var[element].indices[0]]
 */
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":312
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)
 *                     if var.dims:             # <<<<<<<<<<<<<<
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]
 */
      }

      /* "cylp/cy/CyClpSimplex.pyx":309
 *                 inds = m.inds
 *                 d = {}
 *                 for v in inds.varIndex.keys():             # <<<<<<<<<<<<<<
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":318
 * #                            d[v][element] = ret[var.__getitem__(element).indices[0]]
 *                             d[v][element] = ret[var.fromInd+var[element].indices[0]]
 *                 ret = d             # <<<<<<<<<<<<<<
 *             else:
 *                 names = self.variableNames
 */
    __Pyx_INCREF(__pyx_v_d);
    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);

    /* "cylp/cy/CyClpSimplex.pyx":305
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 *             ret = <object>self.CppSelf.getPrimalColumnSolution()
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 m = self.cyLPModel
 *                 inds = m.inds
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":320
 *                 ret = d
 *             else:
 *                 names = self.variableNames             # <<<<<<<<<<<<<<
 *                 if names:
 *                     d = CyLPSolution()
 */
  /*else*/ {
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_names = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":321
 *             else:
 *                 names = self.variableNames
 *                 if names:             # <<<<<<<<<<<<<<
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_names); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 321, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "cylp/cy/CyClpSimplex.pyx":322
 *                 names = self.variableNames
 *                 if names:
 *                     d = CyLPSolution()             # <<<<<<<<<<<<<<
 *                     for i in range(len(names)):
 *                         d[names[i]] = ret[i]
 */
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 322, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 322, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_v_d = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":323
 *                 if names:
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):             # <<<<<<<<<<<<<<
 *                         d[names[i]] = ret[i]
 *                     ret = d
 */
      __pyx_t_6 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 323, __pyx_L1_error)
      __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 323, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_5 = __pyx_t_8; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
        __pyx_t_7 = NULL;
      } else {
        __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 323, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_7)) {
          if (likely(PyList_CheckExact(__pyx_t_5))) {
            if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_7(__pyx_t_5);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 323, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8);
        __pyx_t_8 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":324
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):
 *                         d[names[i]] = ret[i]             # <<<<<<<<<<<<<<
 *                     ret = d
 *             return ret
 */
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 324, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_t_2, __pyx_t_8) < 0)) __PYX_ERR(0, 324, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":323
 *                 if names:
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):             # <<<<<<<<<<<<<<
 *                         d[names[i]] = ret[i]
 *                     ret = d
 */
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":325
 *                     for i in range(len(names)):
 *                         d[names[i]] = ret[i]
 *                     ret = d             # <<<<<<<<<<<<<<
 *             return ret
 * 
 */
      __Pyx_INCREF(__pyx_v_d);
      __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);

      /* "cylp/cy/CyClpSimplex.pyx":321
 *             else:
 *                 names = self.variableNames
 *                 if names:             # <<<<<<<<<<<<<<
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):
 */
    }
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":326
 *                         d[names[i]] = ret[i]
 *                     ret = d
 *             return ret             # <<<<<<<<<<<<<<
 * 
 *     property primalVariableSolutionAll:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":301
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalVariableSolution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_v);
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_dimRanges);
  __Pyx_XDECREF(__pyx_v_element);
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":334
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 334, 0, __PYX_ERR(0, 334, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":337
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 *             return <object>self.CppSelf.getPrimalColumnSolutionAll()             # <<<<<<<<<<<<<<
 * 
 *     property solution:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getPrimalColumnSolutionAll();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":334
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalVariableSolutionAll.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":345
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 345, 0, __PYX_ERR(0, 345, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":348
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 *             return <object>self.CppSelf.getSolutionRegion()             # <<<<<<<<<<<<<<
 * 
 *     property cost:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getSolutionRegion();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":345
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.solution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":356
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 356, 0, __PYX_ERR(0, 356, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":359
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 *             return <object>self.CppSelf.getCostRegion()             # <<<<<<<<<<<<<<
 * 
 *     property dualVariableSolution:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getCostRegion();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":356
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             #if self.cbcModelExists:
 *             #    return <object>self.cbcModel.getPrimalVariableSolution()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.cost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":367
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             ret = <object>self.CppSelf.getDualColumnSolution()
 *             if self.cyLPModel:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_v = NULL;
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_v_dimRanges = NULL;
  PyObject *__pyx_v_element = NULL;
  PyObject *__pyx_v_names = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 367, 0, __PYX_ERR(0, 367, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":368
 *         '''
 *         def __get__(self):
 *             ret = <object>self.CppSelf.getDualColumnSolution()             # <<<<<<<<<<<<<<
 *             if self.cyLPModel:
 *                 m = self.cyLPModel
 */
  __pyx_t_1 = __pyx_v_self->CppSelf->getDualColumnSolution();
  __pyx_t_2 = ((PyObject *)__pyx_t_1);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_ret = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":369
 *         def __get__(self):
 *             ret = <object>self.CppSelf.getDualColumnSolution()
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 m = self.cyLPModel
 *                 inds = m.inds
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "cylp/cy/CyClpSimplex.pyx":370
 *             ret = <object>self.CppSelf.getDualColumnSolution()
 *             if self.cyLPModel:
 *                 m = self.cyLPModel             # <<<<<<<<<<<<<<
 *                 inds = m.inds
 *                 d = {}
 */
    __pyx_t_2 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_m = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":371
 *             if self.cyLPModel:
 *                 m = self.cyLPModel
 *                 inds = m.inds             # <<<<<<<<<<<<<<
 *                 d = {}
 *                 for v in inds.varIndex.keys():
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_inds = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":372
 *                 m = self.cyLPModel
 *                 inds = m.inds
 *                 d = {}             # <<<<<<<<<<<<<<
 *                 for v in inds.varIndex.keys():
 *                     d[v] = ret[inds.varIndex[v]]
 */
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_d = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":373
 *                 inds = m.inds
 *                 d = {}
 *                 for v in inds.varIndex.keys():             # <<<<<<<<<<<<<<
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 373, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 373, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 373, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":374
 *                 d = {}
 *                 for v in inds.varIndex.keys():
 *                     d[v] = ret[inds.varIndex[v]]             # <<<<<<<<<<<<<<
 *                     var = m.getVarByName(v)
 *                     if var.dims:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 374, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 374, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 374, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":375
 *                 for v in inds.varIndex.keys():
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)             # <<<<<<<<<<<<<<
 *                     if var.dims:
 *                         d[v] = CyLPSolution()
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __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);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 375, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":376
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)
 *                     if var.dims:             # <<<<<<<<<<<<<<
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 376, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_3) {

        /* "cylp/cy/CyClpSimplex.pyx":377
 *                     var = m.getVarByName(v)
 *                     if var.dims:
 *                         d[v] = CyLPSolution()             # <<<<<<<<<<<<<<
 *                         dimRanges = [range(i) for i in var.dims]
 *                         for element in product(*dimRanges):
 */
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 377, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_8 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 377, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 377, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":378
 *                     if var.dims:
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]             # <<<<<<<<<<<<<<
 *                         for element in product(*dimRanges):
 *                             d[v][element] = ret[var.__getitem__(element).indices[0]]
 */
        __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 378, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
          __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
          __pyx_t_10 = NULL;
        } else {
          __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 378, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        for (;;) {
          if (likely(!__pyx_t_10)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            } else {
              if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            }
          } else {
            __pyx_t_4 = __pyx_t_10(__pyx_t_8);
            if (unlikely(!__pyx_t_4)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 378, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
          __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_dimRanges, ((PyObject*)__pyx_t_2));
        __pyx_t_2 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":379
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]
 *                         for element in product(*dimRanges):             # <<<<<<<<<<<<<<
 *                             d[v][element] = ret[var.__getitem__(element).indices[0]]
 *                 ret = d
 */
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 379, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_8 = PySequence_Tuple(__pyx_v_dimRanges); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 379, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
          __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
          __pyx_t_10 = NULL;
        } else {
          __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 379, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 379, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        for (;;) {
          if (likely(!__pyx_t_10)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            } else {
              if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            }
          } else {
            __pyx_t_4 = __pyx_t_10(__pyx_t_8);
            if (unlikely(!__pyx_t_4)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 379, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_4);
          __pyx_t_4 = 0;

          /* "cylp/cy/CyClpSimplex.pyx":380
 *                         dimRanges = [range(i) for i in var.dims]
 *                         for element in product(*dimRanges):
 *                             d[v][element] = ret[var.__getitem__(element).indices[0]]             # <<<<<<<<<<<<<<
 *                 ret = d
 *             else:
 */
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_11 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_11)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_11);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __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);
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __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)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 380, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_element, __pyx_t_2) < 0)) __PYX_ERR(0, 380, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "cylp/cy/CyClpSimplex.pyx":379
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]
 *                         for element in product(*dimRanges):             # <<<<<<<<<<<<<<
 *                             d[v][element] = ret[var.__getitem__(element).indices[0]]
 *                 ret = d
 */
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":376
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)
 *                     if var.dims:             # <<<<<<<<<<<<<<
 *                         d[v] = CyLPSolution()
 *                         dimRanges = [range(i) for i in var.dims]
 */
      }

      /* "cylp/cy/CyClpSimplex.pyx":373
 *                 inds = m.inds
 *                 d = {}
 *                 for v in inds.varIndex.keys():             # <<<<<<<<<<<<<<
 *                     d[v] = ret[inds.varIndex[v]]
 *                     var = m.getVarByName(v)
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":381
 *                         for element in product(*dimRanges):
 *                             d[v][element] = ret[var.__getitem__(element).indices[0]]
 *                 ret = d             # <<<<<<<<<<<<<<
 *             else:
 *                 names = self.variableNames
 */
    __Pyx_INCREF(__pyx_v_d);
    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);

    /* "cylp/cy/CyClpSimplex.pyx":369
 *         def __get__(self):
 *             ret = <object>self.CppSelf.getDualColumnSolution()
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 m = self.cyLPModel
 *                 inds = m.inds
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":383
 *                 ret = d
 *             else:
 *                 names = self.variableNames             # <<<<<<<<<<<<<<
 *                 if names:
 *                     d = CyLPSolution()
 */
  /*else*/ {
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_names = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":384
 *             else:
 *                 names = self.variableNames
 *                 if names:             # <<<<<<<<<<<<<<
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_names); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 384, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "cylp/cy/CyClpSimplex.pyx":385
 *                 names = self.variableNames
 *                 if names:
 *                     d = CyLPSolution()             # <<<<<<<<<<<<<<
 *                     for i in range(len(names)):
 *                         d[names[i]] = ret[i]
 */
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 385, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 385, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_v_d = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":386
 *                 if names:
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):             # <<<<<<<<<<<<<<
 *                         d[names[i]] = ret[i]
 *                     ret = d
 */
      __pyx_t_6 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 386, __pyx_L1_error)
      __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 386, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_5 = __pyx_t_8; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
        __pyx_t_7 = NULL;
      } else {
        __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_7)) {
          if (likely(PyList_CheckExact(__pyx_t_5))) {
            if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_7(__pyx_t_5);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 386, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8);
        __pyx_t_8 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":387
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):
 *                         d[names[i]] = ret[i]             # <<<<<<<<<<<<<<
 *                     ret = d
 *             return ret
 */
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 387, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 387, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_t_2, __pyx_t_8) < 0)) __PYX_ERR(0, 387, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":386
 *                 if names:
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):             # <<<<<<<<<<<<<<
 *                         d[names[i]] = ret[i]
 *                     ret = d
 */
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":388
 *                     for i in range(len(names)):
 *                         d[names[i]] = ret[i]
 *                     ret = d             # <<<<<<<<<<<<<<
 *             return ret
 * 
 */
      __Pyx_INCREF(__pyx_v_d);
      __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);

      /* "cylp/cy/CyClpSimplex.pyx":384
 *             else:
 *                 names = self.variableNames
 *                 if names:             # <<<<<<<<<<<<<<
 *                     d = CyLPSolution()
 *                     for i in range(len(names)):
 */
    }
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":389
 *                         d[names[i]] = ret[i]
 *                     ret = d
 *             return ret             # <<<<<<<<<<<<<<
 * 
 *     property primalConstraintSolution:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":367
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             ret = <object>self.CppSelf.getDualColumnSolution()
 *             if self.cyLPModel:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualVariableSolution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_v);
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_dimRanges);
  __Pyx_XDECREF(__pyx_v_element);
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":397
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             ret = <object>self.CppSelf.getPrimalRowSolution()
 *             if self.cyLPModel:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 397, 0, __PYX_ERR(0, 397, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":398
 *         '''
 *         def __get__(self):
 *             ret = <object>self.CppSelf.getPrimalRowSolution()             # <<<<<<<<<<<<<<
 *             if self.cyLPModel:
 *                 m = self.cyLPModel
 */
  __pyx_t_1 = __pyx_v_self->CppSelf->getPrimalRowSolution();
  __pyx_t_2 = ((PyObject *)__pyx_t_1);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_ret = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":399
 *         def __get__(self):
 *             ret = <object>self.CppSelf.getPrimalRowSolution()
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 m = self.cyLPModel
 *                 inds = m.inds
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 399, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "cylp/cy/CyClpSimplex.pyx":400
 *             ret = <object>self.CppSelf.getPrimalRowSolution()
 *             if self.cyLPModel:
 *                 m = self.cyLPModel             # <<<<<<<<<<<<<<
 *                 inds = m.inds
 *                 d = {}
 */
    __pyx_t_2 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_m = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":401
 *             if self.cyLPModel:
 *                 m = self.cyLPModel
 *                 inds = m.inds             # <<<<<<<<<<<<<<
 *                 d = {}
 *                 for c in inds.constIndex.keys():
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_inds = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":402
 *                 m = self.cyLPModel
 *                 inds = m.inds
 *                 d = {}             # <<<<<<<<<<<<<<
 *                 for c in inds.constIndex.keys():
 *                     d[c] = ret[inds.constIndex[c]]
 */
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 402, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_d = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":403
 *                 inds = m.inds
 *                 d = {}
 *                 for c in inds.constIndex.keys():             # <<<<<<<<<<<<<<
 *                     d[c] = ret[inds.constIndex[c]]
 *                 ret = d
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 403, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 403, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 403, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 403, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":404
 *                 d = {}
 *                 for c in inds.constIndex.keys():
 *                     d[c] = ret[inds.constIndex[c]]             # <<<<<<<<<<<<<<
 *                 ret = d
 *             else:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 404, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 404, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_d, __pyx_v_c, __pyx_t_2) < 0)) __PYX_ERR(0, 404, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":403
 *                 inds = m.inds
 *                 d = {}
 *                 for c in inds.constIndex.keys():             # <<<<<<<<<<<<<<
 *                     d[c] = ret[inds.constIndex[c]]
 *                 ret = d
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":405
 *                 for c in inds.constIndex.keys():
 *                     d[c] = ret[inds.constIndex[c]]
 *                 ret = d             # <<<<<<<<<<<<<<
 *             else:
 *                 pass
 */
    __Pyx_INCREF(__pyx_v_d);
    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);

    /* "cylp/cy/CyClpSimplex.pyx":399
 *         def __get__(self):
 *             ret = <object>self.CppSelf.getPrimalRowSolution()
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 m = self.cyLPModel
 *                 inds = m.inds
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":407
 *                 ret = d
 *             else:
 *                 pass             # <<<<<<<<<<<<<<
 *                 #names = self.variableNames
 *                 #if names:
 */
  /*else*/ {
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":414
 *                 #        d[names[i]] = ret[i]
 *                 #    ret = d
 *             return ret             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":397
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             ret = <object>self.CppSelf.getPrimalRowSolution()
 *             if self.cyLPModel:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalConstraintSolution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":423
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             ret =  <object>self.CppSelf.getDualRowSolution()
 *             if self.cyLPModel:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 423, 0, __PYX_ERR(0, 423, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":424
 *         '''
 *         def __get__(self):
 *             ret =  <object>self.CppSelf.getDualRowSolution()             # <<<<<<<<<<<<<<
 *             if self.cyLPModel:
 *                 m = self.cyLPModel
 */
  __pyx_t_1 = __pyx_v_self->CppSelf->getDualRowSolution();
  __pyx_t_2 = ((PyObject *)__pyx_t_1);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_ret = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":425
 *         def __get__(self):
 *             ret =  <object>self.CppSelf.getDualRowSolution()
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 m = self.cyLPModel
 *                 inds = m.inds
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "cylp/cy/CyClpSimplex.pyx":426
 *             ret =  <object>self.CppSelf.getDualRowSolution()
 *             if self.cyLPModel:
 *                 m = self.cyLPModel             # <<<<<<<<<<<<<<
 *                 inds = m.inds
 *                 d = {}
 */
    __pyx_t_2 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_m = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":427
 *             if self.cyLPModel:
 *                 m = self.cyLPModel
 *                 inds = m.inds             # <<<<<<<<<<<<<<
 *                 d = {}
 *                 for c in inds.constIndex.keys():
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_inds = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":428
 *                 m = self.cyLPModel
 *                 inds = m.inds
 *                 d = {}             # <<<<<<<<<<<<<<
 *                 for c in inds.constIndex.keys():
 *                     d[c] = ret[inds.constIndex[c]]
 */
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_d = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":429
 *                 inds = m.inds
 *                 d = {}
 *                 for c in inds.constIndex.keys():             # <<<<<<<<<<<<<<
 *                     d[c] = ret[inds.constIndex[c]]
 *                 ret = d
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 429, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 429, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 429, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":430
 *                 d = {}
 *                 for c in inds.constIndex.keys():
 *                     d[c] = ret[inds.constIndex[c]]             # <<<<<<<<<<<<<<
 *                 ret = d
 *             else:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_d, __pyx_v_c, __pyx_t_2) < 0)) __PYX_ERR(0, 430, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":429
 *                 inds = m.inds
 *                 d = {}
 *                 for c in inds.constIndex.keys():             # <<<<<<<<<<<<<<
 *                     d[c] = ret[inds.constIndex[c]]
 *                 ret = d
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":431
 *                 for c in inds.constIndex.keys():
 *                     d[c] = ret[inds.constIndex[c]]
 *                 ret = d             # <<<<<<<<<<<<<<
 *             else:
 *                 pass
 */
    __Pyx_INCREF(__pyx_v_d);
    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d);

    /* "cylp/cy/CyClpSimplex.pyx":425
 *         def __get__(self):
 *             ret =  <object>self.CppSelf.getDualRowSolution()
 *             if self.cyLPModel:             # <<<<<<<<<<<<<<
 *                 m = self.cyLPModel
 *                 inds = m.inds
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":433
 *                 ret = d
 *             else:
 *                 pass             # <<<<<<<<<<<<<<
 *                 #names = self.variableNames
 *                 #if names:
 */
  /*else*/ {
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":440
 *                 #        d[names[i]] = ret[i]
 *                 #    ret = d
 *             return ret             # <<<<<<<<<<<<<<
 * 
 *     property reducedCosts:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":423
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             ret =  <object>self.CppSelf.getDualRowSolution()
 *             if self.cyLPModel:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualConstraintSolution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":448
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.getReducedCosts()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 448, 0, __PYX_ERR(0, 448, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":449
 *         '''
 *         def __get__(self):
 *             return self.getReducedCosts()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, np.ndarray[np.double_t, ndim=1] rc):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":448
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.getReducedCosts()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.reducedCosts.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":451
 *             return self.getReducedCosts()
 * 
 *         def __set__(self, np.ndarray[np.double_t, ndim=1] rc):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setReducedCosts(<double*> rc.data)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_rc); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_rc) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rc), __pyx_ptype_5numpy_ndarray, 1, "rc", 0))) __PYX_ERR(0, 451, __pyx_L1_error)
  __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));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rc;
  __Pyx_Buffer __pyx_pybuffer_rc;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 451, 0, __PYX_ERR(0, 451, __pyx_L1_error));
  __pyx_pybuffer_rc.pybuffer.buf = NULL;
  __pyx_pybuffer_rc.refcount = 0;
  __pyx_pybuffernd_rc.data = NULL;
  __pyx_pybuffernd_rc.rcbuffer = &__pyx_pybuffer_rc;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":452
 * 
 *         def __set__(self, np.ndarray[np.double_t, ndim=1] rc):
 *             self.CppSelf.setReducedCosts(<double*> rc.data)             # <<<<<<<<<<<<<<
 * 
 *     cpdef getReducedCosts(self):
 */
  __pyx_v_self->CppSelf->setReducedCosts(((double *)__pyx_v_rc->data));

  /* "cylp/cy/CyClpSimplex.pyx":451
 *             return self.getReducedCosts()
 * 
 *         def __set__(self, np.ndarray[np.double_t, ndim=1] rc):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setReducedCosts(<double*> rc.data)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rc.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.reducedCosts.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rc.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":454
 *             self.CppSelf.setReducedCosts(<double*> rc.data)
 * 
 *     cpdef getReducedCosts(self):             # <<<<<<<<<<<<<<
 *         return <object>self.CppSelf.getReducedCosts()
 * 
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getReducedCosts(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getReducedCosts", 0);
  __Pyx_TraceCall("getReducedCosts", __pyx_f[0], 454, 0, __PYX_ERR(0, 454, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 454, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":455
 * 
 *     cpdef getReducedCosts(self):
 *         return <object>self.CppSelf.getReducedCosts()             # <<<<<<<<<<<<<<
 * 
 *     property objectiveOffset:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __pyx_v_self->CppSelf->getReducedCosts();
  __Pyx_INCREF(((PyObject *)__pyx_t_5));
  __pyx_r = ((PyObject *)__pyx_t_5);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":454
 *             self.CppSelf.setReducedCosts(<double*> rc.data)
 * 
 *     cpdef getReducedCosts(self):             # <<<<<<<<<<<<<<
 *         return <object>self.CppSelf.getReducedCosts()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getReducedCosts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts[] = "CyClpSimplex.getReducedCosts(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getReducedCosts (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getReducedCosts", 0);
  __Pyx_TraceCall("getReducedCosts (wrapper)", __pyx_f[0], 454, 0, __PYX_ERR(0, 454, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getReducedCosts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":461
 *         The constant value in the objective function. A float.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.objectiveOffset()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 461, 0, __PYX_ERR(0, 461, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":462
 *         '''
 *         def __get__(self):
 *             return self.CppSelf.objectiveOffset()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->objectiveOffset()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":461
 *         The constant value in the objective function. A float.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.objectiveOffset()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveOffset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":464
 *             return self.CppSelf.objectiveOffset()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setObjectiveOffset(value)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 464, 0, __PYX_ERR(0, 464, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":465
 * 
 *         def __set__(self, value):
 *             self.CppSelf.setObjectiveOffset(value)             # <<<<<<<<<<<<<<
 * 
 *     property variablesUpper:
 */
  __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)
  __pyx_v_self->CppSelf->setObjectiveOffset(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":464
 *             return self.CppSelf.objectiveOffset()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setObjectiveOffset(value)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.objectiveOffset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":473
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getColUpper()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 473, 0, __PYX_ERR(0, 473, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":474
 *         '''
 *         def __get__(self):
 *             return <object>self.CppSelf.getColUpper()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, upperArray):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getColUpper();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":473
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getColUpper()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variablesUpper.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":476
 *             return <object>self.CppSelf.getColUpper()
 * 
 *         def __set__(self, upperArray):             # <<<<<<<<<<<<<<
 *             self.setColumnUpperFirstElements(upperArray)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_upperArray); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_upperArray) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 476, 0, __PYX_ERR(0, 476, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":477
 * 
 *         def __set__(self, upperArray):
 *             self.setColumnUpperFirstElements(upperArray)             # <<<<<<<<<<<<<<
 * 
 *     property variablesLower:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":476
 *             return <object>self.CppSelf.getColUpper()
 * 
 *         def __set__(self, upperArray):             # <<<<<<<<<<<<<<
 *             self.setColumnUpperFirstElements(upperArray)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variablesUpper.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":485
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getColLower()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 485, 0, __PYX_ERR(0, 485, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":486
 *         '''
 *         def __get__(self):
 *             return <object>self.CppSelf.getColLower()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, lowerArray):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getColLower();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":485
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getColLower()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variablesLower.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":488
 *             return <object>self.CppSelf.getColLower()
 * 
 *         def __set__(self, lowerArray):             # <<<<<<<<<<<<<<
 *             self.setColumnLowerFirstElements(lowerArray)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_lowerArray); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_lowerArray) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 488, 0, __PYX_ERR(0, 488, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":489
 * 
 *         def __set__(self, lowerArray):
 *             self.setColumnLowerFirstElements(lowerArray)             # <<<<<<<<<<<<<<
 * 
 *     property constraintsUpper:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":488
 *             return <object>self.CppSelf.getColLower()
 * 
 *         def __set__(self, lowerArray):             # <<<<<<<<<<<<<<
 *             self.setColumnLowerFirstElements(lowerArray)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variablesLower.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":497
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getRowUpper()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 497, 0, __PYX_ERR(0, 497, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":498
 *         '''
 *         def __get__(self):
 *             return <object>self.CppSelf.getRowUpper()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, upperArray):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getRowUpper();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":497
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getRowUpper()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintsUpper.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":500
 *             return <object>self.CppSelf.getRowUpper()
 * 
 *         def __set__(self, upperArray):             # <<<<<<<<<<<<<<
 *             self.setRowUpperArray(upperArray)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_upperArray); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_upperArray) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 500, 0, __PYX_ERR(0, 500, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":501
 * 
 *         def __set__(self, upperArray):
 *             self.setRowUpperArray(upperArray)             # <<<<<<<<<<<<<<
 * 
 *     property constraintsLower:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":500
 *             return <object>self.CppSelf.getRowUpper()
 * 
 *         def __set__(self, upperArray):             # <<<<<<<<<<<<<<
 *             self.setRowUpperArray(upperArray)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintsUpper.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":509
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getRowLower()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 509, 0, __PYX_ERR(0, 509, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":510
 *         '''
 *         def __get__(self):
 *             return <object>self.CppSelf.getRowLower()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, lowerArray):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getRowLower();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":509
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getRowLower()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintsLower.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":512
 *             return <object>self.CppSelf.getRowLower()
 * 
 *         def __set__(self, lowerArray):             # <<<<<<<<<<<<<<
 *             self.setRowLowerArray(lowerArray)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_lowerArray); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_lowerArray) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 512, 0, __PYX_ERR(0, 512, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":513
 * 
 *         def __set__(self, lowerArray):
 *             self.setRowLowerArray(lowerArray)             # <<<<<<<<<<<<<<
 * 
 *     property lower:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":512
 *             return <object>self.CppSelf.getRowLower()
 * 
 *         def __set__(self, lowerArray):             # <<<<<<<<<<<<<<
 *             self.setRowLowerArray(lowerArray)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintsLower.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":521
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getLower()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 521, 0, __PYX_ERR(0, 521, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":522
 *         '''
 *         def __get__(self):
 *             return <object>self.CppSelf.getLower()             # <<<<<<<<<<<<<<
 * 
 *     property upper:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getLower();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":521
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getLower()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.lower.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":530
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getUpper()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 530, 0, __PYX_ERR(0, 530, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":531
 *         '''
 *         def __get__(self):
 *             return <object>self.CppSelf.getUpper()             # <<<<<<<<<<<<<<
 * 
 *     property variableScale:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getUpper();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":530
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getUpper()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.upper.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":539
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getColumnScale()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 539, 0, __PYX_ERR(0, 539, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":540
 *         '''
 *         def __get__(self):
 *             return <object>self.CppSelf.getColumnScale()             # <<<<<<<<<<<<<<
 * 
 *     property constraintScale:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getColumnScale();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":539
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getColumnScale()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.variableScale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":548
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getRowScale()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 548, 0, __PYX_ERR(0, 548, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":549
 *         '''
 *         def __get__(self):
 *             return <object>self.CppSelf.getRowScale()             # <<<<<<<<<<<<<<
 * 
 *     property integerInformation:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getRowScale();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":548
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getRowScale()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.constraintScale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":558
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getIntegerInformation()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 558, 0, __PYX_ERR(0, 558, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":559
 *         '''
 *         def __get__(self):
 *             return <object>self.CppSelf.getIntegerInformation()             # <<<<<<<<<<<<<<
 * 
 *     property status:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->CppSelf->getIntegerInformation();
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":558
 *         :rtype: Numpy array
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return <object>self.CppSelf.getIntegerInformation()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.integerInformation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":565
 *         A Numpy array of all the variables' status
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.getStatusArray()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 565, 0, __PYX_ERR(0, 565, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":566
 *         '''
 *         def __get__(self):
 *             return self.getStatusArray()             # <<<<<<<<<<<<<<
 * 
 *     cpdef getStatusArray(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":565
 *         A Numpy array of all the variables' status
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.getStatusArray()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.status.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":568
 *             return self.getStatusArray()
 * 
 *     cpdef getStatusArray(self):             # <<<<<<<<<<<<<<
 *         return <object>self.CppSelf.getStatusArray()
 * 
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getStatusArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getStatusArray", 0);
  __Pyx_TraceCall("getStatusArray", __pyx_f[0], 568, 0, __PYX_ERR(0, 568, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 568, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":569
 * 
 *     cpdef getStatusArray(self):
 *         return <object>self.CppSelf.getStatusArray()             # <<<<<<<<<<<<<<
 * 
 *     property freeOrSuperBasicVarInds:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __pyx_v_self->CppSelf->getStatusArray();
  __Pyx_INCREF(((PyObject *)__pyx_t_5));
  __pyx_r = ((PyObject *)__pyx_t_5);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":568
 *             return self.getStatusArray()
 * 
 *     cpdef getStatusArray(self):             # <<<<<<<<<<<<<<
 *         return <object>self.CppSelf.getStatusArray()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getStatusArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray[] = "CyClpSimplex.getStatusArray(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getStatusArray (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getStatusArray", 0);
  __Pyx_TraceCall("getStatusArray (wrapper)", __pyx_f[0], 568, 0, __PYX_ERR(0, 568, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getStatusArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":575
 *         The index set of variables that are *free* or *superbasic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return np.where((status & 7 == 4) | (status & 7 == 0))[0]
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 575, 0, __PYX_ERR(0, 575, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":576
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return np.where((status & 7 == 4) | (status & 7 == 0))[0]
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":577
 *         def __get__(self):
 *             status = self.status
 *             return np.where((status & 7 == 4) | (status & 7 == 0))[0]             # <<<<<<<<<<<<<<
 * 
 *     property notBasicOrFixedOrFlaggedVarInds:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Or(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":575
 *         The index set of variables that are *free* or *superbasic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return np.where((status & 7 == 4) | (status & 7 == 0))[0]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.freeOrSuperBasicVarInds.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":583
 *         The index set of variables that are not *basic* or *fixed*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return np.where((status & 7 != 1) &
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 583, 0, __PYX_ERR(0, 583, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":584
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return np.where((status & 7 != 1) &
 *                             (status & 7 != 5) &
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":585
 *         def __get__(self):
 *             status = self.status
 *             return np.where((status & 7 != 1) &             # <<<<<<<<<<<<<<
 *                             (status & 7 != 5) &
 *                             (status & 64 == 0))[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":586
 *             status = self.status
 *             return np.where((status & 7 != 1) &
 *                             (status & 7 != 5) &             # <<<<<<<<<<<<<<
 *                             (status & 64 == 0))[0]
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":585
 *         def __get__(self):
 *             status = self.status
 *             return np.where((status & 7 != 1) &             # <<<<<<<<<<<<<<
 *                             (status & 7 != 5) &
 *                             (status & 64 == 0))[0]
 */
  __pyx_t_2 = PyNumber_And(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":587
 *             return np.where((status & 7 != 1) &
 *                             (status & 7 != 5) &
 *                             (status & 64 == 0))[0]             # <<<<<<<<<<<<<<
 * 
 *     property varIsFree:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":586
 *             status = self.status
 *             return np.where((status & 7 != 1) &
 *                             (status & 7 != 5) &             # <<<<<<<<<<<<<<
 *                             (status & 64 == 0))[0]
 * 
 */
  __pyx_t_5 = PyNumber_And(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":587
 *             return np.where((status & 7 != 1) &
 *                             (status & 7 != 5) &
 *                             (status & 64 == 0))[0]             # <<<<<<<<<<<<<<
 * 
 *     property varIsFree:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":583
 *         The index set of variables that are not *basic* or *fixed*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return np.where((status & 7 != 1) &
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.notBasicOrFixedOrFlaggedVarInds.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":593
 *         The index set of variables that are *free*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 0)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 593, 0, __PYX_ERR(0, 593, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":594
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 == 0)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":595
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 == 0)             # <<<<<<<<<<<<<<
 * 
 *     property varIsBasic:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":593
 *         The index set of variables that are *free*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 0)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsFree.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":601
 *         The index set of variables that are *basic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 1)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 601, 0, __PYX_ERR(0, 601, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":602
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 == 1)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":603
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 == 1)             # <<<<<<<<<<<<<<
 * 
 *     property varIsAtUpperBound:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":601
 *         The index set of variables that are *basic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 1)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsBasic.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":609
 *         The index set of variables that are at their upper bound.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 2)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 609, 0, __PYX_ERR(0, 609, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":610
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 == 2)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":611
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 == 2)             # <<<<<<<<<<<<<<
 * 
 *     property varIsAtLowerBound:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":609
 *         The index set of variables that are at their upper bound.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 2)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsAtUpperBound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":617
 *         The index set of variables that are at their lower bound.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 3)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 617, 0, __PYX_ERR(0, 617, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":618
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 == 3)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":619
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 == 3)             # <<<<<<<<<<<<<<
 * 
 *     property varIsSuperBasic:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":617
 *         The index set of variables that are at their lower bound.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 3)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsAtLowerBound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":625
 *         The index set of variables that are *superbasic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 4)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 625, 0, __PYX_ERR(0, 625, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":626
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 == 4)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":627
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 == 4)             # <<<<<<<<<<<<<<
 * 
 *     property varIsFixed:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":625
 *         The index set of variables that are *superbasic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 4)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsSuperBasic.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":633
 *         The index set of variables that are *fixed*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 5)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 633, 0, __PYX_ERR(0, 633, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":634
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 == 5)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":635
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 == 5)             # <<<<<<<<<<<<<<
 * 
 *     property varIsFlagged:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":633
 *         The index set of variables that are *fixed*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 == 5)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsFixed.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":641
 *         The index set of variables that are *flagged*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 64 != 0)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 641, 0, __PYX_ERR(0, 641, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":642
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 64 != 0)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":643
 *         def __get__(self):
 *             status = self.status
 *             return (status & 64 != 0)             # <<<<<<<<<<<<<<
 * 
 *     property varNotFree:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":641
 *         The index set of variables that are *flagged*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 64 != 0)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varIsFlagged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":649
 *         The index set of variables that are NOT *free*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 0)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 649, 0, __PYX_ERR(0, 649, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":650
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 != 0)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":651
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 != 0)             # <<<<<<<<<<<<<<
 * 
 *     property varNotBasic:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":649
 *         The index set of variables that are NOT *free*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 0)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotFree.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":657
 *         The index set of variables that are NOT *basic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 1)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 657, 0, __PYX_ERR(0, 657, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":658
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 != 1)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":659
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 != 1)             # <<<<<<<<<<<<<<
 * 
 *     property varNotAtUpperBound:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":657
 *         The index set of variables that are NOT *basic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 1)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotBasic.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":665
 *         The index set of variables that are NOT at their upper bound.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 2)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 665, 0, __PYX_ERR(0, 665, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":666
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 != 2)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":667
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 != 2)             # <<<<<<<<<<<<<<
 * 
 *     property varNotAtLowerBound:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":665
 *         The index set of variables that are NOT at their upper bound.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 2)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotAtUpperBound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":673
 *         The index set of variables that are NOT at their lower bound.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 3)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 673, 0, __PYX_ERR(0, 673, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":674
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 != 3)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":675
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 != 3)             # <<<<<<<<<<<<<<
 * 
 *     property varNotSuperBasic:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":673
 *         The index set of variables that are NOT at their lower bound.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 3)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotAtLowerBound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":681
 *         The index set of variables that are NOT *superbasic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 4)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 681, 0, __PYX_ERR(0, 681, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":682
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 != 4)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":683
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 != 4)             # <<<<<<<<<<<<<<
 * 
 *     property varNotFixed:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":681
 *         The index set of variables that are NOT *superbasic*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 4)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotSuperBasic.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":689
 *         The index set of variables that are NOT *fixed*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 5)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 689, 0, __PYX_ERR(0, 689, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":690
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 7 != 5)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":691
 *         def __get__(self):
 *             status = self.status
 *             return (status & 7 != 5)             # <<<<<<<<<<<<<<
 * 
 *     property varNotFlagged:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":689
 *         The index set of variables that are NOT *fixed*.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 7 != 5)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotFixed.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":697
 *         The index set of variables that are NOT flagged.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 64 == 0)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 697, 0, __PYX_ERR(0, 697, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":698
 *         '''
 *         def __get__(self):
 *             status = self.status             # <<<<<<<<<<<<<<
 *             return (status & 64 == 0)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_status = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":699
 *         def __get__(self):
 *             status = self.status
 *             return (status & 64 == 0)             # <<<<<<<<<<<<<<
 * 
 *     property Hessian:
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":697
 *         The index set of variables that are NOT flagged.
 *         '''
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             status = self.status
 *             return (status & 64 == 0)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.varNotFlagged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":702
 * 
 *     property Hessian:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self._Hessian
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 702, 0, __PYX_ERR(0, 702, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":703
 *     property Hessian:
 *         def __get__(self):
 *             return self._Hessian             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, mat):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_Hessian);
  __pyx_r = __pyx_v_self->_Hessian;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":702
 * 
 *     property Hessian:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self._Hessian
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.Hessian.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":705
 *             return self._Hessian
 * 
 *         def __set__(self, mat):             # <<<<<<<<<<<<<<
 *             m = None
 *             try:
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mat) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_m = NULL;
  struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_coinMat = NULL;
  PyObject *__pyx_v_n = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_i = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 705, 0, __PYX_ERR(0, 705, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":706
 * 
 *         def __set__(self, mat):
 *             m = None             # <<<<<<<<<<<<<<
 *             try:
 *                 m = mat.tocoo()
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_m = Py_None;

  /* "cylp/cy/CyClpSimplex.pyx":707
 *         def __set__(self, mat):
 *             m = None
 *             try:             # <<<<<<<<<<<<<<
 *                 m = mat.tocoo()
 *             except:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "cylp/cy/CyClpSimplex.pyx":708
 *             m = None
 *             try:
 *                 m = mat.tocoo()             # <<<<<<<<<<<<<<
 *             except:
 *                 raise Exception('Hessian can be set to a matrix that ' \
 */
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 708, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_m, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":707
 *         def __set__(self, mat):
 *             m = None
 *             try:             # <<<<<<<<<<<<<<
 *                 m = mat.tocoo()
 *             except:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":709
 *             try:
 *                 m = mat.tocoo()
 *             except:             # <<<<<<<<<<<<<<
 *                 raise Exception('Hessian can be set to a matrix that ' \
 *                                             'implements *tocoo* method')
 */
    /*except:*/ {
      __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.Hessian.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(0, 709, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);

      /* "cylp/cy/CyClpSimplex.pyx":710
 *                 m = mat.tocoo()
 *             except:
 *                 raise Exception('Hessian can be set to a matrix that ' \             # <<<<<<<<<<<<<<
 *                                             'implements *tocoo* method')
 *             if m:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_Raise(__pyx_t_7, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __PYX_ERR(0, 710, __pyx_L5_except_error)
    }
    __pyx_L5_except_error:;

    /* "cylp/cy/CyClpSimplex.pyx":707
 *         def __set__(self, mat):
 *             m = None
 *             try:             # <<<<<<<<<<<<<<
 *                 m = mat.tocoo()
 *             except:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "cylp/cy/CyClpSimplex.pyx":712
 *                 raise Exception('Hessian can be set to a matrix that ' \
 *                                             'implements *tocoo* method')
 *             if m:             # <<<<<<<<<<<<<<
 *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
 *                 n = self.nVariables
 */
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_m); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 712, __pyx_L1_error)
  if (__pyx_t_8) {

    /* "cylp/cy/CyClpSimplex.pyx":713
 *                                             'implements *tocoo* method')
 *             if m:
 *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)             # <<<<<<<<<<<<<<
 *                 n = self.nVariables
 *                 if coinMat.majorDim < n:
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(Py_True);
    __Pyx_GIVEREF(Py_True);
    PyTuple_SET_ITEM(__pyx_t_7, 0, Py_True);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4);
    __pyx_t_6 = 0;
    __pyx_t_5 = 0;
    __pyx_t_4 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_v_coinMat = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":714
 *             if m:
 *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
 *                 n = self.nVariables             # <<<<<<<<<<<<<<
 *                 if coinMat.majorDim < n:
 *                     for i in xrange(n - coinMat.majorDim):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_n = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":715
 *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
 *                 n = self.nVariables
 *                 if coinMat.majorDim < n:             # <<<<<<<<<<<<<<
 *                     for i in xrange(n - coinMat.majorDim):
 *                         coinMat.appendCol()
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 715, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_8) {

      /* "cylp/cy/CyClpSimplex.pyx":716
 *                 n = self.nVariables
 *                 if coinMat.majorDim < n:
 *                     for i in xrange(n - coinMat.majorDim):             # <<<<<<<<<<<<<<
 *                         coinMat.appendCol()
 *                 if coinMat.minorDim < n:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = PyNumber_Subtract(__pyx_v_n, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 716, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 716, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 716, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 716, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_10(__pyx_t_4);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 716, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":717
 *                 if coinMat.majorDim < n:
 *                     for i in xrange(n - coinMat.majorDim):
 *                         coinMat.appendCol()             # <<<<<<<<<<<<<<
 *                 if coinMat.minorDim < n:
 *                     for i in xrange(n - coinMat.majorDim):
 */
        __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)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
          }
        }
        __pyx_t_7 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 717, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":716
 *                 n = self.nVariables
 *                 if coinMat.majorDim < n:
 *                     for i in xrange(n - coinMat.majorDim):             # <<<<<<<<<<<<<<
 *                         coinMat.appendCol()
 *                 if coinMat.minorDim < n:
 */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":715
 *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
 *                 n = self.nVariables
 *                 if coinMat.majorDim < n:             # <<<<<<<<<<<<<<
 *                     for i in xrange(n - coinMat.majorDim):
 *                         coinMat.appendCol()
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":718
 *                     for i in xrange(n - coinMat.majorDim):
 *                         coinMat.appendCol()
 *                 if coinMat.minorDim < n:             # <<<<<<<<<<<<<<
 *                     for i in xrange(n - coinMat.majorDim):
 *                         coinMat.appendRow()
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 718, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_8) {

      /* "cylp/cy/CyClpSimplex.pyx":719
 *                         coinMat.appendCol()
 *                 if coinMat.minorDim < n:
 *                     for i in xrange(n - coinMat.majorDim):             # <<<<<<<<<<<<<<
 *                         coinMat.appendRow()
 *                 self._Hessian = m
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = PyNumber_Subtract(__pyx_v_n, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 719, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 719, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_10(__pyx_t_4);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 719, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":720
 *                 if coinMat.minorDim < n:
 *                     for i in xrange(n - coinMat.majorDim):
 *                         coinMat.appendRow()             # <<<<<<<<<<<<<<
 *                 self._Hessian = m
 *             self.loadQuadraticObjective(coinMat)
 */
        __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)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
          }
        }
        __pyx_t_7 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 720, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":719
 *                         coinMat.appendCol()
 *                 if coinMat.minorDim < n:
 *                     for i in xrange(n - coinMat.majorDim):             # <<<<<<<<<<<<<<
 *                         coinMat.appendRow()
 *                 self._Hessian = m
 */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":718
 *                     for i in xrange(n - coinMat.majorDim):
 *                         coinMat.appendCol()
 *                 if coinMat.minorDim < n:             # <<<<<<<<<<<<<<
 *                     for i in xrange(n - coinMat.majorDim):
 *                         coinMat.appendRow()
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":721
 *                     for i in xrange(n - coinMat.majorDim):
 *                         coinMat.appendRow()
 *                 self._Hessian = m             # <<<<<<<<<<<<<<
 *             self.loadQuadraticObjective(coinMat)
 * 
 */
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    __Pyx_GOTREF(__pyx_v_self->_Hessian);
    __Pyx_DECREF(__pyx_v_self->_Hessian);
    __pyx_v_self->_Hessian = __pyx_v_m;

    /* "cylp/cy/CyClpSimplex.pyx":712
 *                 raise Exception('Hessian can be set to a matrix that ' \
 *                                             'implements *tocoo* method')
 *             if m:             # <<<<<<<<<<<<<<
 *                 coinMat = CyCoinPackedMatrix(True, m.row, m.col, m.data)
 *                 n = self.nVariables
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":722
 *                         coinMat.appendRow()
 *                 self._Hessian = m
 *             self.loadQuadraticObjective(coinMat)             # <<<<<<<<<<<<<<
 * 
 *     property dualTolerance:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(!__pyx_v_coinMat)) { __Pyx_RaiseUnboundLocalError("coinMat"); __PYX_ERR(0, 722, __pyx_L1_error) }
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __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));
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":705
 *             return self._Hessian
 * 
 *         def __set__(self, mat):             # <<<<<<<<<<<<<<
 *             m = None
 *             try:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.Hessian.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF((PyObject *)__pyx_v_coinMat);
  __Pyx_XDECREF(__pyx_v_n);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":725
 * 
 *     property dualTolerance:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.dualTolerance()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 725, 0, __PYX_ERR(0, 725, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":726
 *     property dualTolerance:
 *         def __get__(self):
 *             return self.CppSelf.dualTolerance()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->dualTolerance()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":725
 * 
 *     property dualTolerance:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.dualTolerance()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualTolerance.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":728
 *             return self.CppSelf.dualTolerance()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *            self.CppSelf.setDualTolerance(value)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 728, 0, __PYX_ERR(0, 728, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":729
 * 
 *         def __set__(self, value):
 *            self.CppSelf.setDualTolerance(value)             # <<<<<<<<<<<<<<
 * 
 *     property primalTolerance:
 */
  __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)
  __pyx_v_self->CppSelf->setDualTolerance(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":728
 *             return self.CppSelf.dualTolerance()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *            self.CppSelf.setDualTolerance(value)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualTolerance.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":732
 * 
 *     property primalTolerance:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.primalTolerance()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 732, 0, __PYX_ERR(0, 732, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":733
 *     property primalTolerance:
 *         def __get__(self):
 *             return self.CppSelf.primalTolerance()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->primalTolerance()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":732
 * 
 *     property primalTolerance:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.primalTolerance()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalTolerance.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":735
 *             return self.CppSelf.primalTolerance()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *            self.CppSelf.setPrimalTolerance(value)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 735, 0, __PYX_ERR(0, 735, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":736
 * 
 *         def __set__(self, value):
 *            self.CppSelf.setPrimalTolerance(value)             # <<<<<<<<<<<<<<
 * 
 *     property maxNumIteration:
 */
  __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)
  __pyx_v_self->CppSelf->setPrimalTolerance(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":735
 *             return self.CppSelf.primalTolerance()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *            self.CppSelf.setPrimalTolerance(value)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalTolerance.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":739
 * 
 *     property maxNumIteration:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.maximumIterations()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 739, 0, __PYX_ERR(0, 739, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":740
 *     property maxNumIteration:
 *         def __get__(self):
 *             return self.CppSelf.maximumIterations()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->maximumIterations()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":739
 * 
 *     property maxNumIteration:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.maximumIterations()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.maxNumIteration.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":742
 *             return self.CppSelf.maximumIterations()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *            self.CppSelf.setMaxNumIteration(value)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 742, 0, __PYX_ERR(0, 742, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":743
 * 
 *         def __set__(self, value):
 *            self.CppSelf.setMaxNumIteration(value)             # <<<<<<<<<<<<<<
 * 
 *     property logLevel:
 */
  __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)
  __pyx_v_self->CppSelf->setMaxNumIteration(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":742
 *             return self.CppSelf.maximumIterations()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *            self.CppSelf.setMaxNumIteration(value)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.maxNumIteration.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":746
 * 
 *     property logLevel:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.logLevel()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 746, 0, __PYX_ERR(0, 746, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":747
 *     property logLevel:
 *         def __get__(self):
 *             return self.CppSelf.logLevel()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->logLevel()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":746
 * 
 *     property logLevel:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.logLevel()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.logLevel.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":749
 *             return self.CppSelf.logLevel()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setLogLevel(value)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 749, 0, __PYX_ERR(0, 749, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":750
 * 
 *         def __set__(self, value):
 *             self.CppSelf.setLogLevel(value)             # <<<<<<<<<<<<<<
 * 
 *     property automaticScaling:
 */
  __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)
  __pyx_v_self->CppSelf->setLogLevel(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":749
 *             return self.CppSelf.logLevel()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setLogLevel(value)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.logLevel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":753
 * 
 *     property automaticScaling:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.automaticScaling()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 753, 0, __PYX_ERR(0, 753, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":754
 *     property automaticScaling:
 *         def __get__(self):
 *             return self.CppSelf.automaticScaling()             # <<<<<<<<<<<<<<
 * 
 *         def __set__(self, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->automaticScaling()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":753
 * 
 *     property automaticScaling:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.automaticScaling()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.automaticScaling.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":756
 *             return self.CppSelf.automaticScaling()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setAutomaticScaling(value)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 756, 0, __PYX_ERR(0, 756, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":757
 * 
 *         def __set__(self, value):
 *             self.CppSelf.setAutomaticScaling(value)             # <<<<<<<<<<<<<<
 * 
 *     property scaling:
 */
  __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)
  __pyx_v_self->CppSelf->setAutomaticScaling(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":756
 *             return self.CppSelf.automaticScaling()
 * 
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setAutomaticScaling(value)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.automaticScaling.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":760
 * 
 *     property scaling:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.scalingFlag()
 *         def __set__(self, mode):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 760, 0, __PYX_ERR(0, 760, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":761
 *     property scaling:
 *         def __get__(self):
 *             return self.CppSelf.scalingFlag()             # <<<<<<<<<<<<<<
 *         def __set__(self, mode):
 *             self.CppSelf.scaling(mode)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->scalingFlag()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":760
 * 
 *     property scaling:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.scalingFlag()
 *         def __set__(self, mode):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.scaling.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":762
 *         def __get__(self):
 *             return self.CppSelf.scalingFlag()
 *         def __set__(self, mode):             # <<<<<<<<<<<<<<
 *             self.CppSelf.scaling(mode)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mode); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_mode) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 762, 0, __PYX_ERR(0, 762, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":763
 *             return self.CppSelf.scalingFlag()
 *         def __set__(self, mode):
 *             self.CppSelf.scaling(mode)             # <<<<<<<<<<<<<<
 * 
 *     property infeasibilityCost:
 */
  __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)
  __pyx_v_self->CppSelf->scaling(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":762
 *         def __get__(self):
 *             return self.CppSelf.scalingFlag()
 *         def __set__(self, mode):             # <<<<<<<<<<<<<<
 *             self.CppSelf.scaling(mode)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.scaling.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":766
 * 
 *     property infeasibilityCost:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.infeasibilityCost()
 *         def __set__(self, value):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 766, 0, __PYX_ERR(0, 766, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":767
 *     property infeasibilityCost:
 *         def __get__(self):
 *             return self.CppSelf.infeasibilityCost()             # <<<<<<<<<<<<<<
 *         def __set__(self, value):
 *             self.CppSelf.setInfeasibilityCost(value)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->infeasibilityCost()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":766
 * 
 *     property infeasibilityCost:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.infeasibilityCost()
 *         def __set__(self, value):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.infeasibilityCost.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":768
 *         def __get__(self):
 *             return self.CppSelf.infeasibilityCost()
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setInfeasibilityCost(value)
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 768, 0, __PYX_ERR(0, 768, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":769
 *             return self.CppSelf.infeasibilityCost()
 *         def __set__(self, value):
 *             self.CppSelf.setInfeasibilityCost(value)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __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)
  __pyx_v_self->CppSelf->setInfeasibilityCost(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":768
 *         def __get__(self):
 *             return self.CppSelf.infeasibilityCost()
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setInfeasibilityCost(value)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.infeasibilityCost.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":773
 * 
 *     property numberPrimalInfeasibilities:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.numberPrimalInfeasibilities()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 773, 0, __PYX_ERR(0, 773, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":774
 *     property numberPrimalInfeasibilities:
 *         def __get__(self):
 *             return self.CppSelf.numberPrimalInfeasibilities()             # <<<<<<<<<<<<<<
 * 
 *     property optimizationDirection:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->numberPrimalInfeasibilities()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":773
 * 
 *     property numberPrimalInfeasibilities:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.CppSelf.numberPrimalInfeasibilities()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.numberPrimalInfeasibilities.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":777
 * 
 *     property optimizationDirection:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
 *         def __set__(self, value):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection___get__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection___get__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_TraceCall("__get__", __pyx_f[0], 777, 0, __PYX_ERR(0, 777, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":778
 *     property optimizationDirection:
 *         def __get__(self):
 *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]             # <<<<<<<<<<<<<<
 *         def __set__(self, value):
 *             self.CppSelf.setOptimizationDirection({'ignore':0., 'min':1., 'max':-1.}[value])
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_ignore);
  __Pyx_GIVEREF(__pyx_n_s_ignore);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_ignore);
  __Pyx_INCREF(__pyx_n_s_min);
  __Pyx_GIVEREF(__pyx_n_s_min);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_min);
  __Pyx_INCREF(__pyx_n_s_max);
  __Pyx_GIVEREF(__pyx_n_s_max);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_max);
  __pyx_t_2 = __Pyx_PyInt_FromDouble(__pyx_v_self->CppSelf->optimizationDirection()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":777
 * 
 *     property optimizationDirection:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
 *         def __set__(self, value):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.optimizationDirection.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":779
 *         def __get__(self):
 *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setOptimizationDirection({'ignore':0., 'min':1., 'max':-1.}[value])
 * 
 */

/* Python wrapper */
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  double __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_TraceCall("__set__", __pyx_f[0], 779, 0, __PYX_ERR(0, 779, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":780
 *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
 *         def __set__(self, value):
 *             self.CppSelf.setOptimizationDirection({'ignore':0., 'min':1., 'max':-1.}[value])             # <<<<<<<<<<<<<<
 * 
 *     #############################################
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore, __pyx_float_0_) < 0) __PYX_ERR(0, 780, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_min, __pyx_float_1_) < 0) __PYX_ERR(0, 780, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_max, __pyx_float_neg_1_) < 0) __PYX_ERR(0, 780, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_t_1, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __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)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->CppSelf->setOptimizationDirection(__pyx_t_3);

  /* "cylp/cy/CyClpSimplex.pyx":779
 *         def __get__(self):
 *             return ['ignore', 'min', 'max'][int(self.CppSelf.optimizationDirection())]
 *         def __set__(self, value):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setOptimizationDirection({'ignore':0., 'min':1., 'max':-1.}[value])
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.optimizationDirection.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":786
 *     #############################################
 * 
 *     def getRightHandSide(self, np.ndarray[np.double_t, ndim=1] rhs):             # <<<<<<<<<<<<<<
 *         '''
 *         Take a spare array, ``rhs``, and store the current right-hand-side
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9getRightHandSide(PyObject *__pyx_v_self, PyObject *__pyx_v_rhs); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9getRightHandSide(PyObject *__pyx_v_self, PyObject *__pyx_v_rhs) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getRightHandSide (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rhs), __pyx_ptype_5numpy_ndarray, 1, "rhs", 0))) __PYX_ERR(0, 786, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8getRightHandSide(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_rhs));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8getRightHandSide(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rhs) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rhs;
  __Pyx_Buffer __pyx_pybuffer_rhs;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getRightHandSide", 0);
  __Pyx_TraceCall("getRightHandSide", __pyx_f[0], 786, 0, __PYX_ERR(0, 786, __pyx_L1_error));
  __pyx_pybuffer_rhs.pybuffer.buf = NULL;
  __pyx_pybuffer_rhs.refcount = 0;
  __pyx_pybuffernd_rhs.data = NULL;
  __pyx_pybuffernd_rhs.rcbuffer = &__pyx_pybuffer_rhs;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":791
 *         in it.
 *         '''
 *         self.CppSelf.getRightHandSide(<double*>rhs.data)             # <<<<<<<<<<<<<<
 * 
 *     def getStatusCode(self):
 */
  __pyx_v_self->CppSelf->getRightHandSide(((double *)__pyx_v_rhs->data));

  /* "cylp/cy/CyClpSimplex.pyx":786
 *     #############################################
 * 
 *     def getRightHandSide(self, np.ndarray[np.double_t, ndim=1] rhs):             # <<<<<<<<<<<<<<
 *         '''
 *         Take a spare array, ``rhs``, and store the current right-hand-side
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rhs.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getRightHandSide", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rhs.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":793
 *         self.CppSelf.getRightHandSide(<double*>rhs.data)
 * 
 *     def getStatusCode(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Get the probelm status as defined in CLP. Return value could be:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11getStatusCode(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11getStatusCode(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getStatusCode (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10getStatusCode(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10getStatusCode(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getStatusCode", 0);
  __Pyx_TraceCall("getStatusCode", __pyx_f[0], 793, 0, __PYX_ERR(0, 793, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":806
 * 
 *         '''
 *         return self.CppSelf.status()             # <<<<<<<<<<<<<<
 * 
 *     def getStatusString(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->status()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":793
 *         self.CppSelf.getRightHandSide(<double*>rhs.data)
 * 
 *     def getStatusCode(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Get the probelm status as defined in CLP. Return value could be:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getStatusCode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":808
 *         return self.CppSelf.status()
 * 
 *     def getStatusString(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the problem status in string using the code from
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13getStatusString(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13getStatusString(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getStatusString (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12getStatusString(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12getStatusString(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getStatusString", 0);
  __Pyx_TraceCall("getStatusString", __pyx_f[0], 808, 0, __PYX_ERR(0, 808, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":813
 *         :func:`getStatusCode`
 *         '''
 *         return problemStatus[self.getStatusCode()]             # <<<<<<<<<<<<<<
 * 
 *     def setColumnLower(self, ind, val):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":808
 *         return self.CppSelf.status()
 * 
 *     def getStatusString(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the problem status in string using the code from
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getStatusString", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":815
 *         return problemStatus[self.getStatusCode()]
 * 
 *     def setColumnLower(self, ind, val):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the lower bound of variable index ``ind`` to ``val``.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15setColumnLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15setColumnLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_ind = 0;
  PyObject *__pyx_v_val = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setColumnLower (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ind,&__pyx_n_s_val,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setColumnLower", 1, 2, 2, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setColumnLower") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_ind = values[0];
    __pyx_v_val = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setColumnLower", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLower", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setColumnLower", 0);
  __Pyx_TraceCall("setColumnLower", __pyx_f[0], 815, 0, __PYX_ERR(0, 815, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":819
 *         Set the lower bound of variable index ``ind`` to ``val``.
 *         '''
 *         self.CppSelf.setColumnLower(ind, val)             # <<<<<<<<<<<<<<
 * 
 *     def setColumnUpper(self, ind, val):
 */
  __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)
  __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)
  __pyx_v_self->CppSelf->setColumnLower(__pyx_t_1, __pyx_t_2);

  /* "cylp/cy/CyClpSimplex.pyx":815
 *         return problemStatus[self.getStatusCode()]
 * 
 *     def setColumnLower(self, ind, val):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the lower bound of variable index ``ind`` to ``val``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLower", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":821
 *         self.CppSelf.setColumnLower(ind, val)
 * 
 *     def setColumnUpper(self, ind, val):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the upper bound of variable index ``ind`` to ``val``.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17setColumnUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17setColumnUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_ind = 0;
  PyObject *__pyx_v_val = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setColumnUpper (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ind,&__pyx_n_s_val,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setColumnUpper", 1, 2, 2, 1); __PYX_ERR(0, 821, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setColumnUpper") < 0)) __PYX_ERR(0, 821, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_ind = values[0];
    __pyx_v_val = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setColumnUpper", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 821, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setColumnUpper", 0);
  __Pyx_TraceCall("setColumnUpper", __pyx_f[0], 821, 0, __PYX_ERR(0, 821, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":825
 *         Set the upper bound of variable index ``ind`` to ``val``.
 *         '''
 *         self.CppSelf.setColumnUpper(ind, val)             # <<<<<<<<<<<<<<
 * 
 *     def setRowLower(self, ind, val):
 */
  __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)
  __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)
  __pyx_v_self->CppSelf->setColumnUpper(__pyx_t_1, __pyx_t_2);

  /* "cylp/cy/CyClpSimplex.pyx":821
 *         self.CppSelf.setColumnLower(ind, val)
 * 
 *     def setColumnUpper(self, ind, val):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the upper bound of variable index ``ind`` to ``val``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":827
 *         self.CppSelf.setColumnUpper(ind, val)
 * 
 *     def setRowLower(self, ind, val):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the lower bound of constraint index ``ind`` to ``val``.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_19setRowLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_19setRowLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_ind = 0;
  PyObject *__pyx_v_val = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setRowLower (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ind,&__pyx_n_s_val,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setRowLower", 1, 2, 2, 1); __PYX_ERR(0, 827, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRowLower") < 0)) __PYX_ERR(0, 827, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_ind = values[0];
    __pyx_v_val = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setRowLower", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 827, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowLower", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setRowLower", 0);
  __Pyx_TraceCall("setRowLower", __pyx_f[0], 827, 0, __PYX_ERR(0, 827, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":831
 *         Set the lower bound of constraint index ``ind`` to ``val``.
 *         '''
 *         self.CppSelf.setRowLower(ind, val)             # <<<<<<<<<<<<<<
 * 
 *     def setRowUpper(self, ind, val):
 */
  __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)
  __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)
  __pyx_v_self->CppSelf->setRowLower(__pyx_t_1, __pyx_t_2);

  /* "cylp/cy/CyClpSimplex.pyx":827
 *         self.CppSelf.setColumnUpper(ind, val)
 * 
 *     def setRowLower(self, ind, val):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the lower bound of constraint index ``ind`` to ``val``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowLower", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":833
 *         self.CppSelf.setRowLower(ind, val)
 * 
 *     def setRowUpper(self, ind, val):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the upper bound of constraint index ``ind`` to ``val``.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21setRowUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21setRowUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_ind = 0;
  PyObject *__pyx_v_val = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setRowUpper (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ind,&__pyx_n_s_val,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setRowUpper", 1, 2, 2, 1); __PYX_ERR(0, 833, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRowUpper") < 0)) __PYX_ERR(0, 833, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_ind = values[0];
    __pyx_v_val = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setRowUpper", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 833, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowUpper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setRowUpper", 0);
  __Pyx_TraceCall("setRowUpper", __pyx_f[0], 833, 0, __PYX_ERR(0, 833, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":837
 *         Set the upper bound of constraint index ``ind`` to ``val``.
 *         '''
 *         self.CppSelf.setRowUpper(ind, val)             # <<<<<<<<<<<<<<
 * 
 *     def useCustomPrimal(self, customPrimal):
 */
  __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)
  __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)
  __pyx_v_self->CppSelf->setRowUpper(__pyx_t_1, __pyx_t_2);

  /* "cylp/cy/CyClpSimplex.pyx":833
 *         self.CppSelf.setRowLower(ind, val)
 * 
 *     def setRowUpper(self, ind, val):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the upper bound of constraint index ``ind`` to ``val``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowUpper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":839
 *         self.CppSelf.setRowUpper(ind, val)
 * 
 *     def useCustomPrimal(self, customPrimal):             # <<<<<<<<<<<<<<
 *         '''
 *         Determines if
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23useCustomPrimal(PyObject *__pyx_v_self, PyObject *__pyx_v_customPrimal); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23useCustomPrimal(PyObject *__pyx_v_self, PyObject *__pyx_v_customPrimal) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("useCustomPrimal (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22useCustomPrimal(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_customPrimal));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22useCustomPrimal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_customPrimal) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("useCustomPrimal", 0);
  __Pyx_TraceCall("useCustomPrimal", __pyx_f[0], 839, 0, __PYX_ERR(0, 839, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":846
 *         entering and leaving variables are obtained.
 *         '''
 *         self.CppSelf.useCustomPrimal(customPrimal)             # <<<<<<<<<<<<<<
 * 
 *     def getUseCustomPrimal(self):
 */
  __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)
  __pyx_v_self->CppSelf->useCustomPrimal(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":839
 *         self.CppSelf.setRowUpper(ind, val)
 * 
 *     def useCustomPrimal(self, customPrimal):             # <<<<<<<<<<<<<<
 *         '''
 *         Determines if
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.useCustomPrimal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":848
 *         self.CppSelf.useCustomPrimal(customPrimal)
 * 
 *     def getUseCustomPrimal(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the value of ``useCustomPrimal``. See :func:`useCustomPrimal`.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25getUseCustomPrimal(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25getUseCustomPrimal(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getUseCustomPrimal (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24getUseCustomPrimal(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24getUseCustomPrimal(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getUseCustomPrimal", 0);
  __Pyx_TraceCall("getUseCustomPrimal", __pyx_f[0], 848, 0, __PYX_ERR(0, 848, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":854
 *         :rtype: int  :math:`\in \{0, 1\}`
 *         '''
 *         return self.CppSelf.getUseCustomPrimal()             # <<<<<<<<<<<<<<
 * 
 *     def flagged(self, varInd):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getUseCustomPrimal()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":848
 *         self.CppSelf.useCustomPrimal(customPrimal)
 * 
 *     def getUseCustomPrimal(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the value of ``useCustomPrimal``. See :func:`useCustomPrimal`.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getUseCustomPrimal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":856
 *         return self.CppSelf.getUseCustomPrimal()
 * 
 *     def flagged(self, varInd):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns ``1`` if variable index ``varInd`` is flagged.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27flagged(PyObject *__pyx_v_self, PyObject *__pyx_v_varInd); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27flagged(PyObject *__pyx_v_self, PyObject *__pyx_v_varInd) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("flagged (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_26flagged(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_varInd));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_26flagged(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("flagged", 0);
  __Pyx_TraceCall("flagged", __pyx_f[0], 856, 0, __PYX_ERR(0, 856, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":862
 *         :rtype: int  :math:`\in \{0, 1\}`
 *         '''
 *         return self.CppSelf.flagged(varInd)             # <<<<<<<<<<<<<<
 * 
 *     def setFlagged(self, varInd):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":856
 *         return self.CppSelf.getUseCustomPrimal()
 * 
 *     def flagged(self, varInd):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns ``1`` if variable index ``varInd`` is flagged.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.flagged", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":864
 *         return self.CppSelf.flagged(varInd)
 * 
 *     def setFlagged(self, varInd):             # <<<<<<<<<<<<<<
 *         '''
 *         Set variables index ``varInd`` flagged.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_29setFlagged(PyObject *__pyx_v_self, PyObject *__pyx_v_varInd); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged[] = "CyClpSimplex.setFlagged(self, varInd)\n\n        Set variables index ``varInd`` flagged.\n        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_29setFlagged(PyObject *__pyx_v_self, PyObject *__pyx_v_varInd) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setFlagged (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_varInd));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_varInd) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setFlagged", 0);
  __Pyx_TraceCall("setFlagged", __pyx_f[0], 864, 0, __PYX_ERR(0, 864, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":868
 *         Set variables index ``varInd`` flagged.
 *         '''
 *         self.CppSelf.setFlagged(varInd)             # <<<<<<<<<<<<<<
 * 
 * ##    def currentDualTolerance(self):
 */
  __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)
  __pyx_v_self->CppSelf->setFlagged(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":864
 *         return self.CppSelf.flagged(varInd)
 * 
 *     def setFlagged(self, varInd):             # <<<<<<<<<<<<<<
 *         '''
 *         Set variables index ``varInd`` flagged.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setFlagged", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":873
 * ##        return self.CppSelf.currentDualTolerance()
 * ##
 *     def largestDualError(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.largestDualError()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31largestDualError(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError[] = "CyClpSimplex.largestDualError(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31largestDualError(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("largestDualError (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("largestDualError", 0);
  __Pyx_TraceCall("largestDualError", __pyx_f[0], 873, 0, __PYX_ERR(0, 873, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":874
 * ##
 *     def largestDualError(self):
 *         return self.CppSelf.largestDualError()             # <<<<<<<<<<<<<<
 * 
 *     def pivotRow(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->largestDualError()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":873
 * ##        return self.CppSelf.currentDualTolerance()
 * ##
 *     def largestDualError(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.largestDualError()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.largestDualError", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":876
 *         return self.CppSelf.largestDualError()
 * 
 *     def pivotRow(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the index of the constraint corresponding to the (basic) leaving
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_33pivotRow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_33pivotRow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pivotRow (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_32pivotRow(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_32pivotRow(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pivotRow", 0);
  __Pyx_TraceCall("pivotRow", __pyx_f[0], 876, 0, __PYX_ERR(0, 876, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":883
 *         :rtype: int
 *         '''
 *         return self.CppSelf.pivotRow()             # <<<<<<<<<<<<<<
 * 
 *     def setPivotRow(self, v):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->pivotRow()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":876
 *         return self.CppSelf.largestDualError()
 * 
 *     def pivotRow(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the index of the constraint corresponding to the (basic) leaving
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.pivotRow", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":885
 *         return self.CppSelf.pivotRow()
 * 
 *     def setPivotRow(self, v):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the ``v``\ 'th variable of the basis as the leaving variable.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_35setPivotRow(PyObject *__pyx_v_self, PyObject *__pyx_v_v); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_35setPivotRow(PyObject *__pyx_v_self, PyObject *__pyx_v_v) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setPivotRow (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_34setPivotRow(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_v));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_34setPivotRow(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_v) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setPivotRow", 0);
  __Pyx_TraceCall("setPivotRow", __pyx_f[0], 885, 0, __PYX_ERR(0, 885, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":889
 *         Set the ``v``\ 'th variable of the basis as the leaving variable.
 *         '''
 *         self.CppSelf.setPivotRow(v)             # <<<<<<<<<<<<<<
 * 
 *     def sequenceIn(self):
 */
  __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)
  __pyx_v_self->CppSelf->setPivotRow(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":885
 *         return self.CppSelf.pivotRow()
 * 
 *     def setPivotRow(self, v):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the ``v``\ 'th variable of the basis as the leaving variable.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPivotRow", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":891
 *         self.CppSelf.setPivotRow(v)
 * 
 *     def sequenceIn(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the index of the entering variable.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_37sequenceIn(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_37sequenceIn(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("sequenceIn (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_36sequenceIn(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_36sequenceIn(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sequenceIn", 0);
  __Pyx_TraceCall("sequenceIn", __pyx_f[0], 891, 0, __PYX_ERR(0, 891, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":897
 *         :rtype: int
 *         '''
 *         return self.CppSelf.sequenceIn()             # <<<<<<<<<<<<<<
 * 
 *     def setSequenceIn(self, v):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->sequenceIn()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":891
 *         self.CppSelf.setPivotRow(v)
 * 
 *     def sequenceIn(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the index of the entering variable.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.sequenceIn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":899
 *         return self.CppSelf.sequenceIn()
 * 
 *     def setSequenceIn(self, v):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the variable index ``v`` as the entering variable.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_39setSequenceIn(PyObject *__pyx_v_self, PyObject *__pyx_v_v); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_39setSequenceIn(PyObject *__pyx_v_self, PyObject *__pyx_v_v) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setSequenceIn (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_38setSequenceIn(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_v));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_38setSequenceIn(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_v) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setSequenceIn", 0);
  __Pyx_TraceCall("setSequenceIn", __pyx_f[0], 899, 0, __PYX_ERR(0, 899, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":903
 *         Set the variable index ``v`` as the entering variable.
 *         '''
 *         self.CppSelf.setSequenceIn(v)             # <<<<<<<<<<<<<<
 * 
 * ##    def dualTolerance(self):
 */
  __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)
  __pyx_v_self->CppSelf->setSequenceIn(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":899
 *         return self.CppSelf.sequenceIn()
 * 
 *     def setSequenceIn(self, v):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the variable index ``v`` as the entering variable.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setSequenceIn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":913
 * ##        return self.CppSelf.dualTolerance()
 * 
 *     cdef double* rowLower(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the lower bounds of the constraints as a double*.
 */

static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowLower(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  double *__pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rowLower", 0);
  __Pyx_TraceCall("rowLower", __pyx_f[0], 913, 0, __PYX_ERR(0, 913, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":918
 *         This can be used only in Cython.
 *         '''
 *         return self.CppSelf.rowLower()             # <<<<<<<<<<<<<<
 * 
 *     cdef double* rowUpper(self):
 */
  __pyx_r = __pyx_v_self->CppSelf->rowLower();
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":913
 * ##        return self.CppSelf.dualTolerance()
 * 
 *     cdef double* rowLower(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the lower bounds of the constraints as a double*.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.rowLower", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":920
 *         return self.CppSelf.rowLower()
 * 
 *     cdef double* rowUpper(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the upper bounds of the constraints as a double*.
 */

static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowUpper(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  double *__pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rowUpper", 0);
  __Pyx_TraceCall("rowUpper", __pyx_f[0], 920, 0, __PYX_ERR(0, 920, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":925
 *         This can be used only in Cython.
 *         '''
 *         return self.CppSelf.rowUpper()             # <<<<<<<<<<<<<<
 * 
 *     def getVariableNames(self):
 */
  __pyx_r = __pyx_v_self->CppSelf->rowUpper();
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":920
 *         return self.CppSelf.rowLower()
 * 
 *     cdef double* rowUpper(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the upper bounds of the constraints as a double*.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.rowUpper", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":927
 *         return self.CppSelf.rowUpper()
 * 
 *     def getVariableNames(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the variable name. (e.g. that was set in the mps file)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_41getVariableNames(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_41getVariableNames(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getVariableNames (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_40getVariableNames(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_40getVariableNames(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  std::vector<std::string>  __pyx_v_names;
  PyObject *__pyx_v_ret = NULL;
  std::vector<std::string> ::size_type __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector<std::string> ::size_type __pyx_t_2;
  std::vector<std::string> ::size_type __pyx_t_3;
  std::vector<std::string> ::size_type __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getVariableNames", 0);
  __Pyx_TraceCall("getVariableNames", __pyx_f[0], 927, 0, __PYX_ERR(0, 927, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":931
 *         Return the variable name. (e.g. that was set in the mps file)
 *         '''
 *         cdef vector[string] names = self.CppSelf.getVariableNames()             # <<<<<<<<<<<<<<
 *         ret = []
 *         for i in range(names.size()):
 */
  __pyx_v_names = __pyx_v_self->CppSelf->getVariableNames();

  /* "cylp/cy/CyClpSimplex.pyx":932
 *         '''
 *         cdef vector[string] names = self.CppSelf.getVariableNames()
 *         ret = []             # <<<<<<<<<<<<<<
 *         for i in range(names.size()):
 *             ret.append(names[i].c_str())
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ret = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":933
 *         cdef vector[string] names = self.CppSelf.getVariableNames()
 *         ret = []
 *         for i in range(names.size()):             # <<<<<<<<<<<<<<
 *             ret.append(names[i].c_str())
 *         return ret
 */
  __pyx_t_2 = __pyx_v_names.size();
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "cylp/cy/CyClpSimplex.pyx":934
 *         ret = []
 *         for i in range(names.size()):
 *             ret.append(names[i].c_str())             # <<<<<<<<<<<<<<
 *         return ret
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":935
 *         for i in range(names.size()):
 *             ret.append(names[i].c_str())
 *         return ret             # <<<<<<<<<<<<<<
 * 
 *     cpdef setVariableName(self, varInd, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":927
 *         return self.CppSelf.rowUpper()
 * 
 *     def getVariableNames(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the variable name. (e.g. that was set in the mps file)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getVariableNames", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":937
 *         return ret
 * 
 *     cpdef setVariableName(self, varInd, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the name of variable index ``varInd`` to ``name``.
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  char *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setVariableName", 0);
  __Pyx_TraceCall("setVariableName", __pyx_f[0], 937, 0, __PYX_ERR(0, 937, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_varInd, __pyx_v_name};
          __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)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_varInd, __pyx_v_name};
          __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)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 937, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_4) {
            __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
          }
          __Pyx_INCREF(__pyx_v_varInd);
          __Pyx_GIVEREF(__pyx_v_varInd);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_varInd);
          __Pyx_INCREF(__pyx_v_name);
          __Pyx_GIVEREF(__pyx_v_name);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_name);
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":947
 * 
 *         '''
 *         self.CppSelf.setVariableName(varInd, name)             # <<<<<<<<<<<<<<
 * 
 *     cpdef setConstraintName(self, constInd, name):
 */
  __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)
  __pyx_t_7 = __Pyx_PyObject_AsWritableString(__pyx_v_name); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L1_error)
  __pyx_v_self->CppSelf->setVariableName(__pyx_t_5, __pyx_t_7);

  /* "cylp/cy/CyClpSimplex.pyx":937
 *         return ret
 * 
 *     cpdef setVariableName(self, varInd, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the name of variable index ``varInd`` to ``name``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_varInd = 0;
  PyObject *__pyx_v_name = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setVariableName (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_varInd,&__pyx_n_s_name,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_varInd)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setVariableName", 1, 2, 2, 1); __PYX_ERR(0, 937, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVariableName") < 0)) __PYX_ERR(0, 937, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_varInd = values[0];
    __pyx_v_name = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setVariableName", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 937, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setVariableName", 0);
  __Pyx_TraceCall("setVariableName (wrapper)", __pyx_f[0], 937, 0, __PYX_ERR(0, 937, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":949
 *         self.CppSelf.setVariableName(varInd, name)
 * 
 *     cpdef setConstraintName(self, constInd, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the name of constraint index ``constInd`` to ``name``.
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  char *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setConstraintName", 0);
  __Pyx_TraceCall("setConstraintName", __pyx_f[0], 949, 0, __PYX_ERR(0, 949, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_constInd, __pyx_v_name};
          __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)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_constInd, __pyx_v_name};
          __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)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 949, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_4) {
            __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
          }
          __Pyx_INCREF(__pyx_v_constInd);
          __Pyx_GIVEREF(__pyx_v_constInd);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_constInd);
          __Pyx_INCREF(__pyx_v_name);
          __Pyx_GIVEREF(__pyx_v_name);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_name);
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":959
 * 
 *         '''
 *         self.CppSelf.setConstraintName(constInd, name)             # <<<<<<<<<<<<<<
 * 
 *     cdef int* pivotVariable(self):
 */
  __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)
  __pyx_t_7 = __Pyx_PyObject_AsWritableString(__pyx_v_name); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L1_error)
  __pyx_v_self->CppSelf->setConstraintName(__pyx_t_5, __pyx_t_7);

  /* "cylp/cy/CyClpSimplex.pyx":949
 *         self.CppSelf.setVariableName(varInd, name)
 * 
 *     cpdef setConstraintName(self, constInd, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the name of constraint index ``constInd`` to ``name``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_constInd = 0;
  PyObject *__pyx_v_name = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setConstraintName (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_constInd,&__pyx_n_s_name,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_constInd)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setConstraintName", 1, 2, 2, 1); __PYX_ERR(0, 949, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstraintName") < 0)) __PYX_ERR(0, 949, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_constInd = values[0];
    __pyx_v_name = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setConstraintName", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 949, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setConstraintName", 0);
  __Pyx_TraceCall("setConstraintName (wrapper)", __pyx_f[0], 949, 0, __PYX_ERR(0, 949, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":961
 *         self.CppSelf.setConstraintName(constInd, name)
 * 
 *     cdef int* pivotVariable(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the index set of the basic variables.
 */

static int *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_pivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  int *__pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pivotVariable", 0);
  __Pyx_TraceCall("pivotVariable", __pyx_f[0], 961, 0, __PYX_ERR(0, 961, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":967
 *         :rtype: int*
 *         '''
 *         return self.CppSelf.pivotVariable()             # <<<<<<<<<<<<<<
 * 
 *     cpdef  getPivotVariable(self):
 */
  __pyx_r = __pyx_v_self->CppSelf->pivotVariable();
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":961
 *         self.CppSelf.setConstraintName(constInd, name)
 * 
 *     cdef int* pivotVariable(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the index set of the basic variables.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.pivotVariable", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":969
 *         return self.CppSelf.pivotVariable()
 * 
 *     cpdef  getPivotVariable(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the index set of the basic variables.
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getPivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getPivotVariable", 0);
  __Pyx_TraceCall("getPivotVariable", __pyx_f[0], 969, 0, __PYX_ERR(0, 969, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 969, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":975
 *         :rtype: Numpy array
 *         '''
 *         return <object>self.CppSelf.getPivotVariable()             # <<<<<<<<<<<<<<
 * 
 *     cpdef CLP_getVarStatus(self, int sequence):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __pyx_v_self->CppSelf->getPivotVariable();
  __Pyx_INCREF(((PyObject *)__pyx_t_5));
  __pyx_r = ((PyObject *)__pyx_t_5);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":969
 *         return self.CppSelf.pivotVariable()
 * 
 *     cpdef  getPivotVariable(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Return the index set of the basic variables.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getPivotVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getPivotVariable (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_46getPivotVariable(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_46getPivotVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getPivotVariable", 0);
  __Pyx_TraceCall("getPivotVariable (wrapper)", __pyx_f[0], 969, 0, __PYX_ERR(0, 969, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getPivotVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":977
 *         return <object>self.CppSelf.getPivotVariable()
 * 
 *     cpdef CLP_getVarStatus(self, int sequence):             # <<<<<<<<<<<<<<
 *         '''
 *         get the status of a variable
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_arg_sequence); /*proto*/
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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CLP_getVarStatus", 0);
  __Pyx_TraceCall("CLP_getVarStatus", __pyx_f[0], 977, 0, __PYX_ERR(0, 977, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_sequence); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 977, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __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);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 977, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":990
 *         :rtype: int
 *         '''
 *         return self.CppSelf.getStatus(sequence)             # <<<<<<<<<<<<<<
 * 
 *     cpdef CLP_setVarStatus(self, int sequence, int status):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":977
 *         return <object>self.CppSelf.getPivotVariable()
 * 
 *     cpdef CLP_getVarStatus(self, int sequence):             # <<<<<<<<<<<<<<
 *         '''
 *         get the status of a variable
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_getVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_arg_sequence); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_arg_sequence) {
  int __pyx_v_sequence;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CLP_getVarStatus (wrapper)", 0);
  assert(__pyx_arg_sequence); {
    __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)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_getVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_48CLP_getVarStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((int)__pyx_v_sequence));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_48CLP_getVarStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_v_sequence) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CLP_getVarStatus", 0);
  __Pyx_TraceCall("CLP_getVarStatus (wrapper)", __pyx_f[0], 977, 0, __PYX_ERR(0, 977, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_getVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":992
 *         return self.CppSelf.getStatus(sequence)
 * 
 *     cpdef CLP_setVarStatus(self, int sequence, int status):             # <<<<<<<<<<<<<<
 *         '''
 *         set the status of a variable
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_51CLP_setVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  enum IClpSimplex::Status __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CLP_setVarStatus", 0);
  __Pyx_TraceCall("CLP_setVarStatus", __pyx_f[0], 992, 0, __PYX_ERR(0, 992, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_51CLP_setVarStatus)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_sequence); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_status); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 992, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
          __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)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
          __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)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 992, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":1004
 * 
 *         '''
 *         self.CppSelf.setStatus(sequence, CLP_variableStatusEnum[status])             # <<<<<<<<<<<<<<
 * 
 *     def setVariableStatus(self, arg, status):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CLP_variableStatusEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __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)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->CppSelf->setStatus(__pyx_v_sequence, __pyx_t_9);

  /* "cylp/cy/CyClpSimplex.pyx":992
 *         return self.CppSelf.getStatus(sequence)
 * 
 *     cpdef CLP_setVarStatus(self, int sequence, int status):             # <<<<<<<<<<<<<<
 *         '''
 *         set the status of a variable
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_setVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_51CLP_setVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_51CLP_setVarStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_sequence;
  int __pyx_v_status;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CLP_setVarStatus (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sequence,&__pyx_n_s_status,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sequence)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_status)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_setVarStatus", 1, 2, 2, 1); __PYX_ERR(0, 992, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CLP_setVarStatus") < 0)) __PYX_ERR(0, 992, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __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)
    __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)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CLP_setVarStatus", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 992, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_setVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CLP_setVarStatus", 0);
  __Pyx_TraceCall("CLP_setVarStatus (wrapper)", __pyx_f[0], 992, 0, __PYX_ERR(0, 992, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_setVarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1006
 *         self.CppSelf.setStatus(sequence, CLP_variableStatusEnum[status])
 * 
 *     def setVariableStatus(self, arg, status):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the status of a variable.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_53setVariableStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_53setVariableStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_arg = 0;
  PyObject *__pyx_v_status = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setVariableStatus (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arg,&__pyx_n_s_status,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_status)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setVariableStatus", 1, 2, 2, 1); __PYX_ERR(0, 1006, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVariableStatus") < 0)) __PYX_ERR(0, 1006, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_arg = values[0];
    __pyx_v_status = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setVariableStatus", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1006, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_v_model = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_varName = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  enum IClpSimplex::Status __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setVariableStatus", 0);
  __Pyx_TraceCall("setVariableStatus", __pyx_f[0], 1006, 0, __PYX_ERR(0, 1006, __pyx_L1_error));
  __Pyx_INCREF(__pyx_v_status);

  /* "cylp/cy/CyClpSimplex.pyx":1031
 * 
 *         '''
 *         status = CLP_variableStatusEnum[StatusToInt[status]]             # <<<<<<<<<<<<<<
 *         if isinstance(arg, (int, long)):
 *             self.CppSelf.setStatus(arg, status)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CLP_variableStatusEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusToInt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_status); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF_SET(__pyx_v_status, __pyx_t_2);
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1032
 *         '''
 *         status = CLP_variableStatusEnum[StatusToInt[status]]
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setStatus(arg, status)
 *         elif True:  # isinstance(arg, CyLPVar):
 */
  __pyx_t_5 = PyInt_Check(__pyx_v_arg); 
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (!__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyLong_Check(__pyx_v_arg); 
  __pyx_t_5 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "cylp/cy/CyClpSimplex.pyx":1033
 *         status = CLP_variableStatusEnum[StatusToInt[status]]
 *         if isinstance(arg, (int, long)):
 *             self.CppSelf.setStatus(arg, status)             # <<<<<<<<<<<<<<
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 */
    __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)
    __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)
    __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);

    /* "cylp/cy/CyClpSimplex.pyx":1032
 *         '''
 *         status = CLP_variableStatusEnum[StatusToInt[status]]
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setStatus(arg, status)
 *         elif True:  # isinstance(arg, CyLPVar):
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1035
 *             self.CppSelf.setStatus(arg, status)
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setVarStatus can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->cyLPModel == Py_None);
    __pyx_t_4 = (__pyx_t_5 != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cylp/cy/CyClpSimplex.pyx":1036
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 *                 raise Exception('The argument of setVarStatus can be ' \             # <<<<<<<<<<<<<<
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_Raise(__pyx_t_2, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __PYX_ERR(0, 1036, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1035
 *             self.CppSelf.setStatus(arg, status)
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setVarStatus can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1039
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 *             var = arg             # <<<<<<<<<<<<<<
 *             model = self.cyLPModel
 *             inds = model.inds
 */
    __Pyx_INCREF(__pyx_v_arg);
    __pyx_v_var = __pyx_v_arg;

    /* "cylp/cy/CyClpSimplex.pyx":1040
 *                                 'using a CyLPModel.')
 *             var = arg
 *             model = self.cyLPModel             # <<<<<<<<<<<<<<
 *             inds = model.inds
 *             varName = var.name
 */
    __pyx_t_2 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_model = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1041
 *             var = arg
 *             model = self.cyLPModel
 *             inds = model.inds             # <<<<<<<<<<<<<<
 *             varName = var.name
 *             if not inds.hasVar(varName):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_inds = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1042
 *             model = self.cyLPModel
 *             inds = model.inds
 *             varName = var.name             # <<<<<<<<<<<<<<
 *             if not inds.hasVar(varName):
 *                 raise Exception('No such variable: %s' % varName)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_varName = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1043
 *             inds = model.inds
 *             varName = var.name
 *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1043, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = ((!__pyx_t_4) != 0);
    if (unlikely(__pyx_t_5)) {

      /* "cylp/cy/CyClpSimplex.pyx":1044
 *             varName = var.name
 *             if not inds.hasVar(varName):
 *                 raise Exception('No such variable: %s' % varName)             # <<<<<<<<<<<<<<
 *             x = inds.varIndex[varName]
 *             if var.parent:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1044, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1043
 *             inds = model.inds
 *             varName = var.name
 *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1045
 *             if not inds.hasVar(varName):
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]             # <<<<<<<<<<<<<<
 *             if var.parent:
 *                 for i in var.indices:
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_varName); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_x = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1046
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 *             if var.parent:             # <<<<<<<<<<<<<<
 *                 for i in var.indices:
 *                     self.CppSelf.setStatus(x[i], status)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_5) {

      /* "cylp/cy/CyClpSimplex.pyx":1047
 *             x = inds.varIndex[varName]
 *             if var.parent:
 *                 for i in var.indices:             # <<<<<<<<<<<<<<
 *                     self.CppSelf.setStatus(x[i], status)
 *             else:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1047, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1047, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_10(__pyx_t_3);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1047, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1048
 *             if var.parent:
 *                 for i in var.indices:
 *                     self.CppSelf.setStatus(x[i], status)             # <<<<<<<<<<<<<<
 *             else:
 *                 for i in xrange(var.dim):
 */
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1048, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __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)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __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)
        __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);

        /* "cylp/cy/CyClpSimplex.pyx":1047
 *             x = inds.varIndex[varName]
 *             if var.parent:
 *                 for i in var.indices:             # <<<<<<<<<<<<<<
 *                     self.CppSelf.setStatus(x[i], status)
 *             else:
 */
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1046
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 *             if var.parent:             # <<<<<<<<<<<<<<
 *                 for i in var.indices:
 *                     self.CppSelf.setStatus(x[i], status)
 */
      goto __pyx_L8;
    }

    /* "cylp/cy/CyClpSimplex.pyx":1050
 *                     self.CppSelf.setStatus(x[i], status)
 *             else:
 *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
 *                     self.CppSelf.setStatus(x[i], status)
 * 
 */
    /*else*/ {
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1050, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1050, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1050, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_10(__pyx_t_3);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1050, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1051
 *             else:
 *                 for i in xrange(var.dim):
 *                     self.CppSelf.setStatus(x[i], status)             # <<<<<<<<<<<<<<
 * 
 *     def getVariableStatus(self, arg):
 */
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1051, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __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)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __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)
        __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);

        /* "cylp/cy/CyClpSimplex.pyx":1050
 *                     self.CppSelf.setStatus(x[i], status)
 *             else:
 *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
 *                     self.CppSelf.setStatus(x[i], status)
 * 
 */
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_L8:;
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":1006
 *         self.CppSelf.setStatus(sequence, CLP_variableStatusEnum[status])
 * 
 *     def setVariableStatus(self, arg, status):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the status of a variable.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setVariableStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_model);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_varName);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1053
 *                     self.CppSelf.setStatus(x[i], status)
 * 
 *     def getVariableStatus(self, arg):             # <<<<<<<<<<<<<<
 *         '''
 *         Get the status of a variable.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_55getVariableStatus(PyObject *__pyx_v_self, PyObject *__pyx_v_arg); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus[] = "CyClpSimplex.getVariableStatus(self, arg)\n\n        Get the status of a variable.\n        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_55getVariableStatus(PyObject *__pyx_v_self, PyObject *__pyx_v_arg) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getVariableStatus (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_arg));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg) {
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_v_model = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_varName = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getVariableStatus", 0);
  __Pyx_TraceCall("getVariableStatus", __pyx_f[0], 1053, 0, __PYX_ERR(0, 1053, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1057
 *         Get the status of a variable.
 *         '''
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             return IntToStatus[self.CppSelf.getStatus(arg)]
 *         elif True:  # isinstance(arg, CyLPVar):
 */
  __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = PyLong_Check(__pyx_v_arg); 
  __pyx_t_2 = (__pyx_t_3 != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "cylp/cy/CyClpSimplex.pyx":1058
 *         '''
 *         if isinstance(arg, (int, long)):
 *             return IntToStatus[self.CppSelf.getStatus(arg)]             # <<<<<<<<<<<<<<
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1058, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1058, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1057
 *         Get the status of a variable.
 *         '''
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             return IntToStatus[self.CppSelf.getStatus(arg)]
 *         elif True:  # isinstance(arg, CyLPVar):
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1060
 *             return IntToStatus[self.CppSelf.getStatus(arg)]
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of getVarStatus can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
  /*else*/ {
    __pyx_t_2 = (__pyx_v_self->cyLPModel == Py_None);
    __pyx_t_1 = (__pyx_t_2 != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cylp/cy/CyClpSimplex.pyx":1061
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 *                 raise Exception('The argument of getVarStatus can be ' \             # <<<<<<<<<<<<<<
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_Raise(__pyx_t_7, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __PYX_ERR(0, 1061, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1060
 *             return IntToStatus[self.CppSelf.getStatus(arg)]
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of getVarStatus can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1064
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 *             var = arg             # <<<<<<<<<<<<<<
 *             model = self.cyLPModel
 *             inds = model.inds
 */
    __Pyx_INCREF(__pyx_v_arg);
    __pyx_v_var = __pyx_v_arg;

    /* "cylp/cy/CyClpSimplex.pyx":1065
 *                                 'using a CyLPModel.')
 *             var = arg
 *             model = self.cyLPModel             # <<<<<<<<<<<<<<
 *             inds = model.inds
 *             varName = var.name
 */
    __pyx_t_7 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_v_model = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1066
 *             var = arg
 *             model = self.cyLPModel
 *             inds = model.inds             # <<<<<<<<<<<<<<
 *             varName = var.name
 *             if not inds.hasVar(varName):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_v_inds = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1067
 *             model = self.cyLPModel
 *             inds = model.inds
 *             varName = var.name             # <<<<<<<<<<<<<<
 *             if not inds.hasVar(varName):
 *                 raise Exception('No such variable: %s' % varName)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_v_varName = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1068
 *             inds = model.inds
 *             varName = var.name
 *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1068, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_2 = ((!__pyx_t_1) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cylp/cy/CyClpSimplex.pyx":1069
 *             varName = var.name
 *             if not inds.hasVar(varName):
 *                 raise Exception('No such variable: %s' % varName)             # <<<<<<<<<<<<<<
 *             x = inds.varIndex[varName]
 *             if var.parent:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 1069, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1068
 *             inds = model.inds
 *             varName = var.name
 *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1070
 *             if not inds.hasVar(varName):
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]             # <<<<<<<<<<<<<<
 *             if var.parent:
 *                 s = np.array([IntToStatus[
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_varName); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1070, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_x = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1071
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 *             if var.parent:             # <<<<<<<<<<<<<<
 *                 s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(x[i])]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1071, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_2) {

      /* "cylp/cy/CyClpSimplex.pyx":1072
 *             x = inds.varIndex[varName]
 *             if var.parent:
 *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in var.indices])
 */
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1072, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1072, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);

      /* "cylp/cy/CyClpSimplex.pyx":1074
 *                 s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in var.indices])             # <<<<<<<<<<<<<<
 *             else:
 *                 s = np.array([IntToStatus[
 */
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_9 = __pyx_t_8; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1074, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1074, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_9))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_11(__pyx_t_9);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1074, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8);
        __pyx_t_8 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1072
 *             x = inds.varIndex[varName]
 *             if var.parent:
 *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in var.indices])
 */
        __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1072, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);

        /* "cylp/cy/CyClpSimplex.pyx":1073
 *             if var.parent:
 *                 s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(x[i])]             # <<<<<<<<<<<<<<
 *                             for i in var.indices])
 *             else:
 */
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1073, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __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)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_12);

        /* "cylp/cy/CyClpSimplex.pyx":1072
 *             x = inds.varIndex[varName]
 *             if var.parent:
 *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in var.indices])
 */
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1072, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 1072, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1074
 *                 s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in var.indices])             # <<<<<<<<<<<<<<
 *             else:
 *                 s = np.array([IntToStatus[
 */
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __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);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1072, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_s = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1071
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 *             if var.parent:             # <<<<<<<<<<<<<<
 *                 s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(x[i])]
 */
      goto __pyx_L8;
    }

    /* "cylp/cy/CyClpSimplex.pyx":1076
 *                             for i in var.indices])
 *             else:
 *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in xrange(var.dim)])
 */
    /*else*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1076, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1076, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);

      /* "cylp/cy/CyClpSimplex.pyx":1078
 *                 s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in xrange(var.dim)])             # <<<<<<<<<<<<<<
 *             if len(s) == 1:
 *                 return s[0]
 */
      __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)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1078, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
        __pyx_t_9 = __pyx_t_13; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1078, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1078, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_9))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_13);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_13);
            #endif
          }
        } else {
          __pyx_t_13 = __pyx_t_11(__pyx_t_9);
          if (unlikely(!__pyx_t_13)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1078, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_13);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_13);
        __pyx_t_13 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1076
 *                             for i in var.indices])
 *             else:
 *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in xrange(var.dim)])
 */
        __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1076, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);

        /* "cylp/cy/CyClpSimplex.pyx":1077
 *             else:
 *                 s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(x[i])]             # <<<<<<<<<<<<<<
 *                             for i in xrange(var.dim)])
 *             if len(s) == 1:
 */
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1077, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __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)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_12);

        /* "cylp/cy/CyClpSimplex.pyx":1076
 *                             for i in var.indices])
 *             else:
 *                 s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in xrange(var.dim)])
 */
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1076, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 1076, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1078
 *                 s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in xrange(var.dim)])             # <<<<<<<<<<<<<<
 *             if len(s) == 1:
 *                 return s[0]
 */
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __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);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1076, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_v_s = __pyx_t_7;
      __pyx_t_7 = 0;
    }
    __pyx_L8:;

    /* "cylp/cy/CyClpSimplex.pyx":1079
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in xrange(var.dim)])
 *             if len(s) == 1:             # <<<<<<<<<<<<<<
 *                 return s[0]
 *             return s
 */
    __pyx_t_10 = PyObject_Length(__pyx_v_s); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1079, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_t_10 == 1) != 0);
    if (__pyx_t_2) {

      /* "cylp/cy/CyClpSimplex.pyx":1080
 *                             for i in xrange(var.dim)])
 *             if len(s) == 1:
 *                 return s[0]             # <<<<<<<<<<<<<<
 *             return s
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;

      /* "cylp/cy/CyClpSimplex.pyx":1079
 *                             self.CppSelf.getStatus(x[i])]
 *                             for i in xrange(var.dim)])
 *             if len(s) == 1:             # <<<<<<<<<<<<<<
 *                 return s[0]
 *             return s
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1081
 *             if len(s) == 1:
 *                 return s[0]
 *             return s             # <<<<<<<<<<<<<<
 * 
 *     def setConstraintStatus(self, arg, status):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_s);
    __pyx_r = __pyx_v_s;
    goto __pyx_L0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1053
 *                     self.CppSelf.setStatus(x[i], status)
 * 
 *     def getVariableStatus(self, arg):             # <<<<<<<<<<<<<<
 *         '''
 *         Get the status of a variable.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getVariableStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_model);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_varName);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1083
 *             return s
 * 
 *     def setConstraintStatus(self, arg, status):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the status of a constraint.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_57setConstraintStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_57setConstraintStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_arg = 0;
  PyObject *__pyx_v_status = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setConstraintStatus (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arg,&__pyx_n_s_status,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_status)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setConstraintStatus", 1, 2, 2, 1); __PYX_ERR(0, 1083, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstraintStatus") < 0)) __PYX_ERR(0, 1083, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_arg = values[0];
    __pyx_v_status = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setConstraintStatus", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1083, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_model = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_constName = NULL;
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_v_cInds = NULL;
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  enum IClpSimplex::Status __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setConstraintStatus", 0);
  __Pyx_TraceCall("setConstraintStatus", __pyx_f[0], 1083, 0, __PYX_ERR(0, 1083, __pyx_L1_error));
  __Pyx_INCREF(__pyx_v_arg);
  __Pyx_INCREF(__pyx_v_status);

  /* "cylp/cy/CyClpSimplex.pyx":1105
 *         'atLowerBound'
 *         '''
 *         status = CLP_variableStatusEnum[StatusToInt[status]]             # <<<<<<<<<<<<<<
 *         if isinstance(arg, (int, long)):
 *             arg += self.nVariables
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CLP_variableStatusEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusToInt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_status); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF_SET(__pyx_v_status, __pyx_t_2);
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1106
 *         '''
 *         status = CLP_variableStatusEnum[StatusToInt[status]]
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             arg += self.nVariables
 *             self.CppSelf.setStatus(arg, status)
 */
  __pyx_t_5 = PyInt_Check(__pyx_v_arg); 
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (!__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyLong_Check(__pyx_v_arg); 
  __pyx_t_5 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "cylp/cy/CyClpSimplex.pyx":1107
 *         status = CLP_variableStatusEnum[StatusToInt[status]]
 *         if isinstance(arg, (int, long)):
 *             arg += self.nVariables             # <<<<<<<<<<<<<<
 *             self.CppSelf.setStatus(arg, status)
 *         elif True:  # isinstance(arg, CyLPVar):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_arg, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1108
 *         if isinstance(arg, (int, long)):
 *             arg += self.nVariables
 *             self.CppSelf.setStatus(arg, status)             # <<<<<<<<<<<<<<
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 */
    __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)
    __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)
    __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);

    /* "cylp/cy/CyClpSimplex.pyx":1106
 *         '''
 *         status = CLP_variableStatusEnum[StatusToInt[status]]
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             arg += self.nVariables
 *             self.CppSelf.setStatus(arg, status)
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1110
 *             self.CppSelf.setStatus(arg, status)
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setVarStatus can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->cyLPModel == Py_None);
    __pyx_t_4 = (__pyx_t_5 != 0);
    if (unlikely(__pyx_t_4)) {

      /* "cylp/cy/CyClpSimplex.pyx":1111
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 *                 raise Exception('The argument of setVarStatus can be ' \             # <<<<<<<<<<<<<<
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1111, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1110
 *             self.CppSelf.setStatus(arg, status)
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setVarStatus can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1114
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 *             model = self.cyLPModel             # <<<<<<<<<<<<<<
 *             inds = model.inds
 *             constName = arg
 */
    __pyx_t_3 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_model = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1115
 *                                 'using a CyLPModel.')
 *             model = self.cyLPModel
 *             inds = model.inds             # <<<<<<<<<<<<<<
 *             constName = arg
 *             if not inds.hasConst(constName):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_inds = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1116
 *             model = self.cyLPModel
 *             inds = model.inds
 *             constName = arg             # <<<<<<<<<<<<<<
 *             if not inds.hasConst(constName):
 *                 raise Exception('No such constraint: %s' % constName)
 */
    __Pyx_INCREF(__pyx_v_arg);
    __pyx_v_constName = __pyx_v_arg;

    /* "cylp/cy/CyClpSimplex.pyx":1117
 *             inds = model.inds
 *             constName = arg
 *             if not inds.hasConst(constName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such constraint: %s' % constName)
 *             c = inds.constIndex[constName]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1117, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_5 = ((!__pyx_t_4) != 0);
    if (unlikely(__pyx_t_5)) {

      /* "cylp/cy/CyClpSimplex.pyx":1118
 *             constName = arg
 *             if not inds.hasConst(constName):
 *                 raise Exception('No such constraint: %s' % constName)             # <<<<<<<<<<<<<<
 *             c = inds.constIndex[constName]
 *             cInds = c + self.nVariables
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_2, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __PYX_ERR(0, 1118, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1117
 *             inds = model.inds
 *             constName = arg
 *             if not inds.hasConst(constName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such constraint: %s' % constName)
 *             c = inds.constIndex[constName]
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1119
 *             if not inds.hasConst(constName):
 *                 raise Exception('No such constraint: %s' % constName)
 *             c = inds.constIndex[constName]             # <<<<<<<<<<<<<<
 *             cInds = c + self.nVariables
 *             for i in xrange(len(cInds)):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_constName); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_c = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1120
 *                 raise Exception('No such constraint: %s' % constName)
 *             c = inds.constIndex[constName]
 *             cInds = c + self.nVariables             # <<<<<<<<<<<<<<
 *             for i in xrange(len(cInds)):
 *                 self.CppSelf.setStatus(cInds[i], status)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyNumber_Add(__pyx_v_c, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_cInds = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1121
 *             c = inds.constIndex[constName]
 *             cInds = c + self.nVariables
 *             for i in xrange(len(cInds)):             # <<<<<<<<<<<<<<
 *                 self.CppSelf.setStatus(cInds[i], status)
 * 
 */
    __pyx_t_9 = PyObject_Length(__pyx_v_cInds); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1121, __pyx_L1_error)
    __pyx_t_10 = __pyx_t_9;
    for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
      __pyx_v_i = __pyx_t_11;

      /* "cylp/cy/CyClpSimplex.pyx":1122
 *             cInds = c + self.nVariables
 *             for i in xrange(len(cInds)):
 *                 self.CppSelf.setStatus(cInds[i], status)             # <<<<<<<<<<<<<<
 * 
 *     def getConstraintStatus(self, arg):
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __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)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __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)
      __pyx_v_self->CppSelf->setStatus(__pyx_t_7, __pyx_t_8);
    }
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":1083
 *             return s
 * 
 *     def setConstraintStatus(self, arg, status):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the status of a constraint.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setConstraintStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_model);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_constName);
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_cInds);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1124
 *                 self.CppSelf.setStatus(cInds[i], status)
 * 
 *     def getConstraintStatus(self, arg):             # <<<<<<<<<<<<<<
 *         '''
 *         Get the status of a constraint.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_59getConstraintStatus(PyObject *__pyx_v_self, PyObject *__pyx_v_arg); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus[] = "CyClpSimplex.getConstraintStatus(self, arg)\n\n        Get the status of a constraint.\n        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_59getConstraintStatus(PyObject *__pyx_v_self, PyObject *__pyx_v_arg) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getConstraintStatus (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_arg));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg) {
  PyObject *__pyx_v_model = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_constName = NULL;
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_v_cInds = NULL;
  PyObject *__pyx_v_s = NULL;
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getConstraintStatus", 0);
  __Pyx_TraceCall("getConstraintStatus", __pyx_f[0], 1124, 0, __PYX_ERR(0, 1124, __pyx_L1_error));
  __Pyx_INCREF(__pyx_v_arg);

  /* "cylp/cy/CyClpSimplex.pyx":1128
 *         Get the status of a constraint.
 *         '''
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             arg += self.nVariables
 *             return IntToStatus[self.CppSelf.getStatus(arg)]
 */
  __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = PyLong_Check(__pyx_v_arg); 
  __pyx_t_2 = (__pyx_t_3 != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "cylp/cy/CyClpSimplex.pyx":1129
 *         '''
 *         if isinstance(arg, (int, long)):
 *             arg += self.nVariables             # <<<<<<<<<<<<<<
 *             return IntToStatus[self.CppSelf.getStatus(arg)]
 *         elif True:  # isinstance(arg, CyLPVar):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_arg, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1130
 *         if isinstance(arg, (int, long)):
 *             arg += self.nVariables
 *             return IntToStatus[self.CppSelf.getStatus(arg)]             # <<<<<<<<<<<<<<
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __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)
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1128
 *         Get the status of a constraint.
 *         '''
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             arg += self.nVariables
 *             return IntToStatus[self.CppSelf.getStatus(arg)]
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1132
 *             return IntToStatus[self.CppSelf.getStatus(arg)]
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setVarStatus can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
  /*else*/ {
    __pyx_t_2 = (__pyx_v_self->cyLPModel == Py_None);
    __pyx_t_1 = (__pyx_t_2 != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cylp/cy/CyClpSimplex.pyx":1133
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 *                 raise Exception('The argument of setVarStatus can be ' \             # <<<<<<<<<<<<<<
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_Raise(__pyx_t_7, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __PYX_ERR(0, 1133, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1132
 *             return IntToStatus[self.CppSelf.getStatus(arg)]
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setVarStatus can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1136
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 *             model = self.cyLPModel             # <<<<<<<<<<<<<<
 *             inds = model.inds
 *             constName = arg
 */
    __pyx_t_7 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_v_model = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1137
 *                                 'using a CyLPModel.')
 *             model = self.cyLPModel
 *             inds = model.inds             # <<<<<<<<<<<<<<
 *             constName = arg
 *             if not inds.hasConst(constName):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_v_inds = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1138
 *             model = self.cyLPModel
 *             inds = model.inds
 *             constName = arg             # <<<<<<<<<<<<<<
 *             if not inds.hasConst(constName):
 *                 raise Exception('No such constraint: %s' % constName)
 */
    __Pyx_INCREF(__pyx_v_arg);
    __pyx_v_constName = __pyx_v_arg;

    /* "cylp/cy/CyClpSimplex.pyx":1139
 *             inds = model.inds
 *             constName = arg
 *             if not inds.hasConst(constName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such constraint: %s' % constName)
 *             c = inds.constIndex[constName]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1139, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1139, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_2 = ((!__pyx_t_1) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cylp/cy/CyClpSimplex.pyx":1140
 *             constName = arg
 *             if not inds.hasConst(constName):
 *                 raise Exception('No such constraint: %s' % constName)             # <<<<<<<<<<<<<<
 *             c = inds.constIndex[constName]
 *             cInds = c + self.nVariables
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(0, 1140, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1139
 *             inds = model.inds
 *             constName = arg
 *             if not inds.hasConst(constName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such constraint: %s' % constName)
 *             c = inds.constIndex[constName]
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1141
 *             if not inds.hasConst(constName):
 *                 raise Exception('No such constraint: %s' % constName)
 *             c = inds.constIndex[constName]             # <<<<<<<<<<<<<<
 *             cInds = c + self.nVariables
 *             s = np.array([IntToStatus[
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_constName); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_c = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1142
 *                 raise Exception('No such constraint: %s' % constName)
 *             c = inds.constIndex[constName]
 *             cInds = c + self.nVariables             # <<<<<<<<<<<<<<
 *             s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(cInds[i])]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = PyNumber_Add(__pyx_v_c, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_v_cInds = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1143
 *             c = inds.constIndex[constName]
 *             cInds = c + self.nVariables
 *             s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
 *                             self.CppSelf.getStatus(cInds[i])]
 *                             for i in xrange(len(cInds))])
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);

    /* "cylp/cy/CyClpSimplex.pyx":1145
 *             s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(cInds[i])]
 *                             for i in xrange(len(cInds))])             # <<<<<<<<<<<<<<
 *             if len(s) == 1:
 *                 return s[0]
 */
    __pyx_t_8 = PyObject_Length(__pyx_v_cInds); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1145, __pyx_L1_error)
    __pyx_t_9 = __pyx_t_8;
    for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
      __pyx_v_i = __pyx_t_10;

      /* "cylp/cy/CyClpSimplex.pyx":1143
 *             c = inds.constIndex[constName]
 *             cInds = c + self.nVariables
 *             s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
 *                             self.CppSelf.getStatus(cInds[i])]
 *                             for i in xrange(len(cInds))])
 */
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_IntToStatus); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);

      /* "cylp/cy/CyClpSimplex.pyx":1144
 *             cInds = c + self.nVariables
 *             s = np.array([IntToStatus[
 *                             self.CppSelf.getStatus(cInds[i])]             # <<<<<<<<<<<<<<
 *                             for i in xrange(len(cInds))])
 *             if len(s) == 1:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_12);
      __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)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_12);

      /* "cylp/cy/CyClpSimplex.pyx":1143
 *             c = inds.constIndex[constName]
 *             cInds = c + self.nVariables
 *             s = np.array([IntToStatus[             # <<<<<<<<<<<<<<
 *                             self.CppSelf.getStatus(cInds[i])]
 *                             for i in xrange(len(cInds))])
 */
      __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 1143, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __pyx_t_13 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_13)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_13);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_s = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1146
 *                             self.CppSelf.getStatus(cInds[i])]
 *                             for i in xrange(len(cInds))])
 *             if len(s) == 1:             # <<<<<<<<<<<<<<
 *                 return s[0]
 *             return s
 */
    __pyx_t_8 = PyObject_Length(__pyx_v_s); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1146, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_t_8 == 1) != 0);
    if (__pyx_t_2) {

      /* "cylp/cy/CyClpSimplex.pyx":1147
 *                             for i in xrange(len(cInds))])
 *             if len(s) == 1:
 *                 return s[0]             # <<<<<<<<<<<<<<
 *             return s
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "cylp/cy/CyClpSimplex.pyx":1146
 *                             self.CppSelf.getStatus(cInds[i])]
 *                             for i in xrange(len(cInds))])
 *             if len(s) == 1:             # <<<<<<<<<<<<<<
 *                 return s[0]
 *             return s
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1148
 *             if len(s) == 1:
 *                 return s[0]
 *             return s             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_s);
    __pyx_r = __pyx_v_s;
    goto __pyx_L0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1124
 *                 self.CppSelf.setStatus(cInds[i], status)
 * 
 *     def getConstraintStatus(self, arg):             # <<<<<<<<<<<<<<
 *         '''
 *         Get the status of a constraint.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getConstraintStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_model);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_constName);
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_cInds);
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1151
 * 
 * 
 *     def setColumnUpperArray(self, np.ndarray[np.double_t, ndim=1] columnUpper):             # <<<<<<<<<<<<<<
 *         '''
 *         columnUpper should have n+m elements. The method only does
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_61setColumnUpperArray(PyObject *__pyx_v_self, PyObject *__pyx_v_columnUpper); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_61setColumnUpperArray(PyObject *__pyx_v_self, PyObject *__pyx_v_columnUpper) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setColumnUpperArray (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnUpper), __pyx_ptype_5numpy_ndarray, 1, "columnUpper", 0))) __PYX_ERR(0, 1151, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_60setColumnUpperArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_columnUpper));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_60setColumnUpperArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnUpper) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columnUpper;
  __Pyx_Buffer __pyx_pybuffer_columnUpper;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setColumnUpperArray", 0);
  __Pyx_TraceCall("setColumnUpperArray", __pyx_f[0], 1151, 0, __PYX_ERR(0, 1151, __pyx_L1_error));
  __pyx_pybuffer_columnUpper.pybuffer.buf = NULL;
  __pyx_pybuffer_columnUpper.refcount = 0;
  __pyx_pybuffernd_columnUpper.data = NULL;
  __pyx_pybuffernd_columnUpper.rcbuffer = &__pyx_pybuffer_columnUpper;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1157
 *         elements use setColumnUpperFirstElements().
 *         '''
 *         self.CppSelf.setColumnUpperArray(<double*>columnUpper.data)             # <<<<<<<<<<<<<<
 * 
 *     def setColumnUpperFirstElements(self, np.ndarray[np.double_t, ndim=1] columnUpper):
 */
  __pyx_v_self->CppSelf->setColumnUpperArray(((double *)__pyx_v_columnUpper->data));

  /* "cylp/cy/CyClpSimplex.pyx":1151
 * 
 * 
 *     def setColumnUpperArray(self, np.ndarray[np.double_t, ndim=1] columnUpper):             # <<<<<<<<<<<<<<
 *         '''
 *         columnUpper should have n+m elements. The method only does
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpperArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1159
 *         self.CppSelf.setColumnUpperArray(<double*>columnUpper.data)
 * 
 *     def setColumnUpperFirstElements(self, np.ndarray[np.double_t, ndim=1] columnUpper):             # <<<<<<<<<<<<<<
 *         '''
 *         Run a loop in C++ and set the first n elements of variables' upperbounds
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_63setColumnUpperFirstElements(PyObject *__pyx_v_self, PyObject *__pyx_v_columnUpper); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_63setColumnUpperFirstElements(PyObject *__pyx_v_self, PyObject *__pyx_v_columnUpper) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setColumnUpperFirstElements (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnUpper), __pyx_ptype_5numpy_ndarray, 1, "columnUpper", 0))) __PYX_ERR(0, 1159, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_62setColumnUpperFirstElements(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_columnUpper));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_62setColumnUpperFirstElements(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnUpper) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columnUpper;
  __Pyx_Buffer __pyx_pybuffer_columnUpper;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setColumnUpperFirstElements", 0);
  __Pyx_TraceCall("setColumnUpperFirstElements", __pyx_f[0], 1159, 0, __PYX_ERR(0, 1159, __pyx_L1_error));
  __pyx_pybuffer_columnUpper.pybuffer.buf = NULL;
  __pyx_pybuffer_columnUpper.refcount = 0;
  __pyx_pybuffernd_columnUpper.data = NULL;
  __pyx_pybuffernd_columnUpper.rcbuffer = &__pyx_pybuffer_columnUpper;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1163
 *         Run a loop in C++ and set the first n elements of variables' upperbounds
 *         '''
 *         self.CppSelf.setColumnUpperFirstElements(len(columnUpper), <double*>columnUpper.data)             # <<<<<<<<<<<<<<
 * 
 *     def setColumnLowerArray(self, np.ndarray[np.double_t, ndim=1] columnLower):
 */
  __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)
  __pyx_v_self->CppSelf->setColumnUpperFirstElements(__pyx_t_1, ((double *)__pyx_v_columnUpper->data));

  /* "cylp/cy/CyClpSimplex.pyx":1159
 *         self.CppSelf.setColumnUpperArray(<double*>columnUpper.data)
 * 
 *     def setColumnUpperFirstElements(self, np.ndarray[np.double_t, ndim=1] columnUpper):             # <<<<<<<<<<<<<<
 *         '''
 *         Run a loop in C++ and set the first n elements of variables' upperbounds
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpperFirstElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1165
 *         self.CppSelf.setColumnUpperFirstElements(len(columnUpper), <double*>columnUpper.data)
 * 
 *     def setColumnLowerArray(self, np.ndarray[np.double_t, ndim=1] columnLower):             # <<<<<<<<<<<<<<
 *         '''
 *         columnLower should have n+m elements. The method only does
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_65setColumnLowerArray(PyObject *__pyx_v_self, PyObject *__pyx_v_columnLower); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_65setColumnLowerArray(PyObject *__pyx_v_self, PyObject *__pyx_v_columnLower) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setColumnLowerArray (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnLower), __pyx_ptype_5numpy_ndarray, 1, "columnLower", 0))) __PYX_ERR(0, 1165, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_64setColumnLowerArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_columnLower));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_64setColumnLowerArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnLower) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columnLower;
  __Pyx_Buffer __pyx_pybuffer_columnLower;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setColumnLowerArray", 0);
  __Pyx_TraceCall("setColumnLowerArray", __pyx_f[0], 1165, 0, __PYX_ERR(0, 1165, __pyx_L1_error));
  __pyx_pybuffer_columnLower.pybuffer.buf = NULL;
  __pyx_pybuffer_columnLower.refcount = 0;
  __pyx_pybuffernd_columnLower.data = NULL;
  __pyx_pybuffernd_columnLower.rcbuffer = &__pyx_pybuffer_columnLower;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1171
 *         elements use setColumnLowerFirstElements().
 *         '''
 *         self.CppSelf.setColumnLowerArray(<double*>columnLower.data)             # <<<<<<<<<<<<<<
 * 
 *     def setColumnLowerFirstElements(self, np.ndarray[np.double_t, ndim=1] columnLower):
 */
  __pyx_v_self->CppSelf->setColumnLowerArray(((double *)__pyx_v_columnLower->data));

  /* "cylp/cy/CyClpSimplex.pyx":1165
 *         self.CppSelf.setColumnUpperFirstElements(len(columnUpper), <double*>columnUpper.data)
 * 
 *     def setColumnLowerArray(self, np.ndarray[np.double_t, ndim=1] columnLower):             # <<<<<<<<<<<<<<
 *         '''
 *         columnLower should have n+m elements. The method only does
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLowerArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1173
 *         self.CppSelf.setColumnLowerArray(<double*>columnLower.data)
 * 
 *     def setColumnLowerFirstElements(self, np.ndarray[np.double_t, ndim=1] columnLower):             # <<<<<<<<<<<<<<
 *         '''
 *         Run a loop in C++ and set the first n elements of variables' lowerbounds
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_67setColumnLowerFirstElements(PyObject *__pyx_v_self, PyObject *__pyx_v_columnLower); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_67setColumnLowerFirstElements(PyObject *__pyx_v_self, PyObject *__pyx_v_columnLower) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setColumnLowerFirstElements (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnLower), __pyx_ptype_5numpy_ndarray, 1, "columnLower", 0))) __PYX_ERR(0, 1173, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_66setColumnLowerFirstElements(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_columnLower));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_66setColumnLowerFirstElements(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_columnLower) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columnLower;
  __Pyx_Buffer __pyx_pybuffer_columnLower;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setColumnLowerFirstElements", 0);
  __Pyx_TraceCall("setColumnLowerFirstElements", __pyx_f[0], 1173, 0, __PYX_ERR(0, 1173, __pyx_L1_error));
  __pyx_pybuffer_columnLower.pybuffer.buf = NULL;
  __pyx_pybuffer_columnLower.refcount = 0;
  __pyx_pybuffernd_columnLower.data = NULL;
  __pyx_pybuffernd_columnLower.rcbuffer = &__pyx_pybuffer_columnLower;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1177
 *         Run a loop in C++ and set the first n elements of variables' lowerbounds
 *         '''
 *         self.CppSelf.setColumnLowerFirstElements(len(columnLower), <double*>columnLower.data)             # <<<<<<<<<<<<<<
 * 
 *     def setColumnLowerSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,
 */
  __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)
  __pyx_v_self->CppSelf->setColumnLowerFirstElements(__pyx_t_1, ((double *)__pyx_v_columnLower->data));

  /* "cylp/cy/CyClpSimplex.pyx":1173
 *         self.CppSelf.setColumnLowerArray(<double*>columnLower.data)
 * 
 *     def setColumnLowerFirstElements(self, np.ndarray[np.double_t, ndim=1] columnLower):             # <<<<<<<<<<<<<<
 *         '''
 *         Run a loop in C++ and set the first n elements of variables' lowerbounds
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLowerFirstElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1179
 *         self.CppSelf.setColumnLowerFirstElements(len(columnLower), <double*>columnLower.data)
 * 
 *     def setColumnLowerSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,             # <<<<<<<<<<<<<<
 *                                    np.ndarray[np.int32_t, ndim=1] indices,
 *                                    np.ndarray[np.double_t, ndim=1] columnLower):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_69setColumnLowerSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_69setColumnLowerSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_indicesOfIndices = 0;
  PyArrayObject *__pyx_v_indices = 0;
  PyArrayObject *__pyx_v_columnLower = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setColumnLowerSubset (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indicesOfIndices,&__pyx_n_s_indices,&__pyx_n_s_columnLower,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indicesOfIndices)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setColumnLowerSubset", 1, 3, 3, 1); __PYX_ERR(0, 1179, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnLower)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setColumnLowerSubset", 1, 3, 3, 2); __PYX_ERR(0, 1179, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setColumnLowerSubset") < 0)) __PYX_ERR(0, 1179, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_indicesOfIndices = ((PyArrayObject *)values[0]);
    __pyx_v_indices = ((PyArrayObject *)values[1]);
    __pyx_v_columnLower = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setColumnLowerSubset", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1179, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLowerSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_indicesOfIndices), __pyx_ptype_5numpy_ndarray, 1, "indicesOfIndices", 0))) __PYX_ERR(0, 1179, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_indices), __pyx_ptype_5numpy_ndarray, 1, "indices", 0))) __PYX_ERR(0, 1180, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnLower), __pyx_ptype_5numpy_ndarray, 1, "columnLower", 0))) __PYX_ERR(0, 1181, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columnLower;
  __Pyx_Buffer __pyx_pybuffer_columnLower;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indices;
  __Pyx_Buffer __pyx_pybuffer_indices;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indicesOfIndices;
  __Pyx_Buffer __pyx_pybuffer_indicesOfIndices;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setColumnLowerSubset", 0);
  __Pyx_TraceCall("setColumnLowerSubset", __pyx_f[0], 1179, 0, __PYX_ERR(0, 1179, __pyx_L1_error));
  __pyx_pybuffer_indicesOfIndices.pybuffer.buf = NULL;
  __pyx_pybuffer_indicesOfIndices.refcount = 0;
  __pyx_pybuffernd_indicesOfIndices.data = NULL;
  __pyx_pybuffernd_indicesOfIndices.rcbuffer = &__pyx_pybuffer_indicesOfIndices;
  __pyx_pybuffer_indices.pybuffer.buf = NULL;
  __pyx_pybuffer_indices.refcount = 0;
  __pyx_pybuffernd_indices.data = NULL;
  __pyx_pybuffernd_indices.rcbuffer = &__pyx_pybuffer_indices;
  __pyx_pybuffer_columnLower.pybuffer.buf = NULL;
  __pyx_pybuffer_columnLower.refcount = 0;
  __pyx_pybuffernd_columnLower.data = NULL;
  __pyx_pybuffernd_columnLower.rcbuffer = &__pyx_pybuffer_columnLower;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1186
 *         It's only to be used to speed up self.addConstraint()
 *         '''
 *         self.CppSelf.setColumnLowerSubset(len(indicesOfIndices), <int*> indicesOfIndices.data,             # <<<<<<<<<<<<<<
 *                                           <int*> indices.data,
 *                                           <double*>columnLower.data)
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1188
 *         self.CppSelf.setColumnLowerSubset(len(indicesOfIndices), <int*> indicesOfIndices.data,
 *                                           <int*> indices.data,
 *                                           <double*>columnLower.data)             # <<<<<<<<<<<<<<
 * 
 *     def setColumnUpperSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,
 */
  __pyx_v_self->CppSelf->setColumnLowerSubset(__pyx_t_1, ((int *)__pyx_v_indicesOfIndices->data), ((int *)__pyx_v_indices->data), ((double *)__pyx_v_columnLower->data));

  /* "cylp/cy/CyClpSimplex.pyx":1179
 *         self.CppSelf.setColumnLowerFirstElements(len(columnLower), <double*>columnLower.data)
 * 
 *     def setColumnLowerSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,             # <<<<<<<<<<<<<<
 *                                    np.ndarray[np.int32_t, ndim=1] indices,
 *                                    np.ndarray[np.double_t, ndim=1] columnLower):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnLowerSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1190
 *                                           <double*>columnLower.data)
 * 
 *     def setColumnUpperSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,             # <<<<<<<<<<<<<<
 *                                    np.ndarray[np.int32_t, ndim=1] indices,
 *                                    np.ndarray[np.double_t, ndim=1] columnUpper):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_71setColumnUpperSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_71setColumnUpperSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_indicesOfIndices = 0;
  PyArrayObject *__pyx_v_indices = 0;
  PyArrayObject *__pyx_v_columnUpper = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setColumnUpperSubset (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indicesOfIndices,&__pyx_n_s_indices,&__pyx_n_s_columnUpper,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indicesOfIndices)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setColumnUpperSubset", 1, 3, 3, 1); __PYX_ERR(0, 1190, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnUpper)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setColumnUpperSubset", 1, 3, 3, 2); __PYX_ERR(0, 1190, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setColumnUpperSubset") < 0)) __PYX_ERR(0, 1190, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_indicesOfIndices = ((PyArrayObject *)values[0]);
    __pyx_v_indices = ((PyArrayObject *)values[1]);
    __pyx_v_columnUpper = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setColumnUpperSubset", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1190, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpperSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_indicesOfIndices), __pyx_ptype_5numpy_ndarray, 1, "indicesOfIndices", 0))) __PYX_ERR(0, 1190, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_indices), __pyx_ptype_5numpy_ndarray, 1, "indices", 0))) __PYX_ERR(0, 1191, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnUpper), __pyx_ptype_5numpy_ndarray, 1, "columnUpper", 0))) __PYX_ERR(0, 1192, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columnUpper;
  __Pyx_Buffer __pyx_pybuffer_columnUpper;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indices;
  __Pyx_Buffer __pyx_pybuffer_indices;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indicesOfIndices;
  __Pyx_Buffer __pyx_pybuffer_indicesOfIndices;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setColumnUpperSubset", 0);
  __Pyx_TraceCall("setColumnUpperSubset", __pyx_f[0], 1190, 0, __PYX_ERR(0, 1190, __pyx_L1_error));
  __pyx_pybuffer_indicesOfIndices.pybuffer.buf = NULL;
  __pyx_pybuffer_indicesOfIndices.refcount = 0;
  __pyx_pybuffernd_indicesOfIndices.data = NULL;
  __pyx_pybuffernd_indicesOfIndices.rcbuffer = &__pyx_pybuffer_indicesOfIndices;
  __pyx_pybuffer_indices.pybuffer.buf = NULL;
  __pyx_pybuffer_indices.refcount = 0;
  __pyx_pybuffernd_indices.data = NULL;
  __pyx_pybuffernd_indices.rcbuffer = &__pyx_pybuffer_indices;
  __pyx_pybuffer_columnUpper.pybuffer.buf = NULL;
  __pyx_pybuffer_columnUpper.refcount = 0;
  __pyx_pybuffernd_columnUpper.data = NULL;
  __pyx_pybuffernd_columnUpper.rcbuffer = &__pyx_pybuffer_columnUpper;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1197
 *         It's only to be used to speed up self.addConstraint()
 *         '''
 *         self.CppSelf.setColumnUpperSubset(len(indicesOfIndices), <int*> indicesOfIndices.data,             # <<<<<<<<<<<<<<
 *                                           <int*> indices.data,
 *                                           <double*>columnUpper.data)
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1199
 *         self.CppSelf.setColumnUpperSubset(len(indicesOfIndices), <int*> indicesOfIndices.data,
 *                                           <int*> indices.data,
 *                                           <double*>columnUpper.data)             # <<<<<<<<<<<<<<
 * 
 *     def setRowUpperArray(self, np.ndarray[np.double_t, ndim=1] rowUpper):
 */
  __pyx_v_self->CppSelf->setColumnUpperSubset(__pyx_t_1, ((int *)__pyx_v_indicesOfIndices->data), ((int *)__pyx_v_indices->data), ((double *)__pyx_v_columnUpper->data));

  /* "cylp/cy/CyClpSimplex.pyx":1190
 *                                           <double*>columnLower.data)
 * 
 *     def setColumnUpperSubset(self, np.ndarray[np.int32_t, ndim=1] indicesOfIndices,             # <<<<<<<<<<<<<<
 *                                    np.ndarray[np.int32_t, ndim=1] indices,
 *                                    np.ndarray[np.double_t, ndim=1] columnUpper):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setColumnUpperSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indicesOfIndices.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1201
 *                                           <double*>columnUpper.data)
 * 
 *     def setRowUpperArray(self, np.ndarray[np.double_t, ndim=1] rowUpper):             # <<<<<<<<<<<<<<
 *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_73setRowUpperArray(PyObject *__pyx_v_self, PyObject *__pyx_v_rowUpper); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray[] = "CyClpSimplex.setRowUpperArray(self, ndarray rowUpper)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_73setRowUpperArray(PyObject *__pyx_v_self, PyObject *__pyx_v_rowUpper) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setRowUpperArray (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowUpper), __pyx_ptype_5numpy_ndarray, 1, "rowUpper", 0))) __PYX_ERR(0, 1201, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_rowUpper));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rowUpper) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rowUpper;
  __Pyx_Buffer __pyx_pybuffer_rowUpper;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setRowUpperArray", 0);
  __Pyx_TraceCall("setRowUpperArray", __pyx_f[0], 1201, 0, __PYX_ERR(0, 1201, __pyx_L1_error));
  __pyx_pybuffer_rowUpper.pybuffer.buf = NULL;
  __pyx_pybuffer_rowUpper.refcount = 0;
  __pyx_pybuffernd_rowUpper.data = NULL;
  __pyx_pybuffernd_rowUpper.rcbuffer = &__pyx_pybuffer_rowUpper;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1202
 * 
 *     def setRowUpperArray(self, np.ndarray[np.double_t, ndim=1] rowUpper):
 *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)             # <<<<<<<<<<<<<<
 * 
 *     def setRowLowerArray(self, np.ndarray[np.double_t, ndim=1] rowLower):
 */
  __pyx_v_self->CppSelf->setRowUpperArray(((double *)__pyx_v_rowUpper->data));

  /* "cylp/cy/CyClpSimplex.pyx":1201
 *                                           <double*>columnUpper.data)
 * 
 *     def setRowUpperArray(self, np.ndarray[np.double_t, ndim=1] rowUpper):             # <<<<<<<<<<<<<<
 *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowUpperArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1204
 *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)
 * 
 *     def setRowLowerArray(self, np.ndarray[np.double_t, ndim=1] rowLower):             # <<<<<<<<<<<<<<
 *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_75setRowLowerArray(PyObject *__pyx_v_self, PyObject *__pyx_v_rowLower); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray[] = "CyClpSimplex.setRowLowerArray(self, ndarray rowLower)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_75setRowLowerArray(PyObject *__pyx_v_self, PyObject *__pyx_v_rowLower) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setRowLowerArray (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowLower), __pyx_ptype_5numpy_ndarray, 1, "rowLower", 0))) __PYX_ERR(0, 1204, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_rowLower));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_rowLower) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rowLower;
  __Pyx_Buffer __pyx_pybuffer_rowLower;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setRowLowerArray", 0);
  __Pyx_TraceCall("setRowLowerArray", __pyx_f[0], 1204, 0, __PYX_ERR(0, 1204, __pyx_L1_error));
  __pyx_pybuffer_rowLower.pybuffer.buf = NULL;
  __pyx_pybuffer_rowLower.refcount = 0;
  __pyx_pybuffernd_rowLower.data = NULL;
  __pyx_pybuffernd_rowLower.rcbuffer = &__pyx_pybuffer_rowLower;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1205
 * 
 *     def setRowLowerArray(self, np.ndarray[np.double_t, ndim=1] rowLower):
 *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)             # <<<<<<<<<<<<<<
 * 
 *     def setObjectiveArray(self, np.ndarray[np.double_t, ndim=1] objective):
 */
  __pyx_v_self->CppSelf->setRowLowerArray(((double *)__pyx_v_rowLower->data));

  /* "cylp/cy/CyClpSimplex.pyx":1204
 *         self.CppSelf.setRowUpperArray(<double*>rowUpper.data)
 * 
 *     def setRowLowerArray(self, np.ndarray[np.double_t, ndim=1] rowLower):             # <<<<<<<<<<<<<<
 *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setRowLowerArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1207
 *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)
 * 
 *     def setObjectiveArray(self, np.ndarray[np.double_t, ndim=1] objective):             # <<<<<<<<<<<<<<
 *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_77setObjectiveArray(PyObject *__pyx_v_self, PyObject *__pyx_v_objective); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray[] = "CyClpSimplex.setObjectiveArray(self, ndarray objective)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_77setObjectiveArray(PyObject *__pyx_v_self, PyObject *__pyx_v_objective) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setObjectiveArray (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_objective), __pyx_ptype_5numpy_ndarray, 1, "objective", 0))) __PYX_ERR(0, 1207, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_objective));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_objective) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_objective;
  __Pyx_Buffer __pyx_pybuffer_objective;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setObjectiveArray", 0);
  __Pyx_TraceCall("setObjectiveArray", __pyx_f[0], 1207, 0, __PYX_ERR(0, 1207, __pyx_L1_error));
  __pyx_pybuffer_objective.pybuffer.buf = NULL;
  __pyx_pybuffer_objective.refcount = 0;
  __pyx_pybuffernd_objective.data = NULL;
  __pyx_pybuffernd_objective.rcbuffer = &__pyx_pybuffer_objective;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1208
 * 
 *     def setObjectiveArray(self, np.ndarray[np.double_t, ndim=1] objective):
 *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))             # <<<<<<<<<<<<<<
 * 
 *     cdef double* primalColumnSolution(self):
 */
  __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)
  __pyx_v_self->CppSelf->setObjectiveArray(((double *)__pyx_v_objective->data), __pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":1207
 *         self.CppSelf.setRowLowerArray(<double*>rowLower.data)
 * 
 *     def setObjectiveArray(self, np.ndarray[np.double_t, ndim=1] objective):             # <<<<<<<<<<<<<<
 *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_objective.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setObjectiveArray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_objective.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1210
 *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))
 * 
 *     cdef double* primalColumnSolution(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.primalColumnSolution()
 * 
 */

static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalColumnSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  double *__pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("primalColumnSolution", 0);
  __Pyx_TraceCall("primalColumnSolution", __pyx_f[0], 1210, 0, __PYX_ERR(0, 1210, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1211
 * 
 *     cdef double* primalColumnSolution(self):
 *         return self.CppSelf.primalColumnSolution()             # <<<<<<<<<<<<<<
 * 
 *     cdef double* dualColumnSolution(self):
 */
  __pyx_r = __pyx_v_self->CppSelf->primalColumnSolution();
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1210
 *         self.CppSelf.setObjectiveArray(<double*>objective.data, len(objective))
 * 
 *     cdef double* primalColumnSolution(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.primalColumnSolution()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.primalColumnSolution", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1213
 *         return self.CppSelf.primalColumnSolution()
 * 
 *     cdef double* dualColumnSolution(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.dualColumnSolution()
 * 
 */

static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualColumnSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  double *__pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("dualColumnSolution", 0);
  __Pyx_TraceCall("dualColumnSolution", __pyx_f[0], 1213, 0, __PYX_ERR(0, 1213, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1214
 * 
 *     cdef double* dualColumnSolution(self):
 *         return self.CppSelf.dualColumnSolution()             # <<<<<<<<<<<<<<
 * 
 *     cdef double* primalRowSolution(self):
 */
  __pyx_r = __pyx_v_self->CppSelf->dualColumnSolution();
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1213
 *         return self.CppSelf.primalColumnSolution()
 * 
 *     cdef double* dualColumnSolution(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.dualColumnSolution()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.dualColumnSolution", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1216
 *         return self.CppSelf.dualColumnSolution()
 * 
 *     cdef double* primalRowSolution(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.primalRowSolution()
 * 
 */

static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalRowSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  double *__pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("primalRowSolution", 0);
  __Pyx_TraceCall("primalRowSolution", __pyx_f[0], 1216, 0, __PYX_ERR(0, 1216, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1217
 * 
 *     cdef double* primalRowSolution(self):
 *         return self.CppSelf.primalRowSolution()             # <<<<<<<<<<<<<<
 * 
 *     cdef double* dualRowSolution(self):
 */
  __pyx_r = __pyx_v_self->CppSelf->primalRowSolution();
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1216
 *         return self.CppSelf.dualColumnSolution()
 * 
 *     cdef double* primalRowSolution(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.primalRowSolution()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.primalRowSolution", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1219
 *         return self.CppSelf.primalRowSolution()
 * 
 *     cdef double* dualRowSolution(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.dualRowSolution()
 * 
 */

static double *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualRowSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  double *__pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("dualRowSolution", 0);
  __Pyx_TraceCall("dualRowSolution", __pyx_f[0], 1219, 0, __PYX_ERR(0, 1219, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1220
 * 
 *     cdef double* dualRowSolution(self):
 *         return self.CppSelf.dualRowSolution()             # <<<<<<<<<<<<<<
 * 
 *     def CLP_dualConstraintSolution(self):
 */
  __pyx_r = __pyx_v_self->CppSelf->dualRowSolution();
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1219
 *         return self.CppSelf.primalRowSolution()
 * 
 *     cdef double* dualRowSolution(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.dualRowSolution()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.dualRowSolution", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1222
 *         return self.CppSelf.dualRowSolution()
 * 
 *     def CLP_dualConstraintSolution(self):             # <<<<<<<<<<<<<<
 *         cdef np.npy_intp shape[1]
 *         shape[0] = <np.npy_intp> self.nConstraints
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_79CLP_dualConstraintSolution(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution[] = "CyClpSimplex.CLP_dualConstraintSolution(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_79CLP_dualConstraintSolution(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CLP_dualConstraintSolution (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  npy_intp __pyx_v_shape[1];
  PyObject *__pyx_v_ndarray = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CLP_dualConstraintSolution", 0);
  __Pyx_TraceCall("CLP_dualConstraintSolution", __pyx_f[0], 1222, 0, __PYX_ERR(0, 1222, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1224
 *     def CLP_dualConstraintSolution(self):
 *         cdef np.npy_intp shape[1]
 *         shape[0] = <np.npy_intp> self.nConstraints             # <<<<<<<<<<<<<<
 *         ndarray = np.PyArray_SimpleNewFromData(1, shape,
 *                                                np.NPY_DOUBLE, <void*> self.dualRowSolution())
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (__pyx_v_shape[0]) = ((npy_intp)__pyx_t_2);

  /* "cylp/cy/CyClpSimplex.pyx":1225
 *         cdef np.npy_intp shape[1]
 *         shape[0] = <np.npy_intp> self.nConstraints
 *         ndarray = np.PyArray_SimpleNewFromData(1, shape,             # <<<<<<<<<<<<<<
 *                                                np.NPY_DOUBLE, <void*> self.dualRowSolution())
 *         return ndarray
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1227
 *         ndarray = np.PyArray_SimpleNewFromData(1, shape,
 *                                                np.NPY_DOUBLE, <void*> self.dualRowSolution())
 *         return ndarray             # <<<<<<<<<<<<<<
 * 
 *     #############################################
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ndarray);
  __pyx_r = __pyx_v_ndarray;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1222
 *         return self.CppSelf.dualRowSolution()
 * 
 *     def CLP_dualConstraintSolution(self):             # <<<<<<<<<<<<<<
 *         cdef np.npy_intp shape[1]
 *         shape[0] = <np.npy_intp> self.nConstraints
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_dualConstraintSolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1233
 *     #############################################
 * 
 *     def initialSolve(self, presolve='on'):             # <<<<<<<<<<<<<<
 *         '''
 *         Run CLP's initialSolve. It does a presolve and uses primal or dual
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_81initialSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_81initialSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_presolve = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialSolve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_presolve,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)__pyx_n_s_on);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_presolve);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "initialSolve") < 0)) __PYX_ERR(0, 1233, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_presolve = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("initialSolve", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1233, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.initialSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_80initialSolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_presolve);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_80initialSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_presolve) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initialSolve", 0);
  __Pyx_TraceCall("initialSolve", __pyx_f[0], 1233, 0, __PYX_ERR(0, 1233, __pyx_L1_error));
  __Pyx_INCREF(__pyx_v_presolve);

  /* "cylp/cy/CyClpSimplex.pyx":1251
 * 
 *         '''
 *         presolve = 0 if presolve == 'on' and self.Hessian is None else 1             # <<<<<<<<<<<<<<
 *         return problemStatus[self.CppSelf.initialSolve(presolve)]
 * 
 */
  __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)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L3_bool_binop_done;
  }
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = (__pyx_t_4 == Py_None);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = (__pyx_t_3 != 0);
  __pyx_t_2 = __pyx_t_5;
  __pyx_L3_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_int_0);
    __pyx_t_1 = __pyx_int_0;
  } else {
    __Pyx_INCREF(__pyx_int_1);
    __pyx_t_1 = __pyx_int_1;
  }
  __Pyx_DECREF_SET(__pyx_v_presolve, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1252
 *         '''
 *         presolve = 0 if presolve == 'on' and self.Hessian is None else 1
 *         return problemStatus[self.CppSelf.initialSolve(presolve)]             # <<<<<<<<<<<<<<
 * 
 *     def initialPrimalSolve(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __pyx_t_7 = __pyx_v_self->CppSelf->initialSolve(__pyx_t_6);
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1233
 *     #############################################
 * 
 *     def initialSolve(self, presolve='on'):             # <<<<<<<<<<<<<<
 *         '''
 *         Run CLP's initialSolve. It does a presolve and uses primal or dual
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.initialSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_presolve);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1254
 *         return problemStatus[self.CppSelf.initialSolve(presolve)]
 * 
 *     def initialPrimalSolve(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_83initialPrimalSolve(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_83initialPrimalSolve(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialPrimalSolve (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_82initialPrimalSolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_82initialPrimalSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initialPrimalSolve", 0);
  __Pyx_TraceCall("initialPrimalSolve", __pyx_f[0], 1254, 0, __PYX_ERR(0, 1254, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1272
 * 
 *         '''
 *         return problemStatus[self.CppSelf.initialPrimalSolve()]             # <<<<<<<<<<<<<<
 * 
 *     def initialDualSolve(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_v_self->CppSelf->initialPrimalSolve();
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1254
 *         return problemStatus[self.CppSelf.initialSolve(presolve)]
 * 
 *     def initialPrimalSolve(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.initialPrimalSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1274
 *         return problemStatus[self.CppSelf.initialPrimalSolve()]
 * 
 *     def initialDualSolve(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_85initialDualSolve(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_85initialDualSolve(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialDualSolve (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_84initialDualSolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_84initialDualSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initialDualSolve", 0);
  __Pyx_TraceCall("initialDualSolve", __pyx_f[0], 1274, 0, __PYX_ERR(0, 1274, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1292
 * 
 *         '''
 *         return problemStatus[self.CppSelf.initialDualSolve()]             # <<<<<<<<<<<<<<
 * 
 *     def __iadd__(self, cons):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_v_self->CppSelf->initialDualSolve();
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1274
 *         return problemStatus[self.CppSelf.initialPrimalSolve()]
 * 
 *     def initialDualSolve(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.initialDualSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1294
 *         return problemStatus[self.CppSelf.initialDualSolve()]
 * 
 *     def __iadd__(self, cons):             # <<<<<<<<<<<<<<
 *         self.addConstraint(cons)
 *         return self
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_87__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_cons); /*proto*/
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_87__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_cons) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iadd__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_86__iadd__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_cons));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_86__iadd__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cons) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__iadd__", 0);
  __Pyx_TraceCall("__iadd__", __pyx_f[0], 1294, 0, __PYX_ERR(0, 1294, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1295
 * 
 *     def __iadd__(self, cons):
 *         self.addConstraint(cons)             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1296
 *     def __iadd__(self, cons):
 *         self.addConstraint(cons)
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def addConstraint(self, cons, name='', addMpsNames=True):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1294
 *         return problemStatus[self.CppSelf.initialDualSolve()]
 * 
 *     def __iadd__(self, cons):             # <<<<<<<<<<<<<<
 *         self.addConstraint(cons)
 *         return self
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__iadd__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1298
 *         return self
 * 
 *     def addConstraint(self, cons, name='', addMpsNames=True):             # <<<<<<<<<<<<<<
 *         '''
 *         Adds constraints ``cons``  to the problem. Example for the value
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_89addConstraint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_89addConstraint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_cons = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_addMpsNames = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("addConstraint (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cons,&__pyx_n_s_name,&__pyx_n_s_addMpsNames,0};
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)__pyx_kp_s__8);
    values[2] = ((PyObject *)Py_True);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cons)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addMpsNames);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addConstraint") < 0)) __PYX_ERR(0, 1298, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_cons = values[0];
    __pyx_v_name = values[1];
    __pyx_v_addMpsNames = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("addConstraint", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1298, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_nVarsBefore = NULL;
  PyObject *__pyx_v_nConsBefore = NULL;
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_v_dim = NULL;
  PyObject *__pyx_v_varinds = NULL;
  PyObject *__pyx_v_lb = NULL;
  PyObject *__pyx_v_ub = NULL;
  PyObject *__pyx_v_mainCoef = NULL;
  PyObject *__pyx_v_varName = NULL;
  PyObject *__pyx_v_coef = NULL;
  PyObject *__pyx_v_keys = NULL;
  PyObject *__pyx_v_k = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  Py_ssize_t __pyx_t_11;
  PyObject *(*__pyx_t_12)(PyObject *);
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("addConstraint", 0);
  __Pyx_TraceCall("addConstraint", __pyx_f[0], 1298, 0, __PYX_ERR(0, 1298, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1304
 *         b is a :py:class:`CyLPArray`.
 *         '''
 *         if self.cyLPModel:             # <<<<<<<<<<<<<<
 *             m = self.cyLPModel
 *             nVarsBefore = m.nVars
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1304, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "cylp/cy/CyClpSimplex.pyx":1305
 *         '''
 *         if self.cyLPModel:
 *             m = self.cyLPModel             # <<<<<<<<<<<<<<
 *             nVarsBefore = m.nVars
 *             nConsBefore = m.nCons
 */
    __pyx_t_2 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_m = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1306
 *         if self.cyLPModel:
 *             m = self.cyLPModel
 *             nVarsBefore = m.nVars             # <<<<<<<<<<<<<<
 *             nConsBefore = m.nCons
 *             c = m.addConstraint(cons, name, addMpsNames)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_nVarsBefore = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1307
 *             m = self.cyLPModel
 *             nVarsBefore = m.nVars
 *             nConsBefore = m.nCons             # <<<<<<<<<<<<<<
 *             c = m.addConstraint(cons, name, addMpsNames)
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_nConsBefore = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1308
 *             nVarsBefore = m.nVars
 *             nConsBefore = m.nCons
 *             c = m.addConstraint(cons, name, addMpsNames)             # <<<<<<<<<<<<<<
 * 
 *             # If the dimension is changing, load from scratch
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_cons, __pyx_v_name, __pyx_v_addMpsNames};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_cons, __pyx_v_name, __pyx_v_addMpsNames};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1308, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_cons);
      __Pyx_GIVEREF(__pyx_v_cons);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_cons);
      __Pyx_INCREF(__pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_name);
      __Pyx_INCREF(__pyx_v_addMpsNames);
      __Pyx_GIVEREF(__pyx_v_addMpsNames);
      PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_addMpsNames);
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_c = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1311
 * 
 *             # If the dimension is changing, load from scratch
 *             if nConsBefore == 0 or m.nVars - nVarsBefore != 0:             # <<<<<<<<<<<<<<
 *                 self.loadFromCyLPModel(self.cyLPModel)
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1311, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (!__pyx_t_7) {
    } else {
      __pyx_t_1 = __pyx_t_7;
      goto __pyx_L5_bool_binop_done;
    }
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_v_nVarsBefore); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1311, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __pyx_t_7;
    __pyx_L5_bool_binop_done:;
    if (__pyx_t_1) {

      /* "cylp/cy/CyClpSimplex.pyx":1312
 *             # If the dimension is changing, load from scratch
 *             if nConsBefore == 0 or m.nVars - nVarsBefore != 0:
 *                 self.loadFromCyLPModel(self.cyLPModel)             # <<<<<<<<<<<<<<
 * 
 *             # If the constraint to be added is just a variable range
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __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);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1311
 * 
 *             # If the dimension is changing, load from scratch
 *             if nConsBefore == 0 or m.nVars - nVarsBefore != 0:             # <<<<<<<<<<<<<<
 *                 self.loadFromCyLPModel(self.cyLPModel)
 * 
 */
      goto __pyx_L4;
    }

    /* "cylp/cy/CyClpSimplex.pyx":1315
 * 
 *             # If the constraint to be added is just a variable range
 *             elif c.isRange:             # <<<<<<<<<<<<<<
 *                 var = c.variables[0]
 *                 dim = var.parentDim
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_1) {

      /* "cylp/cy/CyClpSimplex.pyx":1316
 *             # If the constraint to be added is just a variable range
 *             elif c.isRange:
 *                 var = c.variables[0]             # <<<<<<<<<<<<<<
 *                 dim = var.parentDim
 *                 varinds = m.inds.varIndex[var.name]
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_v_var = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1317
 *             elif c.isRange:
 *                 var = c.variables[0]
 *                 dim = var.parentDim             # <<<<<<<<<<<<<<
 *                 varinds = m.inds.varIndex[var.name]
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_v_dim = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1318
 *                 var = c.variables[0]
 *                 dim = var.parentDim
 *                 varinds = m.inds.varIndex[var.name]             # <<<<<<<<<<<<<<
 * 
 *                 lb = var.parent.lower if var.parent else var.lower
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1318, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_v_varinds = __pyx_t_6;
      __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1320
 *                 varinds = m.inds.varIndex[var.name]
 * 
 *                 lb = var.parent.lower if var.parent else var.lower             # <<<<<<<<<<<<<<
 *                 ub = var.parent.upper if var.parent else var.upper
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1320, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_1) {
        __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)
        __Pyx_GOTREF(__pyx_t_3);
        __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)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_6 = __pyx_t_2;
        __pyx_t_2 = 0;
      } else {
        __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)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_6 = __pyx_t_2;
        __pyx_t_2 = 0;
      }
      __pyx_v_lb = __pyx_t_6;
      __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1321
 * 
 *                 lb = var.parent.lower if var.parent else var.lower
 *                 ub = var.parent.upper if var.parent else var.upper             # <<<<<<<<<<<<<<
 * 
 *                 #if len(var.indices != 0 :
 */
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1321, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_1) {
        __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)
        __Pyx_GOTREF(__pyx_t_2);
        __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)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_6 = __pyx_t_3;
        __pyx_t_3 = 0;
      } else {
        __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)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_6 = __pyx_t_3;
        __pyx_t_3 = 0;
      }
      __pyx_v_ub = __pyx_t_6;
      __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1324
 * 
 *                 #if len(var.indices != 0 :
 *                 self.setColumnLowerSubset(var.indices,             # <<<<<<<<<<<<<<
 *                                               varinds,
 *                                               lb)
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_GOTREF(__pyx_t_2);

      /* "cylp/cy/CyClpSimplex.pyx":1326
 *                 self.setColumnLowerSubset(var.indices,
 *                                               varinds,
 *                                               lb)             # <<<<<<<<<<<<<<
 *                 self.setColumnUpperSubset(var.indices,
 *                                               varinds,
 */
      __pyx_t_4 = NULL;
      __pyx_t_5 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
          __pyx_t_5 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_v_varinds, __pyx_v_lb};
        __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)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_v_varinds, __pyx_v_lb};
        __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)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1324, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_4) {
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __pyx_t_4 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_5, __pyx_t_2);
        __Pyx_INCREF(__pyx_v_varinds);
        __Pyx_GIVEREF(__pyx_v_varinds);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_5, __pyx_v_varinds);
        __Pyx_INCREF(__pyx_v_lb);
        __Pyx_GIVEREF(__pyx_v_lb);
        PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_5, __pyx_v_lb);
        __pyx_t_2 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1327
 *                                               varinds,
 *                                               lb)
 *                 self.setColumnUpperSubset(var.indices,             # <<<<<<<<<<<<<<
 *                                               varinds,
 *                                               ub)
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_GOTREF(__pyx_t_8);

      /* "cylp/cy/CyClpSimplex.pyx":1329
 *                 self.setColumnUpperSubset(var.indices,
 *                                               varinds,
 *                                               ub)             # <<<<<<<<<<<<<<
 *                 #for i in var.indices:
 *                 #    self.setColumnLower(varinds[i], lb[i])
 */
      __pyx_t_2 = NULL;
      __pyx_t_5 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
          __pyx_t_5 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_8, __pyx_v_varinds, __pyx_v_ub};
        __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)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_8, __pyx_v_varinds, __pyx_v_ub};
        __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)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      {
        __pyx_t_4 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1327, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (__pyx_t_2) {
          __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_t_8);
        __Pyx_INCREF(__pyx_v_varinds);
        __Pyx_GIVEREF(__pyx_v_varinds);
        PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_varinds);
        __Pyx_INCREF(__pyx_v_ub);
        __Pyx_GIVEREF(__pyx_v_ub);
        PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_ub);
        __pyx_t_8 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1315
 * 
 *             # If the constraint to be added is just a variable range
 *             elif c.isRange:             # <<<<<<<<<<<<<<
 *                 var = c.variables[0]
 *                 dim = var.parentDim
 */
      goto __pyx_L4;
    }

    /* "cylp/cy/CyClpSimplex.pyx":1337
 *             # dimension changes required
 *             else:
 *                 mainCoef = None             # <<<<<<<<<<<<<<
 *                 for varName in m.varNames:
 *                     dim = m.pvdims[varName]
 */
    /*else*/ {
      __Pyx_INCREF(Py_None);
      __pyx_v_mainCoef = Py_None;

      /* "cylp/cy/CyClpSimplex.pyx":1338
 *             else:
 *                 mainCoef = None
 *                 for varName in m.varNames:             # <<<<<<<<<<<<<<
 *                     dim = m.pvdims[varName]
 *                     coef = sparse.coo_matrix((c.nRows, dim))
 */
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_3 = __pyx_t_6; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1338, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1338, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_10(__pyx_t_3);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1338, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_varName, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1339
 *                 mainCoef = None
 *                 for varName in m.varNames:
 *                     dim = m.pvdims[varName]             # <<<<<<<<<<<<<<
 *                     coef = sparse.coo_matrix((c.nRows, dim))
 *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
 */
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_varName); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_dim, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1340
 *                 for varName in m.varNames:
 *                     dim = m.pvdims[varName]
 *                     coef = sparse.coo_matrix((c.nRows, dim))             # <<<<<<<<<<<<<<
 *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
 *                     for var in keys:
 */
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_sparse); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1340, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __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)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1340, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6);
        __Pyx_INCREF(__pyx_v_dim);
        __Pyx_GIVEREF(__pyx_v_dim);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_dim);
        __pyx_t_6 = 0;
        __pyx_t_6 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
          }
        }
        __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);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1340, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1341
 *                     dim = m.pvdims[varName]
 *                     coef = sparse.coo_matrix((c.nRows, dim))
 *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]             # <<<<<<<<<<<<<<
 *                     for var in keys:
 *                         coef = coef + c.varCoefs[var]
 */
        __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __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)
        __Pyx_GOTREF(__pyx_t_2);
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
          }
        }
        __pyx_t_8 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
          __pyx_t_6 = __pyx_t_8; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
          __pyx_t_12 = NULL;
        } else {
          __pyx_t_11 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1341, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_12 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1341, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        for (;;) {
          if (likely(!__pyx_t_12)) {
            if (likely(PyList_CheckExact(__pyx_t_6))) {
              if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            } else {
              if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __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)
              #else
              __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)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            }
          } else {
            __pyx_t_8 = __pyx_t_12(__pyx_t_6);
            if (unlikely(!__pyx_t_8)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1341, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_8);
          }
          __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_8);
          __pyx_t_8 = 0;
          __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)
          __Pyx_GOTREF(__pyx_t_8);
          __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)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1341, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__pyx_t_1) {
            if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_v_k))) __PYX_ERR(0, 1341, __pyx_L1_error)
          }
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_keys, ((PyObject*)__pyx_t_4));
        __pyx_t_4 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1342
 *                     coef = sparse.coo_matrix((c.nRows, dim))
 *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
 *                     for var in keys:             # <<<<<<<<<<<<<<
 *                         coef = coef + c.varCoefs[var]
 *                     mainCoef = sparseConcat(mainCoef, coef, 'h')
 */
        __pyx_t_4 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_4); __pyx_t_11 = 0;
        for (;;) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
          __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_6);
          __pyx_t_6 = 0;

          /* "cylp/cy/CyClpSimplex.pyx":1343
 *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
 *                     for var in keys:
 *                         coef = coef + c.varCoefs[var]             # <<<<<<<<<<<<<<
 *                     mainCoef = sparseConcat(mainCoef, coef, 'h')
 * 
 */
          __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)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_var); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyNumber_Add(__pyx_v_coef, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF_SET(__pyx_v_coef, __pyx_t_6);
          __pyx_t_6 = 0;

          /* "cylp/cy/CyClpSimplex.pyx":1342
 *                     coef = sparse.coo_matrix((c.nRows, dim))
 *                     keys = [k for k in c.varCoefs.keys() if k.name == varName]
 *                     for var in keys:             # <<<<<<<<<<<<<<
 *                         coef = coef + c.varCoefs[var]
 *                     mainCoef = sparseConcat(mainCoef, coef, 'h')
 */
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1344
 *                     for var in keys:
 *                         coef = coef + c.varCoefs[var]
 *                     mainCoef = sparseConcat(mainCoef, coef, 'h')             # <<<<<<<<<<<<<<
 * 
 *                 self.addConstraints(c.nRows,
 */
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_sparseConcat); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1344, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_2 = NULL;
        __pyx_t_5 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_5 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_mainCoef, __pyx_v_coef, __pyx_n_s_h};
          __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)
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_mainCoef, __pyx_v_coef, __pyx_n_s_h};
          __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)
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1344, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_2) {
            __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = NULL;
          }
          __Pyx_INCREF(__pyx_v_mainCoef);
          __Pyx_GIVEREF(__pyx_v_mainCoef);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_5, __pyx_v_mainCoef);
          __Pyx_INCREF(__pyx_v_coef);
          __Pyx_GIVEREF(__pyx_v_coef);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_5, __pyx_v_coef);
          __Pyx_INCREF(__pyx_n_s_h);
          __Pyx_GIVEREF(__pyx_n_s_h);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_5, __pyx_n_s_h);
          __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)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF_SET(__pyx_v_mainCoef, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1338
 *             else:
 *                 mainCoef = None
 *                 for varName in m.varNames:             # <<<<<<<<<<<<<<
 *                     dim = m.pvdims[varName]
 *                     coef = sparse.coo_matrix((c.nRows, dim))
 */
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1346
 *                     mainCoef = sparseConcat(mainCoef, coef, 'h')
 * 
 *                 self.addConstraints(c.nRows,             # <<<<<<<<<<<<<<
 *                         c.lower, c.upper, mainCoef.indptr,
 *                         mainCoef.indices, mainCoef.data)
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_GOTREF(__pyx_t_6);

      /* "cylp/cy/CyClpSimplex.pyx":1347
 * 
 *                 self.addConstraints(c.nRows,
 *                         c.lower, c.upper, mainCoef.indptr,             # <<<<<<<<<<<<<<
 *                         mainCoef.indices, mainCoef.data)
 *         else:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __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)
      __Pyx_GOTREF(__pyx_t_13);

      /* "cylp/cy/CyClpSimplex.pyx":1348
 *                 self.addConstraints(c.nRows,
 *                         c.lower, c.upper, mainCoef.indptr,
 *                         mainCoef.indices, mainCoef.data)             # <<<<<<<<<<<<<<
 *         else:
 *             raise Exception('To add a constraint you must set ' \
 */
      __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)
      __Pyx_GOTREF(__pyx_t_14);
      __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)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_16 = NULL;
      __pyx_t_5 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_16)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_16);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_5 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        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};
        __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)
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        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};
        __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)
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      } else
      #endif
      {
        __pyx_t_17 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        if (__pyx_t_16) {
          __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_16); __pyx_t_16 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_5, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_5, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_5, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_13);
        PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_5, __pyx_t_13);
        __Pyx_GIVEREF(__pyx_t_14);
        PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_5, __pyx_t_14);
        __Pyx_GIVEREF(__pyx_t_15);
        PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_5, __pyx_t_15);
        __pyx_t_6 = 0;
        __pyx_t_8 = 0;
        __pyx_t_2 = 0;
        __pyx_t_13 = 0;
        __pyx_t_14 = 0;
        __pyx_t_15 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_L4:;

    /* "cylp/cy/CyClpSimplex.pyx":1304
 *         b is a :py:class:`CyLPArray`.
 *         '''
 *         if self.cyLPModel:             # <<<<<<<<<<<<<<
 *             m = self.cyLPModel
 *             nVarsBefore = m.nVars
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1350
 *                         mainCoef.indices, mainCoef.data)
 *         else:
 *             raise Exception('To add a constraint you must set ' \             # <<<<<<<<<<<<<<
 *                             'cylpSimplex.cyLPModel first.')
 * 
 */
  /*else*/ {
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 1350, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":1298
 *         return self
 * 
 *     def addConstraint(self, cons, name='', addMpsNames=True):             # <<<<<<<<<<<<<<
 *         '''
 *         Adds constraints ``cons``  to the problem. Example for the value
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_nVarsBefore);
  __Pyx_XDECREF(__pyx_v_nConsBefore);
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_dim);
  __Pyx_XDECREF(__pyx_v_varinds);
  __Pyx_XDECREF(__pyx_v_lb);
  __Pyx_XDECREF(__pyx_v_ub);
  __Pyx_XDECREF(__pyx_v_mainCoef);
  __Pyx_XDECREF(__pyx_v_varName);
  __Pyx_XDECREF(__pyx_v_coef);
  __Pyx_XDECREF(__pyx_v_keys);
  __Pyx_XDECREF(__pyx_v_k);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1353
 *                             'cylpSimplex.cyLPModel first.')
 * 
 *     def removeConstraint(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Removes constraint named ``name`` from the problem.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_91removeConstraint(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint[] = "CyClpSimplex.removeConstraint(self, name)\n\n        Removes constraint named ``name`` from the problem.\n        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_91removeConstraint(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("removeConstraint (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_indsOfRemovedConstriants = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("removeConstraint", 0);
  __Pyx_TraceCall("removeConstraint", __pyx_f[0], 1353, 0, __PYX_ERR(0, 1353, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1357
 *         Removes constraint named ``name`` from the problem.
 *         '''
 *         if self.cyLPModel:             # <<<<<<<<<<<<<<
 *             indsOfRemovedConstriants = self.cyLPModel.removeConstraint(name)
 *             self.CLP_deleteConstraints(indsOfRemovedConstriants)
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1357, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "cylp/cy/CyClpSimplex.pyx":1358
 *         '''
 *         if self.cyLPModel:
 *             indsOfRemovedConstriants = self.cyLPModel.removeConstraint(name)             # <<<<<<<<<<<<<<
 *             self.CLP_deleteConstraints(indsOfRemovedConstriants)
 *             #self.loadFromCyLPModel(self.cyLPModel)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_indsOfRemovedConstriants = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1359
 *         if self.cyLPModel:
 *             indsOfRemovedConstriants = self.cyLPModel.removeConstraint(name)
 *             self.CLP_deleteConstraints(indsOfRemovedConstriants)             # <<<<<<<<<<<<<<
 *             #self.loadFromCyLPModel(self.cyLPModel)
 *         else:
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1357
 *         Removes constraint named ``name`` from the problem.
 *         '''
 *         if self.cyLPModel:             # <<<<<<<<<<<<<<
 *             indsOfRemovedConstriants = self.cyLPModel.removeConstraint(name)
 *             self.CLP_deleteConstraints(indsOfRemovedConstriants)
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1362
 *             #self.loadFromCyLPModel(self.cyLPModel)
 *         else:
 *             raise Exception('To remove a constraint you must set ' \             # <<<<<<<<<<<<<<
 *                             'cylpSimplex.cyLPModel first.')
 * 
 */
  /*else*/ {
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 1362, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":1353
 *                             'cylpSimplex.cyLPModel first.')
 * 
 *     def removeConstraint(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Removes constraint named ``name`` from the problem.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.removeConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_indsOfRemovedConstriants);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1365
 *                             'cylpSimplex.cyLPModel first.')
 * 
 *     def addVariable(self, varname, dim, isInt=False):             # <<<<<<<<<<<<<<
 *         '''
 *         Add variable ``var`` to the problem.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_93addVariable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_93addVariable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_varname = 0;
  PyObject *__pyx_v_dim = 0;
  PyObject *__pyx_v_isInt = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("addVariable (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_varname,&__pyx_n_s_dim,&__pyx_n_s_isInt,0};
    PyObject* values[3] = {0,0,0};
    values[2] = ((PyObject *)Py_False);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_varname)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addVariable", 0, 2, 3, 1); __PYX_ERR(0, 1365, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isInt);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addVariable") < 0)) __PYX_ERR(0, 1365, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_varname = values[0];
    __pyx_v_dim = values[1];
    __pyx_v_isInt = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("addVariable", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1365, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("addVariable", 0);
  __Pyx_TraceCall("addVariable", __pyx_f[0], 1365, 0, __PYX_ERR(0, 1365, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1369
 *         Add variable ``var`` to the problem.
 *         '''
 *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *             self.cyLPModel = CyLPModel()
 *         var = self.cyLPModel.addVariable(varname, dim, isInt)
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1369, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "cylp/cy/CyClpSimplex.pyx":1370
 *         '''
 *         if not self.cyLPModel:
 *             self.cyLPModel = CyLPModel()             # <<<<<<<<<<<<<<
 *         var = self.cyLPModel.addVariable(varname, dim, isInt)
 *         self.loadFromCyLPModel(self.cyLPModel)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->cyLPModel);
    __Pyx_DECREF(__pyx_v_self->cyLPModel);
    __pyx_v_self->cyLPModel = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1369
 *         Add variable ``var`` to the problem.
 *         '''
 *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *             self.cyLPModel = CyLPModel()
 *         var = self.cyLPModel.addVariable(varname, dim, isInt)
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1371
 *         if not self.cyLPModel:
 *             self.cyLPModel = CyLPModel()
 *         var = self.cyLPModel.addVariable(varname, dim, isInt)             # <<<<<<<<<<<<<<
 *         self.loadFromCyLPModel(self.cyLPModel)
 *         return var
 */
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_varname, __pyx_v_dim, __pyx_v_isInt};
    __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)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_3);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_varname, __pyx_v_dim, __pyx_v_isInt};
    __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)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_3);
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_INCREF(__pyx_v_varname);
    __Pyx_GIVEREF(__pyx_v_varname);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_varname);
    __Pyx_INCREF(__pyx_v_dim);
    __Pyx_GIVEREF(__pyx_v_dim);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_dim);
    __Pyx_INCREF(__pyx_v_isInt);
    __Pyx_GIVEREF(__pyx_v_isInt);
    PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_isInt);
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_var = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1372
 *             self.cyLPModel = CyLPModel()
 *         var = self.cyLPModel.addVariable(varname, dim, isInt)
 *         self.loadFromCyLPModel(self.cyLPModel)             # <<<<<<<<<<<<<<
 *         return var
 *         #else:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1373
 *         var = self.cyLPModel.addVariable(varname, dim, isInt)
 *         self.loadFromCyLPModel(self.cyLPModel)
 *         return var             # <<<<<<<<<<<<<<
 *         #else:
 *         #    raise Exception('To add a variable you must set ' \
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_var);
  __pyx_r = __pyx_v_var;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1365
 *                             'cylpSimplex.cyLPModel first.')
 * 
 *     def addVariable(self, varname, dim, isInt=False):             # <<<<<<<<<<<<<<
 *         '''
 *         Add variable ``var`` to the problem.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1378
 *         #                    'cylpSimplex.cyLPModel first.')
 * 
 *     def removeVariable(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Removes variable named ``name`` from the problem.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_95removeVariable(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable[] = "CyClpSimplex.removeVariable(self, name)\n\n        Removes variable named ``name`` from the problem.\n        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_95removeVariable(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("removeVariable (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("removeVariable", 0);
  __Pyx_TraceCall("removeVariable", __pyx_f[0], 1378, 0, __PYX_ERR(0, 1378, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1382
 *         Removes variable named ``name`` from the problem.
 *         '''
 *         if self.cyLPModel:             # <<<<<<<<<<<<<<
 *             self.cyLPModel.removeVariable(name)
 *             self.loadFromCyLPModel(self.cyLPModel)
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1382, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "cylp/cy/CyClpSimplex.pyx":1383
 *         '''
 *         if self.cyLPModel:
 *             self.cyLPModel.removeVariable(name)             # <<<<<<<<<<<<<<
 *             self.loadFromCyLPModel(self.cyLPModel)
 *         else:
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1384
 *         if self.cyLPModel:
 *             self.cyLPModel.removeVariable(name)
 *             self.loadFromCyLPModel(self.cyLPModel)             # <<<<<<<<<<<<<<
 *         else:
 *             raise Exception('To remove a variable you must set ' \
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1382
 *         Removes variable named ``name`` from the problem.
 *         '''
 *         if self.cyLPModel:             # <<<<<<<<<<<<<<
 *             self.cyLPModel.removeVariable(name)
 *             self.loadFromCyLPModel(self.cyLPModel)
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1386
 *             self.loadFromCyLPModel(self.cyLPModel)
 *         else:
 *             raise Exception('To remove a variable you must set ' \             # <<<<<<<<<<<<<<
 *                             'cylpSimplex.cyLPModel first.')
 * 
 */
  /*else*/ {
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 1386, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":1378
 *         #                    'cylpSimplex.cyLPModel first.')
 * 
 *     def removeVariable(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Removes variable named ``name`` from the problem.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.removeVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1389
 *                             'cylpSimplex.cyLPModel first.')
 * 
 *     def getVarByName(self, name):             # <<<<<<<<<<<<<<
 *         if not self.cyLPModel:
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_97getVarByName(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName[] = "CyClpSimplex.getVarByName(self, name)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_97getVarByName(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getVarByName (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getVarByName", 0);
  __Pyx_TraceCall("getVarByName", __pyx_f[0], 1389, 0, __PYX_ERR(0, 1389, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1390
 * 
 *     def getVarByName(self, name):
 *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 *         return self.cyLPModel.getVarByName(name)
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cylp/cy/CyClpSimplex.pyx":1391
 *     def getVarByName(self, name):
 *         if not self.cyLPModel:
 *             raise Exception('No cylpSimplex.cyLPModel is set.')             # <<<<<<<<<<<<<<
 *         return self.cyLPModel.getVarByName(name)
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 1391, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":1390
 * 
 *     def getVarByName(self, name):
 *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 *         return self.cyLPModel.getVarByName(name)
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1392
 *         if not self.cyLPModel:
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 *         return self.cyLPModel.getVarByName(name)             # <<<<<<<<<<<<<<
 * 
 *     def getVarNameByIndex(self, ind):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1389
 *                             'cylpSimplex.cyLPModel first.')
 * 
 *     def getVarByName(self, name):             # <<<<<<<<<<<<<<
 *         if not self.cyLPModel:
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getVarByName", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1394
 *         return self.cyLPModel.getVarByName(name)
 * 
 *     def getVarNameByIndex(self, ind):             # <<<<<<<<<<<<<<
 *         if not self.cyLPModel:
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_99getVarNameByIndex(PyObject *__pyx_v_self, PyObject *__pyx_v_ind); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex[] = "CyClpSimplex.getVarNameByIndex(self, ind)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_99getVarNameByIndex(PyObject *__pyx_v_self, PyObject *__pyx_v_ind) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getVarNameByIndex (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_ind));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getVarNameByIndex", 0);
  __Pyx_TraceCall("getVarNameByIndex", __pyx_f[0], 1394, 0, __PYX_ERR(0, 1394, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1395
 * 
 *     def getVarNameByIndex(self, ind):
 *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 *         return self.cyLPModel.inds.reverseVarSearch(ind)
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "cylp/cy/CyClpSimplex.pyx":1396
 *     def getVarNameByIndex(self, ind):
 *         if not self.cyLPModel:
 *             raise Exception('No cylpSimplex.cyLPModel is set.')             # <<<<<<<<<<<<<<
 *         return self.cyLPModel.inds.reverseVarSearch(ind)
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 1396, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":1395
 * 
 *     def getVarNameByIndex(self, ind):
 *         if not self.cyLPModel:             # <<<<<<<<<<<<<<
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 *         return self.cyLPModel.inds.reverseVarSearch(ind)
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1397
 *         if not self.cyLPModel:
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 *         return self.cyLPModel.inds.reverseVarSearch(ind)             # <<<<<<<<<<<<<<
 * 
 *     def CLP_addConstraint(self, numberInRow,
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1394
 *         return self.cyLPModel.getVarByName(name)
 * 
 *     def getVarNameByIndex(self, ind):             # <<<<<<<<<<<<<<
 *         if not self.cyLPModel:
 *             raise Exception('No cylpSimplex.cyLPModel is set.')
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getVarNameByIndex", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1399
 *         return self.cyLPModel.inds.reverseVarSearch(ind)
 * 
 *     def CLP_addConstraint(self, numberInRow,             # <<<<<<<<<<<<<<
 *                     np.ndarray[np.int32_t, ndim=1] columns,
 *                     np.ndarray[np.double_t, ndim=1] elements,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_101CLP_addConstraint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_101CLP_addConstraint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_numberInRow = 0;
  PyArrayObject *__pyx_v_columns = 0;
  PyArrayObject *__pyx_v_elements = 0;
  PyObject *__pyx_v_rowLower = 0;
  PyObject *__pyx_v_rowUpper = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CLP_addConstraint (wrapper)", 0);
  {
    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};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberInRow)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columns)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, 1); __PYX_ERR(0, 1399, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elements)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, 2); __PYX_ERR(0, 1399, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowLower)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, 3); __PYX_ERR(0, 1399, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowUpper)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, 4); __PYX_ERR(0, 1399, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CLP_addConstraint") < 0)) __PYX_ERR(0, 1399, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_numberInRow = values[0];
    __pyx_v_columns = ((PyArrayObject *)values[1]);
    __pyx_v_elements = ((PyArrayObject *)values[2]);
    __pyx_v_rowLower = values[3];
    __pyx_v_rowUpper = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CLP_addConstraint", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1399, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_addConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columns), __pyx_ptype_5numpy_ndarray, 1, "columns", 0))) __PYX_ERR(0, 1400, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elements), __pyx_ptype_5numpy_ndarray, 1, "elements", 0))) __PYX_ERR(0, 1401, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columns;
  __Pyx_Buffer __pyx_pybuffer_columns;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_elements;
  __Pyx_Buffer __pyx_pybuffer_elements;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  double __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CLP_addConstraint", 0);
  __Pyx_TraceCall("CLP_addConstraint", __pyx_f[0], 1399, 0, __PYX_ERR(0, 1399, __pyx_L1_error));
  __pyx_pybuffer_columns.pybuffer.buf = NULL;
  __pyx_pybuffer_columns.refcount = 0;
  __pyx_pybuffernd_columns.data = NULL;
  __pyx_pybuffernd_columns.rcbuffer = &__pyx_pybuffer_columns;
  __pyx_pybuffer_elements.pybuffer.buf = NULL;
  __pyx_pybuffer_elements.refcount = 0;
  __pyx_pybuffernd_elements.data = NULL;
  __pyx_pybuffernd_elements.rcbuffer = &__pyx_pybuffer_elements;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1411
 *         # TODO: This makes adding a row real slower,
 *         # but it is better than a COIN EXCEPTION!
 *         if (columns >= self.nVariables).any():             # <<<<<<<<<<<<<<
 *             raise Exception('CyClpSimplex.pyx:addConstraint: Column ' \
 *                     'index out of range (number of columns: ' \
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1411, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_4)) {

    /* "cylp/cy/CyClpSimplex.pyx":1414
 *             raise Exception('CyClpSimplex.pyx:addConstraint: Column ' \
 *                     'index out of range (number of columns: ' \
 *                                 '%d)' % (self.nVariables))             # <<<<<<<<<<<<<<
 *         self.CppSelf.addRow(numberInRow, <int*>columns.data,
 *                             <double*>elements.data, rowLower, rowUpper)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1412
 *         # but it is better than a COIN EXCEPTION!
 *         if (columns >= self.nVariables).any():
 *             raise Exception('CyClpSimplex.pyx:addConstraint: Column ' \             # <<<<<<<<<<<<<<
 *                     'index out of range (number of columns: ' \
 *                                 '%d)' % (self.nVariables))
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 1412, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":1411
 *         # TODO: This makes adding a row real slower,
 *         # but it is better than a COIN EXCEPTION!
 *         if (columns >= self.nVariables).any():             # <<<<<<<<<<<<<<
 *             raise Exception('CyClpSimplex.pyx:addConstraint: Column ' \
 *                     'index out of range (number of columns: ' \
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1415
 *                     'index out of range (number of columns: ' \
 *                                 '%d)' % (self.nVariables))
 *         self.CppSelf.addRow(numberInRow, <int*>columns.data,             # <<<<<<<<<<<<<<
 *                             <double*>elements.data, rowLower, rowUpper)
 * 
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1416
 *                                 '%d)' % (self.nVariables))
 *         self.CppSelf.addRow(numberInRow, <int*>columns.data,
 *                             <double*>elements.data, rowLower, rowUpper)             # <<<<<<<<<<<<<<
 * 
 *     def CLP_deleteConstraints(self, np.ndarray[np.int32_t, ndim=1] which):
 */
  __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)
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1415
 *                     'index out of range (number of columns: ' \
 *                                 '%d)' % (self.nVariables))
 *         self.CppSelf.addRow(numberInRow, <int*>columns.data,             # <<<<<<<<<<<<<<
 *                             <double*>elements.data, rowLower, rowUpper)
 * 
 */
  __pyx_v_self->CppSelf->addRow(__pyx_t_5, ((int *)__pyx_v_columns->data), ((double *)__pyx_v_elements->data), __pyx_t_6, __pyx_t_7);

  /* "cylp/cy/CyClpSimplex.pyx":1399
 *         return self.cyLPModel.inds.reverseVarSearch(ind)
 * 
 *     def CLP_addConstraint(self, numberInRow,             # <<<<<<<<<<<<<<
 *                     np.ndarray[np.int32_t, ndim=1] columns,
 *                     np.ndarray[np.double_t, ndim=1] elements,
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columns.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_addConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columns.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1418
 *                             <double*>elements.data, rowLower, rowUpper)
 * 
 *     def CLP_deleteConstraints(self, np.ndarray[np.int32_t, ndim=1] which):             # <<<<<<<<<<<<<<
 *         '''
 *         Delete constraints indexed by ``which`` from the LP.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_103CLP_deleteConstraints(PyObject *__pyx_v_self, PyObject *__pyx_v_which); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_103CLP_deleteConstraints(PyObject *__pyx_v_self, PyObject *__pyx_v_which) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CLP_deleteConstraints (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_which), __pyx_ptype_5numpy_ndarray, 1, "which", 0))) __PYX_ERR(0, 1418, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_102CLP_deleteConstraints(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_which));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_102CLP_deleteConstraints(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_which) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_which;
  __Pyx_Buffer __pyx_pybuffer_which;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CLP_deleteConstraints", 0);
  __Pyx_TraceCall("CLP_deleteConstraints", __pyx_f[0], 1418, 0, __PYX_ERR(0, 1418, __pyx_L1_error));
  __pyx_pybuffer_which.pybuffer.buf = NULL;
  __pyx_pybuffer_which.refcount = 0;
  __pyx_pybuffernd_which.data = NULL;
  __pyx_pybuffernd_which.rcbuffer = &__pyx_pybuffer_which;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1422
 *         Delete constraints indexed by ``which`` from the LP.
 *         '''
 *         if (which >= self.nConstraints).any():             # <<<<<<<<<<<<<<
 *             raise Exception('CyClpSimplex.pyx:deleteConstraints: Constraint ' \
 *                     'index out of range (number of constraints: ' \
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1422, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_4)) {

    /* "cylp/cy/CyClpSimplex.pyx":1425
 *             raise Exception('CyClpSimplex.pyx:deleteConstraints: Constraint ' \
 *                     'index out of range (number of constraints: ' \
 *                                 '%d)' % (self.nConstraints))             # <<<<<<<<<<<<<<
 *         self.CppSelf.deleteRows(len(which), <int*>which.data)
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1423
 *         '''
 *         if (which >= self.nConstraints).any():
 *             raise Exception('CyClpSimplex.pyx:deleteConstraints: Constraint ' \             # <<<<<<<<<<<<<<
 *                     'index out of range (number of constraints: ' \
 *                                 '%d)' % (self.nConstraints))
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 1423, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":1422
 *         Delete constraints indexed by ``which`` from the LP.
 *         '''
 *         if (which >= self.nConstraints).any():             # <<<<<<<<<<<<<<
 *             raise Exception('CyClpSimplex.pyx:deleteConstraints: Constraint ' \
 *                     'index out of range (number of constraints: ' \
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1426
 *                     'index out of range (number of constraints: ' \
 *                                 '%d)' % (self.nConstraints))
 *         self.CppSelf.deleteRows(len(which), <int*>which.data)             # <<<<<<<<<<<<<<
 * 
 *     def CLP_deleteVariables(self, np.ndarray[np.int32_t, ndim=1] which):
 */
  __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)
  __pyx_v_self->CppSelf->deleteRows(__pyx_t_5, ((int *)__pyx_v_which->data));

  /* "cylp/cy/CyClpSimplex.pyx":1418
 *                             <double*>elements.data, rowLower, rowUpper)
 * 
 *     def CLP_deleteConstraints(self, np.ndarray[np.int32_t, ndim=1] which):             # <<<<<<<<<<<<<<
 *         '''
 *         Delete constraints indexed by ``which`` from the LP.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_deleteConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1428
 *         self.CppSelf.deleteRows(len(which), <int*>which.data)
 * 
 *     def CLP_deleteVariables(self, np.ndarray[np.int32_t, ndim=1] which):             # <<<<<<<<<<<<<<
 *         '''
 *         Delete variables indexed by ``which`` from the LP.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_105CLP_deleteVariables(PyObject *__pyx_v_self, PyObject *__pyx_v_which); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_105CLP_deleteVariables(PyObject *__pyx_v_self, PyObject *__pyx_v_which) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CLP_deleteVariables (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_which), __pyx_ptype_5numpy_ndarray, 1, "which", 0))) __PYX_ERR(0, 1428, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_104CLP_deleteVariables(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_which));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_104CLP_deleteVariables(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_which) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_which;
  __Pyx_Buffer __pyx_pybuffer_which;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CLP_deleteVariables", 0);
  __Pyx_TraceCall("CLP_deleteVariables", __pyx_f[0], 1428, 0, __PYX_ERR(0, 1428, __pyx_L1_error));
  __pyx_pybuffer_which.pybuffer.buf = NULL;
  __pyx_pybuffer_which.refcount = 0;
  __pyx_pybuffernd_which.data = NULL;
  __pyx_pybuffernd_which.rcbuffer = &__pyx_pybuffer_which;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1432
 *         Delete variables indexed by ``which`` from the LP.
 *         '''
 *         if (which >= self.nVariables).any():             # <<<<<<<<<<<<<<
 *             raise Exception('CyClpSimplex.pyx:deleteVariables: variable ' \
 *                     'index out of range (number of variables: ' \
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1432, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_4)) {

    /* "cylp/cy/CyClpSimplex.pyx":1435
 *             raise Exception('CyClpSimplex.pyx:deleteVariables: variable ' \
 *                     'index out of range (number of variables: ' \
 *                                 '%d)' % (self.nVariables))             # <<<<<<<<<<<<<<
 *         self.CppSelf.deleteColumns(len(which), <int*>which.data)
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1433
 *         '''
 *         if (which >= self.nVariables).any():
 *             raise Exception('CyClpSimplex.pyx:deleteVariables: variable ' \             # <<<<<<<<<<<<<<
 *                     'index out of range (number of variables: ' \
 *                                 '%d)' % (self.nVariables))
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 1433, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":1432
 *         Delete variables indexed by ``which`` from the LP.
 *         '''
 *         if (which >= self.nVariables).any():             # <<<<<<<<<<<<<<
 *             raise Exception('CyClpSimplex.pyx:deleteVariables: variable ' \
 *                     'index out of range (number of variables: ' \
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1436
 *                     'index out of range (number of variables: ' \
 *                                 '%d)' % (self.nVariables))
 *         self.CppSelf.deleteColumns(len(which), <int*>which.data)             # <<<<<<<<<<<<<<
 * 
 *     def CLP_addVariable(self, numberInColumn,
 */
  __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)
  __pyx_v_self->CppSelf->deleteColumns(__pyx_t_5, ((int *)__pyx_v_which->data));

  /* "cylp/cy/CyClpSimplex.pyx":1428
 *         self.CppSelf.deleteRows(len(which), <int*>which.data)
 * 
 *     def CLP_deleteVariables(self, np.ndarray[np.int32_t, ndim=1] which):             # <<<<<<<<<<<<<<
 *         '''
 *         Delete variables indexed by ``which`` from the LP.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_deleteVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1438
 *         self.CppSelf.deleteColumns(len(which), <int*>which.data)
 * 
 *     def CLP_addVariable(self, numberInColumn,             # <<<<<<<<<<<<<<
 *                         np.ndarray[np.int32_t, ndim=1] rows,
 *                         np.ndarray[np.double_t, ndim=1] elements,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_107CLP_addVariable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_107CLP_addVariable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_numberInColumn = 0;
  PyArrayObject *__pyx_v_rows = 0;
  PyArrayObject *__pyx_v_elements = 0;
  PyObject *__pyx_v_columnLower = 0;
  PyObject *__pyx_v_columnUpper = 0;
  PyObject *__pyx_v_objective = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CLP_addVariable (wrapper)", 0);
  {
    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};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberInColumn)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 1); __PYX_ERR(0, 1438, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elements)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 2); __PYX_ERR(0, 1438, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnLower)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 3); __PYX_ERR(0, 1438, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnUpper)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 4); __PYX_ERR(0, 1438, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objective)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, 5); __PYX_ERR(0, 1438, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CLP_addVariable") < 0)) __PYX_ERR(0, 1438, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_numberInColumn = values[0];
    __pyx_v_rows = ((PyArrayObject *)values[1]);
    __pyx_v_elements = ((PyArrayObject *)values[2]);
    __pyx_v_columnLower = values[3];
    __pyx_v_columnUpper = values[4];
    __pyx_v_objective = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CLP_addVariable", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1438, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_addVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rows), __pyx_ptype_5numpy_ndarray, 1, "rows", 0))) __PYX_ERR(0, 1439, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elements), __pyx_ptype_5numpy_ndarray, 1, "elements", 0))) __PYX_ERR(0, 1440, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_elements;
  __Pyx_Buffer __pyx_pybuffer_elements;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rows;
  __Pyx_Buffer __pyx_pybuffer_rows;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  double __pyx_t_6;
  double __pyx_t_7;
  double __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CLP_addVariable", 0);
  __Pyx_TraceCall("CLP_addVariable", __pyx_f[0], 1438, 0, __PYX_ERR(0, 1438, __pyx_L1_error));
  __pyx_pybuffer_rows.pybuffer.buf = NULL;
  __pyx_pybuffer_rows.refcount = 0;
  __pyx_pybuffernd_rows.data = NULL;
  __pyx_pybuffernd_rows.rcbuffer = &__pyx_pybuffer_rows;
  __pyx_pybuffer_elements.pybuffer.buf = NULL;
  __pyx_pybuffer_elements.refcount = 0;
  __pyx_pybuffernd_elements.data = NULL;
  __pyx_pybuffernd_elements.rcbuffer = &__pyx_pybuffer_elements;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1450
 *         # TODO: This makes adding a column real slower,
 *         # but it is better than a COIN EXCEPTION!
 *         if (rows >= self.nConstraints).any():             # <<<<<<<<<<<<<<
 *             raise Exception('CyClpSimplex.pyx:addColumn: Row '\
 *                     'index out of range (number of rows:  ' \
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1450, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_4)) {

    /* "cylp/cy/CyClpSimplex.pyx":1453
 *             raise Exception('CyClpSimplex.pyx:addColumn: Row '\
 *                     'index out of range (number of rows:  ' \
 *                         '%d)' % (self.nConstraints))             # <<<<<<<<<<<<<<
 *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,
 *                 <double*> elements.data, columnLower,
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1451
 *         # but it is better than a COIN EXCEPTION!
 *         if (rows >= self.nConstraints).any():
 *             raise Exception('CyClpSimplex.pyx:addColumn: Row '\             # <<<<<<<<<<<<<<
 *                     'index out of range (number of rows:  ' \
 *                         '%d)' % (self.nConstraints))
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 1451, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":1450
 *         # TODO: This makes adding a column real slower,
 *         # but it is better than a COIN EXCEPTION!
 *         if (rows >= self.nConstraints).any():             # <<<<<<<<<<<<<<
 *             raise Exception('CyClpSimplex.pyx:addColumn: Row '\
 *                     'index out of range (number of rows:  ' \
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1454
 *                     'index out of range (number of rows:  ' \
 *                         '%d)' % (self.nConstraints))
 *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,             # <<<<<<<<<<<<<<
 *                 <double*> elements.data, columnLower,
 *                                columnUpper, objective)
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1455
 *                         '%d)' % (self.nConstraints))
 *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,
 *                 <double*> elements.data, columnLower,             # <<<<<<<<<<<<<<
 *                                columnUpper, objective)
 * 
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1456
 *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,
 *                 <double*> elements.data, columnLower,
 *                                columnUpper, objective)             # <<<<<<<<<<<<<<
 * 
 *     def addVariables(self, number,
 */
  __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)
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1454
 *                     'index out of range (number of rows:  ' \
 *                         '%d)' % (self.nConstraints))
 *         self.CppSelf.addColumn(numberInColumn, <int*>rows.data,             # <<<<<<<<<<<<<<
 *                 <double*> elements.data, columnLower,
 *                                columnUpper, objective)
 */
  __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);

  /* "cylp/cy/CyClpSimplex.pyx":1438
 *         self.CppSelf.deleteColumns(len(which), <int*>which.data)
 * 
 *     def CLP_addVariable(self, numberInColumn,             # <<<<<<<<<<<<<<
 *                         np.ndarray[np.int32_t, ndim=1] rows,
 *                         np.ndarray[np.double_t, ndim=1] elements,
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.CLP_addVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1458
 *                                columnUpper, objective)
 * 
 *     def addVariables(self, number,             # <<<<<<<<<<<<<<
 *                         np.ndarray[np.double_t, ndim=1] columnLower,
 *                         np.ndarray[np.double_t, ndim=1] columnUpper,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_109addVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_109addVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_number = 0;
  PyArrayObject *__pyx_v_columnLower = 0;
  PyArrayObject *__pyx_v_columnUpper = 0;
  PyArrayObject *__pyx_v_objective = 0;
  PyArrayObject *__pyx_v_columnStarts = 0;
  PyArrayObject *__pyx_v_rows = 0;
  PyArrayObject *__pyx_v_elements = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("addVariables (wrapper)", 0);
  {
    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};
    PyObject* values[7] = {0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_number)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnLower)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 1); __PYX_ERR(0, 1458, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnUpper)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 2); __PYX_ERR(0, 1458, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objective)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 3); __PYX_ERR(0, 1458, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columnStarts)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 4); __PYX_ERR(0, 1458, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 5); __PYX_ERR(0, 1458, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elements)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, 6); __PYX_ERR(0, 1458, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addVariables") < 0)) __PYX_ERR(0, 1458, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
    }
    __pyx_v_number = values[0];
    __pyx_v_columnLower = ((PyArrayObject *)values[1]);
    __pyx_v_columnUpper = ((PyArrayObject *)values[2]);
    __pyx_v_objective = ((PyArrayObject *)values[3]);
    __pyx_v_columnStarts = ((PyArrayObject *)values[4]);
    __pyx_v_rows = ((PyArrayObject *)values[5]);
    __pyx_v_elements = ((PyArrayObject *)values[6]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("addVariables", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1458, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnLower), __pyx_ptype_5numpy_ndarray, 1, "columnLower", 0))) __PYX_ERR(0, 1459, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnUpper), __pyx_ptype_5numpy_ndarray, 1, "columnUpper", 0))) __PYX_ERR(0, 1460, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_objective), __pyx_ptype_5numpy_ndarray, 1, "objective", 0))) __PYX_ERR(0, 1461, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columnStarts), __pyx_ptype_5numpy_ndarray, 1, "columnStarts", 0))) __PYX_ERR(0, 1462, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rows), __pyx_ptype_5numpy_ndarray, 1, "rows", 0))) __PYX_ERR(0, 1463, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elements), __pyx_ptype_5numpy_ndarray, 1, "elements", 0))) __PYX_ERR(0, 1464, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columnLower;
  __Pyx_Buffer __pyx_pybuffer_columnLower;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columnStarts;
  __Pyx_Buffer __pyx_pybuffer_columnStarts;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columnUpper;
  __Pyx_Buffer __pyx_pybuffer_columnUpper;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_elements;
  __Pyx_Buffer __pyx_pybuffer_elements;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_objective;
  __Pyx_Buffer __pyx_pybuffer_objective;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rows;
  __Pyx_Buffer __pyx_pybuffer_rows;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("addVariables", 0);
  __Pyx_TraceCall("addVariables", __pyx_f[0], 1458, 0, __PYX_ERR(0, 1458, __pyx_L1_error));
  __pyx_pybuffer_columnLower.pybuffer.buf = NULL;
  __pyx_pybuffer_columnLower.refcount = 0;
  __pyx_pybuffernd_columnLower.data = NULL;
  __pyx_pybuffernd_columnLower.rcbuffer = &__pyx_pybuffer_columnLower;
  __pyx_pybuffer_columnUpper.pybuffer.buf = NULL;
  __pyx_pybuffer_columnUpper.refcount = 0;
  __pyx_pybuffernd_columnUpper.data = NULL;
  __pyx_pybuffernd_columnUpper.rcbuffer = &__pyx_pybuffer_columnUpper;
  __pyx_pybuffer_objective.pybuffer.buf = NULL;
  __pyx_pybuffer_objective.refcount = 0;
  __pyx_pybuffernd_objective.data = NULL;
  __pyx_pybuffernd_objective.rcbuffer = &__pyx_pybuffer_objective;
  __pyx_pybuffer_columnStarts.pybuffer.buf = NULL;
  __pyx_pybuffer_columnStarts.refcount = 0;
  __pyx_pybuffernd_columnStarts.data = NULL;
  __pyx_pybuffernd_columnStarts.rcbuffer = &__pyx_pybuffer_columnStarts;
  __pyx_pybuffer_rows.pybuffer.buf = NULL;
  __pyx_pybuffer_rows.refcount = 0;
  __pyx_pybuffernd_rows.data = NULL;
  __pyx_pybuffernd_rows.rcbuffer = &__pyx_pybuffer_rows;
  __pyx_pybuffer_elements.pybuffer.buf = NULL;
  __pyx_pybuffer_elements.refcount = 0;
  __pyx_pybuffernd_elements.data = NULL;
  __pyx_pybuffernd_elements.rcbuffer = &__pyx_pybuffer_elements;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1469
 *         For cylp modeling tool see :mod:`cylp.python.modeling.CyLPModel`.
 *         '''
 *         self.CppSelf.addColumns(number, <double*>columnLower.data,             # <<<<<<<<<<<<<<
 *                                         <double*>columnUpper.data,
 *                                         <double*>objective.data,
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1474
 *                                         <int*>columnStarts.data,
 *                                         <int*>rows.data,
 *                                         <double*>elements.data)             # <<<<<<<<<<<<<<
 * 
 *     def addConstraints(self, number,
 */
  __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));

  /* "cylp/cy/CyClpSimplex.pyx":1458
 *                                columnUpper, objective)
 * 
 *     def addVariables(self, number,             # <<<<<<<<<<<<<<
 *                         np.ndarray[np.double_t, ndim=1] columnLower,
 *                         np.ndarray[np.double_t, ndim=1] columnUpper,
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnStarts.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_objective.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addVariables", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnLower.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnStarts.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columnUpper.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_objective.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1476
 *                                         <double*>elements.data)
 * 
 *     def addConstraints(self, number,             # <<<<<<<<<<<<<<
 *                         np.ndarray[np.double_t, ndim=1] rowLower,
 *                         np.ndarray[np.double_t, ndim=1] rowUpper,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_111addConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_111addConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_number = 0;
  PyArrayObject *__pyx_v_rowLower = 0;
  PyArrayObject *__pyx_v_rowUpper = 0;
  PyArrayObject *__pyx_v_rowStarts = 0;
  PyArrayObject *__pyx_v_columns = 0;
  PyArrayObject *__pyx_v_elements = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("addConstraints (wrapper)", 0);
  {
    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};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_number)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowLower)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 1); __PYX_ERR(0, 1476, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowUpper)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 2); __PYX_ERR(0, 1476, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowStarts)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 3); __PYX_ERR(0, 1476, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_columns)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 4); __PYX_ERR(0, 1476, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elements)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, 5); __PYX_ERR(0, 1476, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addConstraints") < 0)) __PYX_ERR(0, 1476, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_number = values[0];
    __pyx_v_rowLower = ((PyArrayObject *)values[1]);
    __pyx_v_rowUpper = ((PyArrayObject *)values[2]);
    __pyx_v_rowStarts = ((PyArrayObject *)values[3]);
    __pyx_v_columns = ((PyArrayObject *)values[4]);
    __pyx_v_elements = ((PyArrayObject *)values[5]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("addConstraints", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1476, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowLower), __pyx_ptype_5numpy_ndarray, 1, "rowLower", 0))) __PYX_ERR(0, 1477, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowUpper), __pyx_ptype_5numpy_ndarray, 1, "rowUpper", 0))) __PYX_ERR(0, 1478, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowStarts), __pyx_ptype_5numpy_ndarray, 1, "rowStarts", 0))) __PYX_ERR(0, 1479, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columns), __pyx_ptype_5numpy_ndarray, 1, "columns", 0))) __PYX_ERR(0, 1480, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elements), __pyx_ptype_5numpy_ndarray, 1, "elements", 0))) __PYX_ERR(0, 1481, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_columns;
  __Pyx_Buffer __pyx_pybuffer_columns;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_elements;
  __Pyx_Buffer __pyx_pybuffer_elements;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rowLower;
  __Pyx_Buffer __pyx_pybuffer_rowLower;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rowStarts;
  __Pyx_Buffer __pyx_pybuffer_rowStarts;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rowUpper;
  __Pyx_Buffer __pyx_pybuffer_rowUpper;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("addConstraints", 0);
  __Pyx_TraceCall("addConstraints", __pyx_f[0], 1476, 0, __PYX_ERR(0, 1476, __pyx_L1_error));
  __pyx_pybuffer_rowLower.pybuffer.buf = NULL;
  __pyx_pybuffer_rowLower.refcount = 0;
  __pyx_pybuffernd_rowLower.data = NULL;
  __pyx_pybuffernd_rowLower.rcbuffer = &__pyx_pybuffer_rowLower;
  __pyx_pybuffer_rowUpper.pybuffer.buf = NULL;
  __pyx_pybuffer_rowUpper.refcount = 0;
  __pyx_pybuffernd_rowUpper.data = NULL;
  __pyx_pybuffernd_rowUpper.rcbuffer = &__pyx_pybuffer_rowUpper;
  __pyx_pybuffer_rowStarts.pybuffer.buf = NULL;
  __pyx_pybuffer_rowStarts.refcount = 0;
  __pyx_pybuffernd_rowStarts.data = NULL;
  __pyx_pybuffernd_rowStarts.rcbuffer = &__pyx_pybuffer_rowStarts;
  __pyx_pybuffer_columns.pybuffer.buf = NULL;
  __pyx_pybuffer_columns.refcount = 0;
  __pyx_pybuffernd_columns.data = NULL;
  __pyx_pybuffernd_columns.rcbuffer = &__pyx_pybuffer_columns;
  __pyx_pybuffer_elements.pybuffer.buf = NULL;
  __pyx_pybuffer_elements.refcount = 0;
  __pyx_pybuffernd_elements.data = NULL;
  __pyx_pybuffernd_elements.rcbuffer = &__pyx_pybuffer_elements;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1486
 *         For cylp modeling tool see :mod:`cylp.python.modeling.CyLPModel`.
 *         '''
 *         self.CppSelf.addRows(number, <double*>rowLower.data,             # <<<<<<<<<<<<<<
 *                                     <double*>rowUpper.data,
 *                                     <int*>rowStarts.data,
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1490
 *                                     <int*>rowStarts.data,
 *                                     <int*>columns.data,
 *                                     <double*>elements.data)             # <<<<<<<<<<<<<<
 * 
 *     cpdef int readMps(self, filename, int keepNames=False,
 */
  __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));

  /* "cylp/cy/CyClpSimplex.pyx":1476
 *                                         <double*>elements.data)
 * 
 *     def addConstraints(self, number,             # <<<<<<<<<<<<<<
 *                         np.ndarray[np.double_t, ndim=1] rowLower,
 *                         np.ndarray[np.double_t, ndim=1] rowUpper,
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columns.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowStarts.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.addConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_columns.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_elements.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowLower.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowStarts.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowUpper.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1492
 *                                     <double*>elements.data)
 * 
 *     cpdef int readMps(self, filename, int keepNames=False,             # <<<<<<<<<<<<<<
 *             int ignoreErrors=False) except *:
 *         '''
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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) {
  int __pyx_v_keepNames = ((int)0);

  /* "cylp/cy/CyClpSimplex.pyx":1493
 * 
 *     cpdef int readMps(self, filename, int keepNames=False,
 *             int ignoreErrors=False) except *:             # <<<<<<<<<<<<<<
 *         '''
 *         Read an mps file. See this :ref:`modeling example <modeling-usage>`.
 */
  int __pyx_v_ignoreErrors = ((int)0);
  CYTHON_UNUSED PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_ext = NULL;
  PyObject *__pyx_v_m = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_ret = NULL;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_t_10;
  int __pyx_t_11;
  char *__pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("readMps", 0);
  __Pyx_TraceCall("readMps", __pyx_f[0], 1492, 0, __PYX_ERR(0, 1492, __pyx_L1_error));
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_keepNames = __pyx_optional_args->keepNames;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ignoreErrors = __pyx_optional_args->ignoreErrors;
      }
    }
  }
  __Pyx_INCREF(__pyx_v_filename);

  /* "cylp/cy/CyClpSimplex.pyx":1492
 *                                     <double*>elements.data)
 * 
 *     cpdef int readMps(self, filename, int keepNames=False,             # <<<<<<<<<<<<<<
 *             int ignoreErrors=False) except *:
 *         '''
 */
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps)) {
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_keepNames); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1492, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_ignoreErrors); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1492, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_filename, __pyx_t_3, __pyx_t_4};
          __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)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_filename, __pyx_t_3, __pyx_t_4};
          __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)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1492, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_INCREF(__pyx_v_filename);
          __Pyx_GIVEREF(__pyx_v_filename);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_filename);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_4);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __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)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":1497
 *         Read an mps file. See this :ref:`modeling example <modeling-usage>`.
 *         '''
 *         filename = filename.encode('ascii')             # <<<<<<<<<<<<<<
 *         name, ext = os.path.splitext(filename)
 *         if ext not in [b'.mps', b'.qps']:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1498
 *         '''
 *         filename = filename.encode('ascii')
 *         name, ext = os.path.splitext(filename)             # <<<<<<<<<<<<<<
 *         if ext not in [b'.mps', b'.qps']:
 *             print('unrecognised extension %s' % ext)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 1498, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_5);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1498, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1498, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1498, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_5 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 1498, __pyx_L1_error)
    __pyx_t_9 = NULL;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 1498, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_name = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_ext = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1499
 *         filename = filename.encode('ascii')
 *         name, ext = os.path.splitext(filename)
 *         if ext not in [b'.mps', b'.qps']:             # <<<<<<<<<<<<<<
 *             print('unrecognised extension %s' % ext)
 *             return -1
 */
  __Pyx_INCREF(__pyx_v_ext);
  __pyx_t_1 = __pyx_v_ext;
  __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)
  if (__pyx_t_11) {
  } else {
    __pyx_t_10 = __pyx_t_11;
    goto __pyx_L6_bool_binop_done;
  }
  __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)
  __pyx_t_10 = __pyx_t_11;
  __pyx_L6_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_11 = (__pyx_t_10 != 0);
  if (__pyx_t_11) {

    /* "cylp/cy/CyClpSimplex.pyx":1500
 *         name, ext = os.path.splitext(filename)
 *         if ext not in [b'.mps', b'.qps']:
 *             print('unrecognised extension %s' % ext)             # <<<<<<<<<<<<<<
 *             return -1
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1501
 *         if ext not in [b'.mps', b'.qps']:
 *             print('unrecognised extension %s' % ext)
 *             return -1             # <<<<<<<<<<<<<<
 * 
 *         if ext == b'.mps':
 */
    __pyx_r = -1;
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1499
 *         filename = filename.encode('ascii')
 *         name, ext = os.path.splitext(filename)
 *         if ext not in [b'.mps', b'.qps']:             # <<<<<<<<<<<<<<
 *             print('unrecognised extension %s' % ext)
 *             return -1
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1503
 *             return -1
 * 
 *         if ext == b'.mps':             # <<<<<<<<<<<<<<
 *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)
 *         else:
 */
  __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)
  if (__pyx_t_11) {

    /* "cylp/cy/CyClpSimplex.pyx":1504
 * 
 *         if ext == b'.mps':
 *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)             # <<<<<<<<<<<<<<
 *         else:
 *             m = CyCoinMpsIO.CyCoinMpsIO()
 */
    __pyx_t_12 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_12) && PyErr_Occurred())) __PYX_ERR(0, 1504, __pyx_L1_error)
    __pyx_r = __pyx_v_self->CppSelf->readMps(__pyx_t_12, __pyx_v_keepNames, __pyx_v_ignoreErrors);
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1503
 *             return -1
 * 
 *         if ext == b'.mps':             # <<<<<<<<<<<<<<
 *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)
 *         else:
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1506
 *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)
 *         else:
 *             m = CyCoinMpsIO.CyCoinMpsIO()             # <<<<<<<<<<<<<<
 *             ret = m.readMps(filename)
 *             self._Hessian = m.Hessian
 */
  /*else*/ {
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_m = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1507
 *         else:
 *             m = CyCoinMpsIO.CyCoinMpsIO()
 *             ret = m.readMps(filename)             # <<<<<<<<<<<<<<
 *             self._Hessian = m.Hessian
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1507, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_ret = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1508
 *             m = CyCoinMpsIO.CyCoinMpsIO()
 *             ret = m.readMps(filename)
 *             self._Hessian = m.Hessian             # <<<<<<<<<<<<<<
 * 
 *             # Since CyCoinMpsIO.readMps seems to be different from ClpModle.readMps
 */
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_GOTREF(__pyx_v_self->_Hessian);
    __Pyx_DECREF(__pyx_v_self->_Hessian);
    __pyx_v_self->_Hessian = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1518
 *             #return ret
 * 
 *             return self.CppSelf.readMps(filename, keepNames, ignoreErrors)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_12 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_12) && PyErr_Occurred())) __PYX_ERR(0, 1518, __pyx_L1_error)
    __pyx_r = __pyx_v_self->CppSelf->readMps(__pyx_t_12, __pyx_v_keepNames, __pyx_v_ignoreErrors);
    goto __pyx_L0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1492
 *                                     <double*>elements.data)
 * 
 *     cpdef int readMps(self, filename, int keepNames=False,             # <<<<<<<<<<<<<<
 *             int ignoreErrors=False) except *:
 *         '''
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_ext);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_filename);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_filename = 0;
  int __pyx_v_keepNames;
  int __pyx_v_ignoreErrors;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("readMps (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_keepNames,&__pyx_n_s_ignoreErrors,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepNames);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ignoreErrors);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "readMps") < 0)) __PYX_ERR(0, 1492, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_filename = values[0];
    if (values[1]) {
      __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)
    } else {
      __pyx_v_keepNames = ((int)0);
    }
    if (values[2]) {
      __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)
    } else {

      /* "cylp/cy/CyClpSimplex.pyx":1493
 * 
 *     cpdef int readMps(self, filename, int keepNames=False,
 *             int ignoreErrors=False) except *:             # <<<<<<<<<<<<<<
 *         '''
 *         Read an mps file. See this :ref:`modeling example <modeling-usage>`.
 */
      __pyx_v_ignoreErrors = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("readMps", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1492, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* "cylp/cy/CyClpSimplex.pyx":1492
 *                                     <double*>elements.data)
 * 
 *     cpdef int readMps(self, filename, int keepNames=False,             # <<<<<<<<<<<<<<
 *             int ignoreErrors=False) except *:
 *         '''
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("readMps", 0);
  __Pyx_TraceCall("readMps (wrapper)", __pyx_f[0], 1492, 0, __PYX_ERR(0, 1492, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.keepNames = __pyx_v_keepNames;
  __pyx_t_2.ignoreErrors = __pyx_v_ignoreErrors;
  __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)
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1521
 * 
 * 
 *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):             # <<<<<<<<<<<<<<
 *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:
 *             return None
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_115extractCyLPModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_114extractCyLPModel[] = "CyClpSimplex.extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_115extractCyLPModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_fileName = 0;
  PyObject *__pyx_v_keepNames = 0;
  PyObject *__pyx_v_ignoreErrors = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("extractCyLPModel (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fileName,&__pyx_n_s_keepNames,&__pyx_n_s_ignoreErrors,0};
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)Py_False);
    values[2] = ((PyObject *)Py_False);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fileName)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepNames);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ignoreErrors);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "extractCyLPModel") < 0)) __PYX_ERR(0, 1521, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_fileName = values[0];
    __pyx_v_keepNames = values[1];
    __pyx_v_ignoreErrors = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("extractCyLPModel", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1521, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.extractCyLPModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_c_up = NULL;
  PyObject *__pyx_v_c_low = NULL;
  PyObject *__pyx_v_mat = NULL;
  PyObject *__pyx_v_C = NULL;
  PyObject *__pyx_v_x_up = NULL;
  PyObject *__pyx_v_x_low = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("extractCyLPModel", 0);
  __Pyx_TraceCall("extractCyLPModel", __pyx_f[0], 1521, 0, __PYX_ERR(0, 1521, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1522
 * 
 *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):
 *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:             # <<<<<<<<<<<<<<
 *             return None
 *         m = CyLPModel()
 */
  __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)
  __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)
  __pyx_t_4.__pyx_n = 2;
  __pyx_t_4.keepNames = __pyx_t_1;
  __pyx_t_4.ignoreErrors = __pyx_t_2;
  __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)
  __pyx_t_5 = ((__pyx_t_3 != 0) != 0);
  if (__pyx_t_5) {

    /* "cylp/cy/CyClpSimplex.pyx":1523
 *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):
 *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:
 *             return None             # <<<<<<<<<<<<<<
 *         m = CyLPModel()
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1522
 * 
 *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):
 *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:             # <<<<<<<<<<<<<<
 *             return None
 *         m = CyLPModel()
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1524
 *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:
 *             return None
 *         m = CyLPModel()             # <<<<<<<<<<<<<<
 * 
 *         x = m.addVariable('x', self.nVariables)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_m = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1526
 *         m = CyLPModel()
 * 
 *         x = m.addVariable('x', self.nVariables)             # <<<<<<<<<<<<<<
 * 
 *         # Copy is crucial. Memory space should be different than
 */
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __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)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_3 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_3 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_n_s_x, __pyx_t_8};
    __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)
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_n_s_x, __pyx_t_8};
    __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)
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  {
    __pyx_t_10 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (__pyx_t_9) {
      __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL;
    }
    __Pyx_INCREF(__pyx_n_s_x);
    __Pyx_GIVEREF(__pyx_n_s_x);
    PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_3, __pyx_n_s_x);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_3, __pyx_t_8);
    __pyx_t_8 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_x = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1530
 *         # Copy is crucial. Memory space should be different than
 *         # that of Clp. Else, a resize will ruin these.
 *         c_up = CyLPArray(self.constraintsUpper).copy()             # <<<<<<<<<<<<<<
 *         c_low = CyLPArray(self.constraintsLower).copy()
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __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)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
    }
  }
  __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_v_c_up = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1531
 *         # that of Clp. Else, a resize will ruin these.
 *         c_up = CyLPArray(self.constraintsUpper).copy()
 *         c_low = CyLPArray(self.constraintsLower).copy()             # <<<<<<<<<<<<<<
 * 
 *         mat = self.matrix
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __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)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_c_low = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1533
 *         c_low = CyLPArray(self.constraintsLower).copy()
 * 
 *         mat = self.matrix             # <<<<<<<<<<<<<<
 *         C = csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
 *                              shape=(self.nConstraints, self.nVariables))
 */
  __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)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_mat = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1534
 * 
 *         mat = self.matrix
 *         C = csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),             # <<<<<<<<<<<<<<
 *                              shape=(self.nConstraints, self.nVariables))
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_csc_matrixPlus); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __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)
  __Pyx_GOTREF(__pyx_t_10);
  __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)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_10);
  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_8);
  __pyx_t_7 = 0;
  __pyx_t_10 = 0;
  __pyx_t_8 = 0;
  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9);
  __pyx_t_9 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1535
 *         mat = self.matrix
 *         C = csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),
 *                              shape=(self.nConstraints, self.nVariables))             # <<<<<<<<<<<<<<
 * 
 *         m += c_low <= C * x <= c_up
 */
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __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)
  __Pyx_GOTREF(__pyx_t_10);
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_10);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7);
  __pyx_t_10 = 0;
  __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_shape, __pyx_t_11) < 0) __PYX_ERR(0, 1535, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1534
 * 
 *         mat = self.matrix
 *         C = csc_matrixPlus((mat.elements, mat.indices, mat.vectorStarts),             # <<<<<<<<<<<<<<
 *                              shape=(self.nConstraints, self.nVariables))
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_v_C = __pyx_t_11;
  __pyx_t_11 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1537
 *                              shape=(self.nConstraints, self.nVariables))
 * 
 *         m += c_low <= C * x <= c_up             # <<<<<<<<<<<<<<
 * 
 *         x_up = CyLPArray(self.variablesUpper).copy()
 */
  __pyx_t_11 = PyNumber_Multiply(__pyx_v_C, __pyx_v_x); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __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)
  if (__Pyx_PyObject_IsTrue(__pyx_t_9)) {
    __Pyx_DECREF(__pyx_t_9);
    __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)
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_v_m, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF_SET(__pyx_v_m, __pyx_t_11);
  __pyx_t_11 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1539
 *         m += c_low <= C * x <= c_up
 * 
 *         x_up = CyLPArray(self.variablesUpper).copy()             # <<<<<<<<<<<<<<
 *         x_low = CyLPArray(self.variablesLower).copy()
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __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)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
    }
  }
  __pyx_t_11 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_x_up = __pyx_t_11;
  __pyx_t_11 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1540
 * 
 *         x_up = CyLPArray(self.variablesUpper).copy()
 *         x_low = CyLPArray(self.variablesLower).copy()             # <<<<<<<<<<<<<<
 * 
 *         m += x_low <= x <= x_up
 */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __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)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
    }
  }
  __pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_v_x_low = __pyx_t_11;
  __pyx_t_11 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1542
 *         x_low = CyLPArray(self.variablesLower).copy()
 * 
 *         m += x_low <= x <= x_up             # <<<<<<<<<<<<<<
 * 
 *         m.objective = self.objective
 */
  __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)
  if (__Pyx_PyObject_IsTrue(__pyx_t_11)) {
    __Pyx_DECREF(__pyx_t_11);
    __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)
  }
  __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_m, __pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF_SET(__pyx_v_m, __pyx_t_9);
  __pyx_t_9 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1544
 *         m += x_low <= x <= x_up
 * 
 *         m.objective = self.objective             # <<<<<<<<<<<<<<
 * 
 *         self.cyLPModel = m
 */
  __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)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_m, __pyx_n_s_objective, __pyx_t_9) < 0) __PYX_ERR(0, 1544, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1546
 *         m.objective = self.objective
 * 
 *         self.cyLPModel = m             # <<<<<<<<<<<<<<
 *         return m
 * 
 */
  __Pyx_INCREF(__pyx_v_m);
  __Pyx_GIVEREF(__pyx_v_m);
  __Pyx_GOTREF(__pyx_v_self->cyLPModel);
  __Pyx_DECREF(__pyx_v_self->cyLPModel);
  __pyx_v_self->cyLPModel = __pyx_v_m;

  /* "cylp/cy/CyClpSimplex.pyx":1547
 * 
 *         self.cyLPModel = m
 *         return m             # <<<<<<<<<<<<<<
 * 
 *     def _extractStartFinish(self, startFinishOptions):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_m);
  __pyx_r = __pyx_v_m;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1521
 * 
 * 
 *     def extractCyLPModel(self, fileName, keepNames=False, ignoreErrors=False):             # <<<<<<<<<<<<<<
 *         if self.readMps(fileName, keepNames, ignoreErrors) != 0:
 *             return None
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.extractCyLPModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_c_up);
  __Pyx_XDECREF(__pyx_v_c_low);
  __Pyx_XDECREF(__pyx_v_mat);
  __Pyx_XDECREF(__pyx_v_C);
  __Pyx_XDECREF(__pyx_v_x_up);
  __Pyx_XDECREF(__pyx_v_x_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1549
 *         return m
 * 
 *     def _extractStartFinish(self, startFinishOptions):             # <<<<<<<<<<<<<<
 *         if isinstance(startFinishOptions, int):
 *             sf = startFinishOptions
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_117_extractStartFinish(PyObject *__pyx_v_self, PyObject *__pyx_v_startFinishOptions); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_116_extractStartFinish[] = "CyClpSimplex._extractStartFinish(self, startFinishOptions)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_117_extractStartFinish(PyObject *__pyx_v_self, PyObject *__pyx_v_startFinishOptions) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_extractStartFinish (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_116_extractStartFinish(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_startFinishOptions));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_sf = NULL;
  PyObject *__pyx_v_option = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_extractStartFinish", 0);
  __Pyx_TraceCall("_extractStartFinish", __pyx_f[0], 1549, 0, __PYX_ERR(0, 1549, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1550
 * 
 *     def _extractStartFinish(self, startFinishOptions):
 *         if isinstance(startFinishOptions, int):             # <<<<<<<<<<<<<<
 *             sf = startFinishOptions
 *         else:
 */
  __pyx_t_1 = PyInt_Check(__pyx_v_startFinishOptions); 
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "cylp/cy/CyClpSimplex.pyx":1551
 *     def _extractStartFinish(self, startFinishOptions):
 *         if isinstance(startFinishOptions, int):
 *             sf = startFinishOptions             # <<<<<<<<<<<<<<
 *         else:
 *             sf = 0
 */
    __Pyx_INCREF(__pyx_v_startFinishOptions);
    __pyx_v_sf = __pyx_v_startFinishOptions;

    /* "cylp/cy/CyClpSimplex.pyx":1550
 * 
 *     def _extractStartFinish(self, startFinishOptions):
 *         if isinstance(startFinishOptions, int):             # <<<<<<<<<<<<<<
 *             sf = startFinishOptions
 *         else:
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1553
 *             sf = startFinishOptions
 *         else:
 *             sf = 0             # <<<<<<<<<<<<<<
 *             for option in startFinishOptions:
 *                 sf = sf | startFinishOptionsDic[option]
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_sf = __pyx_int_0;

    /* "cylp/cy/CyClpSimplex.pyx":1554
 *         else:
 *             sf = 0
 *             for option in startFinishOptions:             # <<<<<<<<<<<<<<
 *                 sf = sf | startFinishOptionsDic[option]
 *         return sf
 */
    if (likely(PyList_CheckExact(__pyx_v_startFinishOptions)) || PyTuple_CheckExact(__pyx_v_startFinishOptions)) {
      __pyx_t_3 = __pyx_v_startFinishOptions; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
      __pyx_t_5 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_startFinishOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1554, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1554, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_5)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_5(__pyx_t_3);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1554, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_option, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1555
 *             sf = 0
 *             for option in startFinishOptions:
 *                 sf = sf | startFinishOptionsDic[option]             # <<<<<<<<<<<<<<
 *         return sf
 * 
 */
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_startFinishOptionsDic); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1555, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_option); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1555, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_Or(__pyx_v_sf, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1555, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF_SET(__pyx_v_sf, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1554
 *         else:
 *             sf = 0
 *             for option in startFinishOptions:             # <<<<<<<<<<<<<<
 *                 sf = sf | startFinishOptionsDic[option]
 *         return sf
 */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":1556
 *             for option in startFinishOptions:
 *                 sf = sf | startFinishOptionsDic[option]
 *         return sf             # <<<<<<<<<<<<<<
 * 
 *     def primal(self, ifValuesPass=0, startFinishOptions=0, presolve=False):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_sf);
  __pyx_r = __pyx_v_sf;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1549
 *         return m
 * 
 *     def _extractStartFinish(self, startFinishOptions):             # <<<<<<<<<<<<<<
 *         if isinstance(startFinishOptions, int):
 *             sf = startFinishOptions
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex._extractStartFinish", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_sf);
  __Pyx_XDECREF(__pyx_v_option);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1558
 *         return sf
 * 
 *     def primal(self, ifValuesPass=0, startFinishOptions=0, presolve=False):             # <<<<<<<<<<<<<<
 *         '''
 *         Solve the problem using the primal simplex algorithm.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_119primal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_119primal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_ifValuesPass = 0;
  PyObject *__pyx_v_startFinishOptions = 0;
  PyObject *__pyx_v_presolve = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("primal (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ifValuesPass,&__pyx_n_s_startFinishOptions,&__pyx_n_s_presolve,0};
    PyObject* values[3] = {0,0,0};
    values[0] = ((PyObject *)__pyx_int_0);
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = ((PyObject *)Py_False);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ifValuesPass);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startFinishOptions);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_presolve);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "primal") < 0)) __PYX_ERR(0, 1558, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_ifValuesPass = values[0];
    __pyx_v_startFinishOptions = values[1];
    __pyx_v_presolve = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("primal", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1558, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_sf = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("primal", 0);
  __Pyx_TraceCall("primal", __pyx_f[0], 1558, 0, __PYX_ERR(0, 1558, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1570
 *         So one might call ``self.primal(startFinishOptions='sx')``
 *         '''
 *         sf = self._extractStartFinish(startFinishOptions)             # <<<<<<<<<<<<<<
 *         if presolve:
 *             return self.primalWithPresolve()
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1570, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_sf = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1571
 *         '''
 *         sf = self._extractStartFinish(startFinishOptions)
 *         if presolve:             # <<<<<<<<<<<<<<
 *             return self.primalWithPresolve()
 *         else:
 */
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_presolve); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1571, __pyx_L1_error)
  if (__pyx_t_4) {

    /* "cylp/cy/CyClpSimplex.pyx":1572
 *         sf = self._extractStartFinish(startFinishOptions)
 *         if presolve:
 *             return self.primalWithPresolve()             # <<<<<<<<<<<<<<
 *         else:
 *             return problemStatus[self.CppSelf.primal(
 */
    __Pyx_XDECREF(__pyx_r);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1572, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1571
 *         '''
 *         sf = self._extractStartFinish(startFinishOptions)
 *         if presolve:             # <<<<<<<<<<<<<<
 *             return self.primalWithPresolve()
 *         else:
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1574
 *             return self.primalWithPresolve()
 *         else:
 *             return problemStatus[self.CppSelf.primal(             # <<<<<<<<<<<<<<
 *                              ifValuesPass, sf)]
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1574, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "cylp/cy/CyClpSimplex.pyx":1575
 *         else:
 *             return problemStatus[self.CppSelf.primal(
 *                              ifValuesPass, sf)]             # <<<<<<<<<<<<<<
 * 
 *     def dual(self, ifValuesPass=0, startFinishOptions=0, presolve=False):
 */
    __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)
    __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)

    /* "cylp/cy/CyClpSimplex.pyx":1574
 *             return self.primalWithPresolve()
 *         else:
 *             return problemStatus[self.CppSelf.primal(             # <<<<<<<<<<<<<<
 *                              ifValuesPass, sf)]
 * 
 */
    __pyx_t_7 = __pyx_v_self->CppSelf->primal(__pyx_t_5, __pyx_t_6);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1558
 *         return sf
 * 
 *     def primal(self, ifValuesPass=0, startFinishOptions=0, presolve=False):             # <<<<<<<<<<<<<<
 *         '''
 *         Solve the problem using the primal simplex algorithm.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_sf);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1577
 *                              ifValuesPass, sf)]
 * 
 *     def dual(self, ifValuesPass=0, startFinishOptions=0, presolve=False):             # <<<<<<<<<<<<<<
 *         '''
 *         Runs CLP dual simplex.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_121dual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_121dual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_ifValuesPass = 0;
  PyObject *__pyx_v_startFinishOptions = 0;
  PyObject *__pyx_v_presolve = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dual (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ifValuesPass,&__pyx_n_s_startFinishOptions,&__pyx_n_s_presolve,0};
    PyObject* values[3] = {0,0,0};
    values[0] = ((PyObject *)__pyx_int_0);
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = ((PyObject *)Py_False);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ifValuesPass);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startFinishOptions);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_presolve);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dual") < 0)) __PYX_ERR(0, 1577, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_ifValuesPass = values[0];
    __pyx_v_startFinishOptions = values[1];
    __pyx_v_presolve = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("dual", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1577, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dual", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_sf = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("dual", 0);
  __Pyx_TraceCall("dual", __pyx_f[0], 1577, 0, __PYX_ERR(0, 1577, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1592
 * 
 *         '''
 *         sf = self._extractStartFinish(startFinishOptions)             # <<<<<<<<<<<<<<
 *         if presolve:
 *             return self.dualWithPresolve()
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_sf = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1593
 *         '''
 *         sf = self._extractStartFinish(startFinishOptions)
 *         if presolve:             # <<<<<<<<<<<<<<
 *             return self.dualWithPresolve()
 *         else:
 */
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_presolve); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1593, __pyx_L1_error)
  if (__pyx_t_4) {

    /* "cylp/cy/CyClpSimplex.pyx":1594
 *         sf = self._extractStartFinish(startFinishOptions)
 *         if presolve:
 *             return self.dualWithPresolve()             # <<<<<<<<<<<<<<
 *         else:
 *             return problemStatus[self.CppSelf.dual(
 */
    __Pyx_XDECREF(__pyx_r);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1594, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1593
 *         '''
 *         sf = self._extractStartFinish(startFinishOptions)
 *         if presolve:             # <<<<<<<<<<<<<<
 *             return self.dualWithPresolve()
 *         else:
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1596
 *             return self.dualWithPresolve()
 *         else:
 *             return problemStatus[self.CppSelf.dual(             # <<<<<<<<<<<<<<
 *                             ifValuesPass, sf)]
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1596, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "cylp/cy/CyClpSimplex.pyx":1597
 *         else:
 *             return problemStatus[self.CppSelf.dual(
 *                             ifValuesPass, sf)]             # <<<<<<<<<<<<<<
 * 
 *     def setPerturbation(self, value):
 */
    __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)
    __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)

    /* "cylp/cy/CyClpSimplex.pyx":1596
 *             return self.dualWithPresolve()
 *         else:
 *             return problemStatus[self.CppSelf.dual(             # <<<<<<<<<<<<<<
 *                             ifValuesPass, sf)]
 * 
 */
    __pyx_t_7 = __pyx_v_self->CppSelf->dual(__pyx_t_5, __pyx_t_6);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1577
 *                              ifValuesPass, sf)]
 * 
 *     def dual(self, ifValuesPass=0, startFinishOptions=0, presolve=False):             # <<<<<<<<<<<<<<
 *         '''
 *         Runs CLP dual simplex.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dual", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_sf);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1599
 *                             ifValuesPass, sf)]
 * 
 *     def setPerturbation(self, value):             # <<<<<<<<<<<<<<
 *         '''
 *         Perturb the problem by ``value``.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_123setPerturbation(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation[] = "CyClpSimplex.setPerturbation(self, value)\n\n        Perturb the problem by ``value``.\n        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_123setPerturbation(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setPerturbation (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setPerturbation", 0);
  __Pyx_TraceCall("setPerturbation", __pyx_f[0], 1599, 0, __PYX_ERR(0, 1599, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1603
 *         Perturb the problem by ``value``.
 *         '''
 *         self.CppSelf.setPerturbation(value)             # <<<<<<<<<<<<<<
 * 
 *     cdef setPrimalColumnPivotAlgorithm(self, void* choice):
 */
  __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)
  __pyx_v_self->CppSelf->setPerturbation(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":1599
 *                             ifValuesPass, sf)]
 * 
 *     def setPerturbation(self, value):             # <<<<<<<<<<<<<<
 *         '''
 *         Perturb the problem by ``value``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPerturbation", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1605
 *         self.CppSelf.setPerturbation(value)
 * 
 *     cdef setPrimalColumnPivotAlgorithm(self, void* choice):             # <<<<<<<<<<<<<<
 *         '''
 *         Set primal simplex's pivot rule to ``choice``
 */

static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setPrimalColumnPivotAlgorithm(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, void *__pyx_v_choice) {
  ClpPrimalColumnPivot *__pyx_v_c;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithm", 0);
  __Pyx_TraceCall("setPrimalColumnPivotAlgorithm", __pyx_f[0], 1605, 0, __PYX_ERR(0, 1605, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1610
 *         This is used when setting a pivot rule in Cython
 *         '''
 *         cdef CppClpPrimalColumnPivot* c = <CppClpPrimalColumnPivot*> choice             # <<<<<<<<<<<<<<
 *         self.CppSelf.setPrimalColumnPivotAlgorithm(c)
 * 
 */
  __pyx_v_c = ((ClpPrimalColumnPivot *)__pyx_v_choice);

  /* "cylp/cy/CyClpSimplex.pyx":1611
 *         '''
 *         cdef CppClpPrimalColumnPivot* c = <CppClpPrimalColumnPivot*> choice
 *         self.CppSelf.setPrimalColumnPivotAlgorithm(c)             # <<<<<<<<<<<<<<
 * 
 *     cdef setDualRowPivotAlgorithm(self, void* choice):
 */
  __pyx_v_self->CppSelf->setPrimalColumnPivotAlgorithm(__pyx_v_c);

  /* "cylp/cy/CyClpSimplex.pyx":1605
 *         self.CppSelf.setPerturbation(value)
 * 
 *     cdef setPrimalColumnPivotAlgorithm(self, void* choice):             # <<<<<<<<<<<<<<
 *         '''
 *         Set primal simplex's pivot rule to ``choice``
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPrimalColumnPivotAlgorithm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1613
 *         self.CppSelf.setPrimalColumnPivotAlgorithm(c)
 * 
 *     cdef setDualRowPivotAlgorithm(self, void* choice):             # <<<<<<<<<<<<<<
 *         '''
 *         Set dual simplex's pivot rule to ``choice``
 */

static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setDualRowPivotAlgorithm(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, void *__pyx_v_choice) {
  ClpDualRowPivot *__pyx_v_c;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setDualRowPivotAlgorithm", 0);
  __Pyx_TraceCall("setDualRowPivotAlgorithm", __pyx_f[0], 1613, 0, __PYX_ERR(0, 1613, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1618
 *         This is used when setting a pivot rule in Cython
 *         '''
 *         cdef CppClpDualRowPivot* c = <CppClpDualRowPivot*> choice             # <<<<<<<<<<<<<<
 *         self.CppSelf.setDualRowPivotAlgorithm(c)
 * 
 */
  __pyx_v_c = ((ClpDualRowPivot *)__pyx_v_choice);

  /* "cylp/cy/CyClpSimplex.pyx":1619
 *         '''
 *         cdef CppClpDualRowPivot* c = <CppClpDualRowPivot*> choice
 *         self.CppSelf.setDualRowPivotAlgorithm(c)             # <<<<<<<<<<<<<<
 * 
 *     def resize(self, newNumberRows, newNumberColumns):
 */
  __pyx_v_self->CppSelf->setDualRowPivotAlgorithm(__pyx_v_c);

  /* "cylp/cy/CyClpSimplex.pyx":1613
 *         self.CppSelf.setPrimalColumnPivotAlgorithm(c)
 * 
 *     cdef setDualRowPivotAlgorithm(self, void* choice):             # <<<<<<<<<<<<<<
 *         '''
 *         Set dual simplex's pivot rule to ``choice``
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setDualRowPivotAlgorithm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1621
 *         self.CppSelf.setDualRowPivotAlgorithm(c)
 * 
 *     def resize(self, newNumberRows, newNumberColumns):             # <<<<<<<<<<<<<<
 *         '''
 *         Resize the problem. After a call to ``resize`` the problem will have
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_125resize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_125resize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_newNumberRows = 0;
  PyObject *__pyx_v_newNumberColumns = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("resize (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_newNumberRows,&__pyx_n_s_newNumberColumns,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_newNumberRows)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_newNumberColumns)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("resize", 1, 2, 2, 1); __PYX_ERR(0, 1621, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "resize") < 0)) __PYX_ERR(0, 1621, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_newNumberRows = values[0];
    __pyx_v_newNumberColumns = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("resize", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1621, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.resize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("resize", 0);
  __Pyx_TraceCall("resize", __pyx_f[0], 1621, 0, __PYX_ERR(0, 1621, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1626
 *         ``newNumberRows`` constraints and ``newNumberColumns`` variables.
 *         '''
 *         self.CppSelf.resize(newNumberRows, newNumberColumns)             # <<<<<<<<<<<<<<
 * 
 *     def getBInvACol(self, col, np.ndarray[np.double_t, ndim=1] cl):
 */
  __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)
  __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)
  __pyx_v_self->CppSelf->resize(__pyx_t_1, __pyx_t_2);

  /* "cylp/cy/CyClpSimplex.pyx":1621
 *         self.CppSelf.setDualRowPivotAlgorithm(c)
 * 
 *     def resize(self, newNumberRows, newNumberColumns):             # <<<<<<<<<<<<<<
 *         '''
 *         Resize the problem. After a call to ``resize`` the problem will have
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.resize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1628
 *         self.CppSelf.resize(newNumberRows, newNumberColumns)
 * 
 *     def getBInvACol(self, col, np.ndarray[np.double_t, ndim=1] cl):             # <<<<<<<<<<<<<<
 *         '''
 *         Compute :math:`A_B^{-1}A_{col}` and store the result in ``cl``.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_127getBInvACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_127getBInvACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_col = 0;
  PyArrayObject *__pyx_v_cl = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getBInvACol (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_col,&__pyx_n_s_cl,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cl)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("getBInvACol", 1, 2, 2, 1); __PYX_ERR(0, 1628, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getBInvACol") < 0)) __PYX_ERR(0, 1628, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_col = values[0];
    __pyx_v_cl = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("getBInvACol", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1628, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBInvACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cl), __pyx_ptype_5numpy_ndarray, 1, "cl", 0))) __PYX_ERR(0, 1628, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cl;
  __Pyx_Buffer __pyx_pybuffer_cl;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getBInvACol", 0);
  __Pyx_TraceCall("getBInvACol", __pyx_f[0], 1628, 0, __PYX_ERR(0, 1628, __pyx_L1_error));
  __pyx_pybuffer_cl.pybuffer.buf = NULL;
  __pyx_pybuffer_cl.refcount = 0;
  __pyx_pybuffernd_cl.data = NULL;
  __pyx_pybuffernd_cl.rcbuffer = &__pyx_pybuffer_cl;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1632
 *         Compute :math:`A_B^{-1}A_{col}` and store the result in ``cl``.
 *         '''
 *         self.CppSelf.getBInvACol(col, <double*>cl.data)             # <<<<<<<<<<<<<<
 * 
 *     def getBInvCol(self, col, np.ndarray[np.double_t, ndim=1] cl):
 */
  __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)
  __pyx_v_self->CppSelf->getBInvACol(__pyx_t_1, ((double *)__pyx_v_cl->data));

  /* "cylp/cy/CyClpSimplex.pyx":1628
 *         self.CppSelf.resize(newNumberRows, newNumberColumns)
 * 
 *     def getBInvACol(self, col, np.ndarray[np.double_t, ndim=1] cl):             # <<<<<<<<<<<<<<
 *         '''
 *         Compute :math:`A_B^{-1}A_{col}` and store the result in ``cl``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBInvACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1634
 *         self.CppSelf.getBInvACol(col, <double*>cl.data)
 * 
 *     def getBInvCol(self, col, np.ndarray[np.double_t, ndim=1] cl):             # <<<<<<<<<<<<<<
 *         '''
 *         Return :math:`A_B^{-1}_{col}` and store the result in ``cl``.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_129getBInvCol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_129getBInvCol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_col = 0;
  PyArrayObject *__pyx_v_cl = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getBInvCol (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_col,&__pyx_n_s_cl,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cl)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("getBInvCol", 1, 2, 2, 1); __PYX_ERR(0, 1634, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getBInvCol") < 0)) __PYX_ERR(0, 1634, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_col = values[0];
    __pyx_v_cl = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("getBInvCol", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1634, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBInvCol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cl), __pyx_ptype_5numpy_ndarray, 1, "cl", 0))) __PYX_ERR(0, 1634, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cl;
  __Pyx_Buffer __pyx_pybuffer_cl;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getBInvCol", 0);
  __Pyx_TraceCall("getBInvCol", __pyx_f[0], 1634, 0, __PYX_ERR(0, 1634, __pyx_L1_error));
  __pyx_pybuffer_cl.pybuffer.buf = NULL;
  __pyx_pybuffer_cl.refcount = 0;
  __pyx_pybuffernd_cl.data = NULL;
  __pyx_pybuffernd_cl.rcbuffer = &__pyx_pybuffer_cl;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1638
 *         Return :math:`A_B^{-1}_{col}` and store the result in ``cl``.
 *         '''
 *         self.CppSelf.getBInvCol(col, <double*>cl.data)             # <<<<<<<<<<<<<<
 * 
 *     def transposeTimes(self, scalar, CyCoinIndexedVector x,
 */
  __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)
  __pyx_v_self->CppSelf->getBInvCol(__pyx_t_1, ((double *)__pyx_v_cl->data));

  /* "cylp/cy/CyClpSimplex.pyx":1634
 *         self.CppSelf.getBInvACol(col, <double*>cl.data)
 * 
 *     def getBInvCol(self, col, np.ndarray[np.double_t, ndim=1] cl):             # <<<<<<<<<<<<<<
 *         '''
 *         Return :math:`A_B^{-1}_{col}` and store the result in ``cl``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBInvCol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1640
 *         self.CppSelf.getBInvCol(col, <double*>cl.data)
 * 
 *     def transposeTimes(self, scalar, CyCoinIndexedVector x,             # <<<<<<<<<<<<<<
 *                        CyCoinIndexedVector y, CyCoinIndexedVector z):
 *         '''
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_131transposeTimes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_131transposeTimes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_scalar = 0;
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_x = 0;
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_y = 0;
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_z = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("transposeTimes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scalar,&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_z,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scalar)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("transposeTimes", 1, 4, 4, 1); __PYX_ERR(0, 1640, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("transposeTimes", 1, 4, 4, 2); __PYX_ERR(0, 1640, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("transposeTimes", 1, 4, 4, 3); __PYX_ERR(0, 1640, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transposeTimes") < 0)) __PYX_ERR(0, 1640, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_scalar = values[0];
    __pyx_v_x = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
    __pyx_v_y = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[2]);
    __pyx_v_z = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("transposeTimes", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1640, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "x", 0))) __PYX_ERR(0, 1640, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "y", 0))) __PYX_ERR(0, 1641, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_z), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "z", 0))) __PYX_ERR(0, 1641, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("transposeTimes", 0);
  __Pyx_TraceCall("transposeTimes", __pyx_f[0], 1640, 0, __PYX_ERR(0, 1640, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1645
 *         Compute :math:`x * scalar * A + y` and store the result in ``z``.
 *         '''
 *         self.CppSelf.transposeTimes(self.CppSelf, scalar,             # <<<<<<<<<<<<<<
 *                                     x.CppSelf, y.CppSelf, z.CppSelf)
 * 
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1646
 *         '''
 *         self.CppSelf.transposeTimes(self.CppSelf, scalar,
 *                                     x.CppSelf, y.CppSelf, z.CppSelf)             # <<<<<<<<<<<<<<
 * 
 *     def transposeTimesSubset(self, number,
 */
  __pyx_v_self->CppSelf->transposeTimes(__pyx_v_self->CppSelf, __pyx_t_1, __pyx_v_x->CppSelf, __pyx_v_y->CppSelf, __pyx_v_z->CppSelf);

  /* "cylp/cy/CyClpSimplex.pyx":1640
 *         self.CppSelf.getBInvCol(col, <double*>cl.data)
 * 
 *     def transposeTimes(self, scalar, CyCoinIndexedVector x,             # <<<<<<<<<<<<<<
 *                        CyCoinIndexedVector y, CyCoinIndexedVector z):
 *         '''
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1648
 *                                     x.CppSelf, y.CppSelf, z.CppSelf)
 * 
 *     def transposeTimesSubset(self, number,             # <<<<<<<<<<<<<<
 *                              np.ndarray[np.int64_t, ndim=1] which,
 *                              np.ndarray[np.double_t, ndim=1] pi,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_133transposeTimesSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_133transposeTimesSubset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_number = 0;
  PyArrayObject *__pyx_v_which = 0;
  PyArrayObject *__pyx_v_pi = 0;
  PyArrayObject *__pyx_v_y = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("transposeTimesSubset (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_number,&__pyx_n_s_which,&__pyx_n_s_pi,&__pyx_n_s_y,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_number)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_which)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("transposeTimesSubset", 1, 4, 4, 1); __PYX_ERR(0, 1648, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pi)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("transposeTimesSubset", 1, 4, 4, 2); __PYX_ERR(0, 1648, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("transposeTimesSubset", 1, 4, 4, 3); __PYX_ERR(0, 1648, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transposeTimesSubset") < 0)) __PYX_ERR(0, 1648, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_number = values[0];
    __pyx_v_which = ((PyArrayObject *)values[1]);
    __pyx_v_pi = ((PyArrayObject *)values[2]);
    __pyx_v_y = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("transposeTimesSubset", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1648, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimesSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_which), __pyx_ptype_5numpy_ndarray, 1, "which", 0))) __PYX_ERR(0, 1649, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pi), __pyx_ptype_5numpy_ndarray, 1, "pi", 0))) __PYX_ERR(0, 1650, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_5numpy_ndarray, 1, "y", 0))) __PYX_ERR(0, 1651, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pi;
  __Pyx_Buffer __pyx_pybuffer_pi;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_which;
  __Pyx_Buffer __pyx_pybuffer_which;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_y;
  __Pyx_Buffer __pyx_pybuffer_y;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("transposeTimesSubset", 0);
  __Pyx_TraceCall("transposeTimesSubset", __pyx_f[0], 1648, 0, __PYX_ERR(0, 1648, __pyx_L1_error));
  __pyx_pybuffer_which.pybuffer.buf = NULL;
  __pyx_pybuffer_which.refcount = 0;
  __pyx_pybuffernd_which.data = NULL;
  __pyx_pybuffernd_which.rcbuffer = &__pyx_pybuffer_which;
  __pyx_pybuffer_pi.pybuffer.buf = NULL;
  __pyx_pybuffer_pi.refcount = 0;
  __pyx_pybuffernd_pi.data = NULL;
  __pyx_pybuffernd_pi.rcbuffer = &__pyx_pybuffer_pi;
  __pyx_pybuffer_y.pybuffer.buf = NULL;
  __pyx_pybuffer_y.refcount = 0;
  __pyx_pybuffernd_y.data = NULL;
  __pyx_pybuffernd_y.rcbuffer = &__pyx_pybuffer_y;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1656
 *         variable index set. Store the result in ``y``.
 *         '''
 *         self.CppSelf.transposeTimesSubset(number, <int*>which.data,             # <<<<<<<<<<<<<<
 *                                           <double*>pi.data, <double*>y.data)
 * 
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1657
 *         '''
 *         self.CppSelf.transposeTimesSubset(number, <int*>which.data,
 *                                           <double*>pi.data, <double*>y.data)             # <<<<<<<<<<<<<<
 * 
 *     def transposeTimesSubsetAll(self,
 */
  __pyx_v_self->CppSelf->transposeTimesSubset(__pyx_t_1, ((int *)__pyx_v_which->data), ((double *)__pyx_v_pi->data), ((double *)__pyx_v_y->data));

  /* "cylp/cy/CyClpSimplex.pyx":1648
 *                                     x.CppSelf, y.CppSelf, z.CppSelf)
 * 
 *     def transposeTimesSubset(self, number,             # <<<<<<<<<<<<<<
 *                              np.ndarray[np.int64_t, ndim=1] which,
 *                              np.ndarray[np.double_t, ndim=1] pi,
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pi.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimesSubset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pi.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1659
 *                                           <double*>pi.data, <double*>y.data)
 * 
 *     def transposeTimesSubsetAll(self,             # <<<<<<<<<<<<<<
 *                              np.ndarray[np.int64_t, ndim=1] which,
 *                              np.ndarray[np.double_t, ndim=1] pi,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_135transposeTimesSubsetAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_135transposeTimesSubsetAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_which = 0;
  PyArrayObject *__pyx_v_pi = 0;
  PyArrayObject *__pyx_v_y = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("transposeTimesSubsetAll (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_which,&__pyx_n_s_pi,&__pyx_n_s_y,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_which)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pi)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("transposeTimesSubsetAll", 1, 3, 3, 1); __PYX_ERR(0, 1659, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("transposeTimesSubsetAll", 1, 3, 3, 2); __PYX_ERR(0, 1659, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transposeTimesSubsetAll") < 0)) __PYX_ERR(0, 1659, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_which = ((PyArrayObject *)values[0]);
    __pyx_v_pi = ((PyArrayObject *)values[1]);
    __pyx_v_y = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("transposeTimesSubsetAll", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1659, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimesSubsetAll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_which), __pyx_ptype_5numpy_ndarray, 1, "which", 0))) __PYX_ERR(0, 1660, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pi), __pyx_ptype_5numpy_ndarray, 1, "pi", 0))) __PYX_ERR(0, 1661, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_5numpy_ndarray, 1, "y", 0))) __PYX_ERR(0, 1662, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pi;
  __Pyx_Buffer __pyx_pybuffer_pi;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_which;
  __Pyx_Buffer __pyx_pybuffer_which;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_y;
  __Pyx_Buffer __pyx_pybuffer_y;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("transposeTimesSubsetAll", 0);
  __Pyx_TraceCall("transposeTimesSubsetAll", __pyx_f[0], 1659, 0, __PYX_ERR(0, 1659, __pyx_L1_error));
  __pyx_pybuffer_which.pybuffer.buf = NULL;
  __pyx_pybuffer_which.refcount = 0;
  __pyx_pybuffernd_which.data = NULL;
  __pyx_pybuffernd_which.rcbuffer = &__pyx_pybuffer_which;
  __pyx_pybuffer_pi.pybuffer.buf = NULL;
  __pyx_pybuffer_pi.refcount = 0;
  __pyx_pybuffernd_pi.data = NULL;
  __pyx_pybuffernd_pi.rcbuffer = &__pyx_pybuffer_pi;
  __pyx_pybuffer_y.pybuffer.buf = NULL;
  __pyx_pybuffer_y.refcount = 0;
  __pyx_pybuffernd_y.data = NULL;
  __pyx_pybuffernd_y.rcbuffer = &__pyx_pybuffer_y;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1667
 *         can also address slack variables.
 *         '''
 *         self.CppSelf.transposeTimesSubsetAll(len(which),             # <<<<<<<<<<<<<<
 *                                             <long long int*>which.data,
 *                                             <double*>pi.data,
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1670
 *                                             <long long int*>which.data,
 *                                             <double*>pi.data,
 *                                             <double*>y.data)             # <<<<<<<<<<<<<<
 * 
 *     def isInteger(self, ind):
 */
  __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));

  /* "cylp/cy/CyClpSimplex.pyx":1659
 *                                           <double*>pi.data, <double*>y.data)
 * 
 *     def transposeTimesSubsetAll(self,             # <<<<<<<<<<<<<<
 *                              np.ndarray[np.int64_t, ndim=1] which,
 *                              np.ndarray[np.double_t, ndim=1] pi,
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pi.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.transposeTimesSubsetAll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pi.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_which.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1672
 *                                             <double*>y.data)
 * 
 *     def isInteger(self, ind):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns True if the variable index ``ind`` is integer.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_137isInteger(PyObject *__pyx_v_self, PyObject *__pyx_v_ind); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_137isInteger(PyObject *__pyx_v_self, PyObject *__pyx_v_ind) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("isInteger (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_136isInteger(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_ind));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_136isInteger(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_ind) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("isInteger", 0);
  __Pyx_TraceCall("isInteger", __pyx_f[0], 1672, 0, __PYX_ERR(0, 1672, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1676
 *         Returns True if the variable index ``ind`` is integer.
 *         '''
 *         return self.CppSelf.isInteger(ind)             # <<<<<<<<<<<<<<
 * 
 *     def setInteger(self, arg):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1672
 *                                             <double*>y.data)
 * 
 *     def isInteger(self, ind):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns True if the variable index ``ind`` is integer.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.isInteger", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1678
 *         return self.CppSelf.isInteger(ind)
 * 
 *     def setInteger(self, arg):             # <<<<<<<<<<<<<<
 *         '''
 *         if ``arg`` is an integer: mark variable index ``arg`` as integer.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_139setInteger(PyObject *__pyx_v_self, PyObject *__pyx_v_arg); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_139setInteger(PyObject *__pyx_v_self, PyObject *__pyx_v_arg) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setInteger (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_138setInteger(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_arg));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_138setInteger(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_arg) {
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_v_model = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_varName = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setInteger", 0);
  __Pyx_TraceCall("setInteger", __pyx_f[0], 1678, 0, __PYX_ERR(0, 1678, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1728
 *         '''
 * 
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setInteger(arg)
 *         elif True:  # isinstance(arg, CyLPVar):
 */
  __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = PyLong_Check(__pyx_v_arg); 
  __pyx_t_2 = (__pyx_t_3 != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "cylp/cy/CyClpSimplex.pyx":1729
 * 
 *         if isinstance(arg, (int, long)):
 *             self.CppSelf.setInteger(arg)             # <<<<<<<<<<<<<<
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 */
    __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)
    __pyx_v_self->CppSelf->setInteger(__pyx_t_4);

    /* "cylp/cy/CyClpSimplex.pyx":1728
 *         '''
 * 
 *         if isinstance(arg, (int, long)):             # <<<<<<<<<<<<<<
 *             self.CppSelf.setInteger(arg)
 *         elif True:  # isinstance(arg, CyLPVar):
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1731
 *             self.CppSelf.setInteger(arg)
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setInteger can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
  /*else*/ {
    __pyx_t_2 = (__pyx_v_self->cyLPModel == Py_None);
    __pyx_t_1 = (__pyx_t_2 != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cylp/cy/CyClpSimplex.pyx":1732
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 *                 raise Exception('The argument of setInteger can be ' \             # <<<<<<<<<<<<<<
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 */
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_Raise(__pyx_t_5, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __PYX_ERR(0, 1732, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1731
 *             self.CppSelf.setInteger(arg)
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setInteger can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1735
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 *             var = arg             # <<<<<<<<<<<<<<
 *             model = self.cyLPModel
 *             inds = model.inds
 */
    __Pyx_INCREF(__pyx_v_arg);
    __pyx_v_var = __pyx_v_arg;

    /* "cylp/cy/CyClpSimplex.pyx":1736
 *                                 'using a CyLPModel.')
 *             var = arg
 *             model = self.cyLPModel             # <<<<<<<<<<<<<<
 *             inds = model.inds
 *             varName = var.name
 */
    __pyx_t_5 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_v_model = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1737
 *             var = arg
 *             model = self.cyLPModel
 *             inds = model.inds             # <<<<<<<<<<<<<<
 *             varName = var.name
 *             if not inds.hasVar(varName):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_inds = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1738
 *             model = self.cyLPModel
 *             inds = model.inds
 *             varName = var.name             # <<<<<<<<<<<<<<
 *             if not inds.hasVar(varName):
 *                 raise Exception('No such variable: %s' % varName)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_varName = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1739
 *             inds = model.inds
 *             varName = var.name
 *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1739, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1739, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_2 = ((!__pyx_t_1) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cylp/cy/CyClpSimplex.pyx":1740
 *             varName = var.name
 *             if not inds.hasVar(varName):
 *                 raise Exception('No such variable: %s' % varName)             # <<<<<<<<<<<<<<
 *             x = inds.varIndex[varName]
 *             if var.parent:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(0, 1740, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":1739
 *             inds = model.inds
 *             varName = var.name
 *             if not inds.hasVar(varName):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1741
 *             if not inds.hasVar(varName):
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]             # <<<<<<<<<<<<<<
 *             if var.parent:
 *                 for i in var.indices:
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_varName); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_x = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1742
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 *             if var.parent:             # <<<<<<<<<<<<<<
 *                 for i in var.indices:
 *                     self.CppSelf.setInteger(x[i])
 */
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1742, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_2) {

      /* "cylp/cy/CyClpSimplex.pyx":1743
 *             x = inds.varIndex[varName]
 *             if var.parent:
 *                 for i in var.indices:             # <<<<<<<<<<<<<<
 *                     self.CppSelf.setInteger(x[i])
 *             else:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1743, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1743, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_9(__pyx_t_6);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1743, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1744
 *             if var.parent:
 *                 for i in var.indices:
 *                     self.CppSelf.setInteger(x[i])             # <<<<<<<<<<<<<<
 *             else:
 *                 for i in xrange(var.dim):
 */
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1744, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __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)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_v_self->CppSelf->setInteger(__pyx_t_4);

        /* "cylp/cy/CyClpSimplex.pyx":1743
 *             x = inds.varIndex[varName]
 *             if var.parent:
 *                 for i in var.indices:             # <<<<<<<<<<<<<<
 *                     self.CppSelf.setInteger(x[i])
 *             else:
 */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1742
 *                 raise Exception('No such variable: %s' % varName)
 *             x = inds.varIndex[varName]
 *             if var.parent:             # <<<<<<<<<<<<<<
 *                 for i in var.indices:
 *                     self.CppSelf.setInteger(x[i])
 */
      goto __pyx_L8;
    }

    /* "cylp/cy/CyClpSimplex.pyx":1746
 *                     self.CppSelf.setInteger(x[i])
 *             else:
 *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
 *                     self.CppSelf.setInteger(x[i])
 * 
 */
    /*else*/ {
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1746, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1746, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_9(__pyx_t_6);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1746, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1747
 *             else:
 *                 for i in xrange(var.dim):
 *                     self.CppSelf.setInteger(x[i])             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1747, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __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)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_v_self->CppSelf->setInteger(__pyx_t_4);

        /* "cylp/cy/CyClpSimplex.pyx":1746
 *                     self.CppSelf.setInteger(x[i])
 *             else:
 *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
 *                     self.CppSelf.setInteger(x[i])
 * 
 */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_L8:;
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":1678
 *         return self.CppSelf.isInteger(ind)
 * 
 *     def setInteger(self, arg):             # <<<<<<<<<<<<<<
 *         '''
 *         if ``arg`` is an integer: mark variable index ``arg`` as integer.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setInteger", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_model);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_varName);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1750
 * 
 * 
 *     def copyInIntegerInformation(self, np.ndarray[np.uint8_t, ndim=1] colType):             # <<<<<<<<<<<<<<
 *         '''
 *         Take in a character array containing 0-1 specifying whether or not
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_141copyInIntegerInformation(PyObject *__pyx_v_self, PyObject *__pyx_v_colType); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_141copyInIntegerInformation(PyObject *__pyx_v_self, PyObject *__pyx_v_colType) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("copyInIntegerInformation (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colType), __pyx_ptype_5numpy_ndarray, 1, "colType", 0))) __PYX_ERR(0, 1750, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_140copyInIntegerInformation(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_colType));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_140copyInIntegerInformation(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_colType) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_colType;
  __Pyx_Buffer __pyx_pybuffer_colType;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("copyInIntegerInformation", 0);
  __Pyx_TraceCall("copyInIntegerInformation", __pyx_f[0], 1750, 0, __PYX_ERR(0, 1750, __pyx_L1_error));
  __pyx_pybuffer_colType.pybuffer.buf = NULL;
  __pyx_pybuffer_colType.refcount = 0;
  __pyx_pybuffernd_colType.data = NULL;
  __pyx_pybuffernd_colType.rcbuffer = &__pyx_pybuffer_colType;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":1755
 *         a variable is integer
 *         '''
 *         self.CppSelf.copyInIntegerInformation(<char*>colType.data)             # <<<<<<<<<<<<<<
 * 
 *     def replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False):
 */
  __pyx_v_self->CppSelf->copyInIntegerInformation(((char *)__pyx_v_colType->data));

  /* "cylp/cy/CyClpSimplex.pyx":1750
 * 
 * 
 *     def copyInIntegerInformation(self, np.ndarray[np.uint8_t, ndim=1] colType):             # <<<<<<<<<<<<<<
 *         '''
 *         Take in a character array containing 0-1 specifying whether or not
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_colType.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.copyInIntegerInformation", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_colType.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1757
 *         self.CppSelf.copyInIntegerInformation(<char*>colType.data)
 * 
 *     def replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False):             # <<<<<<<<<<<<<<
 *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_143replaceMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_142replaceMatrix[] = "CyClpSimplex.replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_143replaceMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix = 0;
  PyObject *__pyx_v_deleteCurrent = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("replaceMatrix (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_matrix,&__pyx_n_s_deleteCurrent,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_False);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matrix)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_deleteCurrent);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "replaceMatrix") < 0)) __PYX_ERR(0, 1757, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_matrix = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)values[0]);
    __pyx_v_deleteCurrent = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("replaceMatrix", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1757, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.replaceMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_matrix), __pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix, 1, "matrix", 0))) __PYX_ERR(0, 1757, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("replaceMatrix", 0);
  __Pyx_TraceCall("replaceMatrix", __pyx_f[0], 1757, 0, __PYX_ERR(0, 1757, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1758
 * 
 *     def replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False):
 *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)             # <<<<<<<<<<<<<<
 * 
 *     def loadQuadraticObjective(self, CyCoinPackedMatrix matrix):
 */
  __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)
  __pyx_v_self->CppSelf->replaceMatrix(__pyx_v_matrix->CppSelf, __pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":1757
 *         self.CppSelf.copyInIntegerInformation(<char*>colType.data)
 * 
 *     def replaceMatrix(self, CyCoinPackedMatrix matrix, deleteCurrent=False):             # <<<<<<<<<<<<<<
 *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.replaceMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1760
 *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)
 * 
 *     def loadQuadraticObjective(self, CyCoinPackedMatrix matrix):             # <<<<<<<<<<<<<<
 *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_145loadQuadraticObjective(PyObject *__pyx_v_self, PyObject *__pyx_v_matrix); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_144loadQuadraticObjective[] = "CyClpSimplex.loadQuadraticObjective(self, CyCoinPackedMatrix matrix)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_145loadQuadraticObjective(PyObject *__pyx_v_self, PyObject *__pyx_v_matrix) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("loadQuadraticObjective (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_matrix), __pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix, 1, "matrix", 0))) __PYX_ERR(0, 1760, __pyx_L1_error)
  __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));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("loadQuadraticObjective", 0);
  __Pyx_TraceCall("loadQuadraticObjective", __pyx_f[0], 1760, 0, __PYX_ERR(0, 1760, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1761
 * 
 *     def loadQuadraticObjective(self, CyCoinPackedMatrix matrix):
 *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)             # <<<<<<<<<<<<<<
 * 
 *     def preSolve(self, feasibilityTolerance=0.0,
 */
  __pyx_v_self->CppSelf->loadQuadraticObjective(__pyx_v_matrix->CppSelf);

  /* "cylp/cy/CyClpSimplex.pyx":1760
 *         self.CppSelf.replaceMatrix(matrix.CppSelf, deleteCurrent)
 * 
 *     def loadQuadraticObjective(self, CyCoinPackedMatrix matrix):             # <<<<<<<<<<<<<<
 *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadQuadraticObjective", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1763
 *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)
 * 
 *     def preSolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
 *                  keepIntegers=0, numberPasses=5,
 *                  dropNames=0, doRowObjective=0):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_147preSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_146preSolve[] = "CyClpSimplex.preSolve(self, feasibilityTolerance=0.0, keepIntegers=0, numberPasses=5, dropNames=0, doRowObjective=0)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_147preSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_feasibilityTolerance = 0;
  PyObject *__pyx_v_keepIntegers = 0;
  PyObject *__pyx_v_numberPasses = 0;
  PyObject *__pyx_v_dropNames = 0;
  PyObject *__pyx_v_doRowObjective = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("preSolve (wrapper)", 0);
  {
    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};
    PyObject* values[5] = {0,0,0,0,0};
    values[0] = ((PyObject *)__pyx_float_0_0);
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = ((PyObject *)__pyx_int_5);
    values[3] = ((PyObject *)__pyx_int_0);
    values[4] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_feasibilityTolerance);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepIntegers);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberPasses);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dropNames);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_doRowObjective);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "preSolve") < 0)) __PYX_ERR(0, 1763, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_feasibilityTolerance = values[0];
    __pyx_v_keepIntegers = values[1];
    __pyx_v_numberPasses = values[2];
    __pyx_v_dropNames = values[3];
    __pyx_v_doRowObjective = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("preSolve", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1763, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.preSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  IClpSimplex *__pyx_v_model;
  struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_s = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("preSolve", 0);
  __Pyx_TraceCall("preSolve", __pyx_f[0], 1763, 0, __PYX_ERR(0, 1763, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1767
 *                  dropNames=0, doRowObjective=0):
 *         cdef CppIClpSimplex* model = self.CppSelf.preSolve(self.CppSelf,
 *                                 feasibilityTolerance, keepIntegers,             # <<<<<<<<<<<<<<
 *                                 numberPasses, dropNames, doRowObjective)
 *         s = CyClpSimplex()
 */
  __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)
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1768
 *         cdef CppIClpSimplex* model = self.CppSelf.preSolve(self.CppSelf,
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)             # <<<<<<<<<<<<<<
 *         s = CyClpSimplex()
 *         if model == NULL:
 */
  __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)
  __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)
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1766
 *                  keepIntegers=0, numberPasses=5,
 *                  dropNames=0, doRowObjective=0):
 *         cdef CppIClpSimplex* model = self.CppSelf.preSolve(self.CppSelf,             # <<<<<<<<<<<<<<
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)
 */
  __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);

  /* "cylp/cy/CyClpSimplex.pyx":1769
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)
 *         s = CyClpSimplex()             # <<<<<<<<<<<<<<
 *         if model == NULL:
 *             print("Presolve says problem infeasible.")
 */
  __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)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_s = ((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1770
 *                                 numberPasses, dropNames, doRowObjective)
 *         s = CyClpSimplex()
 *         if model == NULL:             # <<<<<<<<<<<<<<
 *             print("Presolve says problem infeasible.")
 *             return s
 */
  __pyx_t_5 = ((__pyx_v_model == NULL) != 0);
  if (__pyx_t_5) {

    /* "cylp/cy/CyClpSimplex.pyx":1771
 *         s = CyClpSimplex()
 *         if model == NULL:
 *             print("Presolve says problem infeasible.")             # <<<<<<<<<<<<<<
 *             return s
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1772
 *         if model == NULL:
 *             print("Presolve says problem infeasible.")
 *             return s             # <<<<<<<<<<<<<<
 * 
 *         s.setCppSelf(model)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject *)__pyx_v_s));
    __pyx_r = ((PyObject *)__pyx_v_s);
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1770
 *                                 numberPasses, dropNames, doRowObjective)
 *         s = CyClpSimplex()
 *         if model == NULL:             # <<<<<<<<<<<<<<
 *             print("Presolve says problem infeasible.")
 *             return s
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1774
 *             return s
 * 
 *         s.setCppSelf(model)             # <<<<<<<<<<<<<<
 *         return s
 *         #self.setCppSelf(model)
 */
  __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)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1775
 * 
 *         s.setCppSelf(model)
 *         return s             # <<<<<<<<<<<<<<
 *         #self.setCppSelf(model)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  __pyx_r = ((PyObject *)__pyx_v_s);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1763
 *         self.CppSelf.loadQuadraticObjective(matrix.CppSelf)
 * 
 *     def preSolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
 *                  keepIntegers=0, numberPasses=5,
 *                  dropNames=0, doRowObjective=0):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.preSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_s);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1778
 *         #self.setCppSelf(model)
 * 
 *     def postSolve(self, updateStatus=True):             # <<<<<<<<<<<<<<
 *         self.CppSelf.postSolve(updateStatus)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_149postSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve[] = "CyClpSimplex.postSolve(self, updateStatus=True)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_149postSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_updateStatus = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("postSolve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_updateStatus,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_True);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_updateStatus);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "postSolve") < 0)) __PYX_ERR(0, 1778, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_updateStatus = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("postSolve", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1778, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.postSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), __pyx_v_updateStatus);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_updateStatus) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("postSolve", 0);
  __Pyx_TraceCall("postSolve", __pyx_f[0], 1778, 0, __PYX_ERR(0, 1778, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1779
 * 
 *     def postSolve(self, updateStatus=True):
 *         self.CppSelf.postSolve(updateStatus)             # <<<<<<<<<<<<<<
 * 
 *     def dualWithPresolve(self, feasibilityTolerance=0.0,
 */
  __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)
  __pyx_v_self->CppSelf->postSolve(__pyx_t_1);

  /* "cylp/cy/CyClpSimplex.pyx":1778
 *         #self.setCppSelf(model)
 * 
 *     def postSolve(self, updateStatus=True):             # <<<<<<<<<<<<<<
 *         self.CppSelf.postSolve(updateStatus)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.postSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1781
 *         self.CppSelf.postSolve(updateStatus)
 * 
 *     def dualWithPresolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
 *                  keepIntegers=0, numberPasses=5,
 *                  dropNames=0, doRowObjective=0):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_151dualWithPresolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_150dualWithPresolve[] = "CyClpSimplex.dualWithPresolve(self, feasibilityTolerance=0.0, keepIntegers=0, numberPasses=5, dropNames=0, doRowObjective=0)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_151dualWithPresolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_feasibilityTolerance = 0;
  PyObject *__pyx_v_keepIntegers = 0;
  PyObject *__pyx_v_numberPasses = 0;
  PyObject *__pyx_v_dropNames = 0;
  PyObject *__pyx_v_doRowObjective = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dualWithPresolve (wrapper)", 0);
  {
    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};
    PyObject* values[5] = {0,0,0,0,0};
    values[0] = ((PyObject *)__pyx_float_0_0);
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = ((PyObject *)__pyx_int_5);
    values[3] = ((PyObject *)__pyx_int_0);
    values[4] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_feasibilityTolerance);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepIntegers);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberPasses);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dropNames);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_doRowObjective);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dualWithPresolve") < 0)) __PYX_ERR(0, 1781, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_feasibilityTolerance = values[0];
    __pyx_v_keepIntegers = values[1];
    __pyx_v_numberPasses = values[2];
    __pyx_v_dropNames = values[3];
    __pyx_v_doRowObjective = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("dualWithPresolve", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1781, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualWithPresolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_v_ret;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("dualWithPresolve", 0);
  __Pyx_TraceCall("dualWithPresolve", __pyx_f[0], 1781, 0, __PYX_ERR(0, 1781, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1785
 *                  dropNames=0, doRowObjective=0):
 *         ret = self.CppSelf.dualWithPresolve(self.CppSelf,
 *                                 feasibilityTolerance, keepIntegers,             # <<<<<<<<<<<<<<
 *                                 numberPasses, dropNames, doRowObjective)
 *         if ret == -2000:
 */
  __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)
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1786
 *         ret = self.CppSelf.dualWithPresolve(self.CppSelf,
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)             # <<<<<<<<<<<<<<
 *         if ret == -2000:
 *             print("Presolve says problem infeasible.")
 */
  __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)
  __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)
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1784
 *                  keepIntegers=0, numberPasses=5,
 *                  dropNames=0, doRowObjective=0):
 *         ret = self.CppSelf.dualWithPresolve(self.CppSelf,             # <<<<<<<<<<<<<<
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)
 */
  __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);

  /* "cylp/cy/CyClpSimplex.pyx":1787
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)
 *         if ret == -2000:             # <<<<<<<<<<<<<<
 *             print("Presolve says problem infeasible.")
 *             return -2000
 */
  __pyx_t_5 = ((__pyx_v_ret == -2000L) != 0);
  if (__pyx_t_5) {

    /* "cylp/cy/CyClpSimplex.pyx":1788
 *                                 numberPasses, dropNames, doRowObjective)
 *         if ret == -2000:
 *             print("Presolve says problem infeasible.")             # <<<<<<<<<<<<<<
 *             return -2000
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1789
 *         if ret == -2000:
 *             print("Presolve says problem infeasible.")
 *             return -2000             # <<<<<<<<<<<<<<
 * 
 *         return problemStatus[ret]
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_neg_2000);
    __pyx_r = __pyx_int_neg_2000;
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1787
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)
 *         if ret == -2000:             # <<<<<<<<<<<<<<
 *             print("Presolve says problem infeasible.")
 *             return -2000
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1791
 *             return -2000
 * 
 *         return problemStatus[ret]             # <<<<<<<<<<<<<<
 * 
 *     def primalWithPresolve(self, feasibilityTolerance=0.0,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1781
 *         self.CppSelf.postSolve(updateStatus)
 * 
 *     def dualWithPresolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
 *                  keepIntegers=0, numberPasses=5,
 *                  dropNames=0, doRowObjective=0):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.dualWithPresolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1793
 *         return problemStatus[ret]
 * 
 *     def primalWithPresolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
 *                  keepIntegers=0, numberPasses=5,
 *                  dropNames=0, doRowObjective=0):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_153primalWithPresolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_152primalWithPresolve[] = "CyClpSimplex.primalWithPresolve(self, feasibilityTolerance=0.0, keepIntegers=0, numberPasses=5, dropNames=0, doRowObjective=0)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_153primalWithPresolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_feasibilityTolerance = 0;
  PyObject *__pyx_v_keepIntegers = 0;
  PyObject *__pyx_v_numberPasses = 0;
  PyObject *__pyx_v_dropNames = 0;
  PyObject *__pyx_v_doRowObjective = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("primalWithPresolve (wrapper)", 0);
  {
    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};
    PyObject* values[5] = {0,0,0,0,0};
    values[0] = ((PyObject *)__pyx_float_0_0);
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = ((PyObject *)__pyx_int_5);
    values[3] = ((PyObject *)__pyx_int_0);
    values[4] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_feasibilityTolerance);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keepIntegers);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberPasses);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dropNames);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_doRowObjective);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "primalWithPresolve") < 0)) __PYX_ERR(0, 1793, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_feasibilityTolerance = values[0];
    __pyx_v_keepIntegers = values[1];
    __pyx_v_numberPasses = values[2];
    __pyx_v_dropNames = values[3];
    __pyx_v_doRowObjective = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("primalWithPresolve", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1793, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalWithPresolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  int __pyx_v_ret;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("primalWithPresolve", 0);
  __Pyx_TraceCall("primalWithPresolve", __pyx_f[0], 1793, 0, __PYX_ERR(0, 1793, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1797
 *                  dropNames=0, doRowObjective=0):
 *         ret = self.CppSelf.primalWithPresolve(self.CppSelf,
 *                                 feasibilityTolerance, keepIntegers,             # <<<<<<<<<<<<<<
 *                                 numberPasses, dropNames, doRowObjective)
 *         if ret == -2000:
 */
  __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)
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1798
 *         ret = self.CppSelf.primalWithPresolve(self.CppSelf,
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)             # <<<<<<<<<<<<<<
 *         if ret == -2000:
 *             print("Presolve says problem infeasible.")
 */
  __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)
  __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)
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1796
 *                  keepIntegers=0, numberPasses=5,
 *                  dropNames=0, doRowObjective=0):
 *         ret = self.CppSelf.primalWithPresolve(self.CppSelf,             # <<<<<<<<<<<<<<
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)
 */
  __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);

  /* "cylp/cy/CyClpSimplex.pyx":1799
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)
 *         if ret == -2000:             # <<<<<<<<<<<<<<
 *             print("Presolve says problem infeasible.")
 *             return -2000
 */
  __pyx_t_5 = ((__pyx_v_ret == -2000L) != 0);
  if (__pyx_t_5) {

    /* "cylp/cy/CyClpSimplex.pyx":1800
 *                                 numberPasses, dropNames, doRowObjective)
 *         if ret == -2000:
 *             print("Presolve says problem infeasible.")             # <<<<<<<<<<<<<<
 *             return -2000
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1801
 *         if ret == -2000:
 *             print("Presolve says problem infeasible.")
 *             return -2000             # <<<<<<<<<<<<<<
 * 
 *         return problemStatus[ret]
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_neg_2000);
    __pyx_r = __pyx_int_neg_2000;
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1799
 *                                 feasibilityTolerance, keepIntegers,
 *                                 numberPasses, dropNames, doRowObjective)
 *         if ret == -2000:             # <<<<<<<<<<<<<<
 *             print("Presolve says problem infeasible.")
 *             return -2000
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1803
 *             return -2000
 * 
 *         return problemStatus[ret]             # <<<<<<<<<<<<<<
 * 
 *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1793
 *         return problemStatus[ret]
 * 
 *     def primalWithPresolve(self, feasibilityTolerance=0.0,             # <<<<<<<<<<<<<<
 *                  keepIntegers=0, numberPasses=5,
 *                  dropNames=0, doRowObjective=0):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalWithPresolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1805
 *         return problemStatus[ret]
 * 
 *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):             # <<<<<<<<<<<<<<
 *         try:
 *             f = open(filename, 'w')
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_155writeMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_154writeMps[] = "CyClpSimplex.writeMps(self, filename, formatType=0, numberAcross=2, objSense=0)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_155writeMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_filename = 0;
  PyObject *__pyx_v_formatType = 0;
  PyObject *__pyx_v_numberAcross = 0;
  PyObject *__pyx_v_objSense = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("writeMps (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_formatType,&__pyx_n_s_numberAcross,&__pyx_n_s_objSense,0};
    PyObject* values[4] = {0,0,0,0};
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = ((PyObject *)__pyx_int_2);
    values[3] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_formatType);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberAcross);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objSense);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "writeMps") < 0)) __PYX_ERR(0, 1805, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_filename = values[0];
    __pyx_v_formatType = values[1];
    __pyx_v_numberAcross = values[2];
    __pyx_v_objSense = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("writeMps", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1805, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_f = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_v_varinds = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_con = NULL;
  PyObject *__pyx_v_coninds = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  Py_ssize_t __pyx_t_12;
  PyObject *(*__pyx_t_13)(PyObject *);
  char *__pyx_t_14;
  int __pyx_t_15;
  int __pyx_t_16;
  double __pyx_t_17;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("writeMps", 0);
  __Pyx_TraceCall("writeMps", __pyx_f[0], 1805, 0, __PYX_ERR(0, 1805, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1806
 * 
 *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
 *         try:             # <<<<<<<<<<<<<<
 *             f = open(filename, 'w')
 *             f.close()
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "cylp/cy/CyClpSimplex.pyx":1807
 *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
 *         try:
 *             f = open(filename, 'w')             # <<<<<<<<<<<<<<
 *             f.close()
 *         except:
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1807, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_filename);
      __Pyx_GIVEREF(__pyx_v_filename);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_filename);
      __Pyx_INCREF(__pyx_n_s_w);
      __Pyx_GIVEREF(__pyx_n_s_w);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_n_s_w);
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_f = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1808
 *         try:
 *             f = open(filename, 'w')
 *             f.close()             # <<<<<<<<<<<<<<
 *         except:
 *             raise Exception('No write access for %s or an intermediate \
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1808, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1806
 * 
 *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
 *         try:             # <<<<<<<<<<<<<<
 *             f = open(filename, 'w')
 *             f.close()
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1809
 *             f = open(filename, 'w')
 *             f.close()
 *         except:             # <<<<<<<<<<<<<<
 *             raise Exception('No write access for %s or an intermediate \
 *                             directory does not exist.' % filename)
 */
    /*except:*/ {
      __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(0, 1809, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);

      /* "cylp/cy/CyClpSimplex.pyx":1811
 *         except:
 *             raise Exception('No write access for %s or an intermediate \
 *                             directory does not exist.' % filename)             # <<<<<<<<<<<<<<
 * 
 *         m = self.cyLPModel
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);

      /* "cylp/cy/CyClpSimplex.pyx":1810
 *             f.close()
 *         except:
 *             raise Exception('No write access for %s or an intermediate \             # <<<<<<<<<<<<<<
 *                             directory does not exist.' % filename)
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(0, 1810, __pyx_L5_except_error)
    }
    __pyx_L5_except_error:;

    /* "cylp/cy/CyClpSimplex.pyx":1806
 * 
 *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):
 *         try:             # <<<<<<<<<<<<<<
 *             f = open(filename, 'w')
 *             f.close()
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1813
 *                             directory does not exist.' % filename)
 * 
 *         m = self.cyLPModel             # <<<<<<<<<<<<<<
 *         if m:
 *             inds = m.inds
 */
  __pyx_t_6 = __pyx_v_self->cyLPModel;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_v_m = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1814
 * 
 *         m = self.cyLPModel
 *         if m:             # <<<<<<<<<<<<<<
 *             inds = m.inds
 *             for var in m.variables:
 */
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_m); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1814, __pyx_L1_error)
  if (__pyx_t_9) {

    /* "cylp/cy/CyClpSimplex.pyx":1815
 *         m = self.cyLPModel
 *         if m:
 *             inds = m.inds             # <<<<<<<<<<<<<<
 *             for var in m.variables:
 *                 varinds = inds.varIndex[var.name]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_inds = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1816
 *         if m:
 *             inds = m.inds
 *             for var in m.variables:             # <<<<<<<<<<<<<<
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_4 = __pyx_t_6; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1816, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1816, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_11(__pyx_t_4);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1816, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1817
 *             inds = m.inds
 *             for var in m.variables:
 *                 varinds = inds.varIndex[var.name]             # <<<<<<<<<<<<<<
 *                 for i in xrange(var.dim):
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 */
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1817, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_varinds, __pyx_t_8);
      __pyx_t_8 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1818
 *             for var in m.variables:
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1818, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_8 = __pyx_t_5; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1818, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_13(__pyx_t_8);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1818, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1819
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):
 *                     self.setVariableName(varinds[i], var.mpsNames[i])             # <<<<<<<<<<<<<<
 * 
 *             for con in m.constraints:
 */
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_varinds, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1819, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1819, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1818
 *             for var in m.variables:
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 * 
 */
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1816
 *         if m:
 *             inds = m.inds
 *             for var in m.variables:             # <<<<<<<<<<<<<<
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):
 */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1821
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 * 
 *             for con in m.constraints:             # <<<<<<<<<<<<<<
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1821, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1821, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_11(__pyx_t_8);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1821, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_v_con, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1822
 * 
 *             for con in m.constraints:
 *                 coninds = inds.constIndex[con.name]             # <<<<<<<<<<<<<<
 *                 for i in xrange(con.nRows):
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1822, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_coninds, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1823
 *             for con in m.constraints:
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):             # <<<<<<<<<<<<<<
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 *         return self.CppSelf.writeMps(filename, formatType, numberAcross,
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1823, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_7 = __pyx_t_6; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1823, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_13(__pyx_t_7);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1823, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1824
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])             # <<<<<<<<<<<<<<
 *         return self.CppSelf.writeMps(filename, formatType, numberAcross,
 *                                      objSense)
 */
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_coninds, __pyx_v_i); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1824, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1824, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1823
 *             for con in m.constraints:
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):             # <<<<<<<<<<<<<<
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 *         return self.CppSelf.writeMps(filename, formatType, numberAcross,
 */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1821
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 * 
 *             for con in m.constraints:             # <<<<<<<<<<<<<<
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):
 */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1814
 * 
 *         m = self.cyLPModel
 *         if m:             # <<<<<<<<<<<<<<
 *             inds = m.inds
 *             for var in m.variables:
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1825
 *                 for i in xrange(con.nRows):
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 *         return self.CppSelf.writeMps(filename, formatType, numberAcross,             # <<<<<<<<<<<<<<
 *                                      objSense)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_14 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(0, 1825, __pyx_L1_error)
  __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)
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1826
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 *         return self.CppSelf.writeMps(filename, formatType, numberAcross,
 *                                      objSense)             # <<<<<<<<<<<<<<
 * 
 *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,
 */
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":1825
 *                 for i in xrange(con.nRows):
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 *         return self.CppSelf.writeMps(filename, formatType, numberAcross,             # <<<<<<<<<<<<<<
 *                                      objSense)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1805
 *         return problemStatus[ret]
 * 
 *     def writeMps(self, filename, formatType=0, numberAcross=2, objSense=0):             # <<<<<<<<<<<<<<
 *         try:
 *             f = open(filename, 'w')
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeMps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_f);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_varinds);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_con);
  __Pyx_XDECREF(__pyx_v_coninds);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1828
 *                                      objSense)
 * 
 *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,             # <<<<<<<<<<<<<<
 *                         decimals=5, objSense=0.0, useRowNames=1):
 *         try:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_157writeLp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_157writeLp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_filename = 0;
  PyObject *__pyx_v_extension = 0;
  PyObject *__pyx_v_epsilon = 0;
  PyObject *__pyx_v_numberAcross = 0;
  PyObject *__pyx_v_decimals = 0;
  PyObject *__pyx_v_objSense = 0;
  PyObject *__pyx_v_useRowNames = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("writeLp (wrapper)", 0);
  {
    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};
    PyObject* values[7] = {0,0,0,0,0,0,0};
    values[1] = ((PyObject *)__pyx_kp_s__8);
    values[2] = __pyx_k__15;
    values[3] = ((PyObject *)__pyx_int_10);
    values[4] = ((PyObject *)__pyx_int_5);
    values[5] = ((PyObject *)__pyx_float_0_0);
    values[6] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extension);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsilon);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberAcross);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_decimals);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objSense);
          if (value) { values[5] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_useRowNames);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "writeLp") < 0)) __PYX_ERR(0, 1828, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_filename = values[0];
    __pyx_v_extension = values[1];
    __pyx_v_epsilon = values[2];
    __pyx_v_numberAcross = values[3];
    __pyx_v_decimals = values[4];
    __pyx_v_objSense = values[5];
    __pyx_v_useRowNames = values[6];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("writeLp", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1828, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_f = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_v_varinds = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_con = NULL;
  PyObject *__pyx_v_coninds = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  Py_ssize_t __pyx_t_12;
  PyObject *(*__pyx_t_13)(PyObject *);
  char *__pyx_t_14;
  char *__pyx_t_15;
  double __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  double __pyx_t_19;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("writeLp", 0);
  __Pyx_TraceCall("writeLp", __pyx_f[0], 1828, 0, __PYX_ERR(0, 1828, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1830
 *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,
 *                         decimals=5, objSense=0.0, useRowNames=1):
 *         try:             # <<<<<<<<<<<<<<
 *             f = open(filename, 'w')
 *             f.close()
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "cylp/cy/CyClpSimplex.pyx":1831
 *                         decimals=5, objSense=0.0, useRowNames=1):
 *         try:
 *             f = open(filename, 'w')             # <<<<<<<<<<<<<<
 *             f.close()
 *         except:
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1831, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_filename);
      __Pyx_GIVEREF(__pyx_v_filename);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_filename);
      __Pyx_INCREF(__pyx_n_s_w);
      __Pyx_GIVEREF(__pyx_n_s_w);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_n_s_w);
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_f = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1832
 *         try:
 *             f = open(filename, 'w')
 *             f.close()             # <<<<<<<<<<<<<<
 *         except:
 *             raise Exception('No write access for %s or an intermediate \
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1832, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1830
 *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,
 *                         decimals=5, objSense=0.0, useRowNames=1):
 *         try:             # <<<<<<<<<<<<<<
 *             f = open(filename, 'w')
 *             f.close()
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1833
 *             f = open(filename, 'w')
 *             f.close()
 *         except:             # <<<<<<<<<<<<<<
 *             raise Exception('No write access for %s or an intermediate \
 *                             directory does not exist.' % filename)
 */
    /*except:*/ {
      __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(0, 1833, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);

      /* "cylp/cy/CyClpSimplex.pyx":1835
 *         except:
 *             raise Exception('No write access for %s or an intermediate \
 *                             directory does not exist.' % filename)             # <<<<<<<<<<<<<<
 * 
 *         m = self.cyLPModel
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);

      /* "cylp/cy/CyClpSimplex.pyx":1834
 *             f.close()
 *         except:
 *             raise Exception('No write access for %s or an intermediate \             # <<<<<<<<<<<<<<
 *                             directory does not exist.' % filename)
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(0, 1834, __pyx_L5_except_error)
    }
    __pyx_L5_except_error:;

    /* "cylp/cy/CyClpSimplex.pyx":1830
 *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,
 *                         decimals=5, objSense=0.0, useRowNames=1):
 *         try:             # <<<<<<<<<<<<<<
 *             f = open(filename, 'w')
 *             f.close()
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1837
 *                             directory does not exist.' % filename)
 * 
 *         m = self.cyLPModel             # <<<<<<<<<<<<<<
 *         if m:
 *             inds = m.inds
 */
  __pyx_t_6 = __pyx_v_self->cyLPModel;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_v_m = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1838
 * 
 *         m = self.cyLPModel
 *         if m:             # <<<<<<<<<<<<<<
 *             inds = m.inds
 *             for var in m.variables:
 */
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_m); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1838, __pyx_L1_error)
  if (__pyx_t_9) {

    /* "cylp/cy/CyClpSimplex.pyx":1839
 *         m = self.cyLPModel
 *         if m:
 *             inds = m.inds             # <<<<<<<<<<<<<<
 *             for var in m.variables:
 *                 varinds = inds.varIndex[var.name]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_inds = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1840
 *         if m:
 *             inds = m.inds
 *             for var in m.variables:             # <<<<<<<<<<<<<<
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_4 = __pyx_t_6; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1840, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1840, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_11(__pyx_t_4);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1840, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1841
 *             inds = m.inds
 *             for var in m.variables:
 *                 varinds = inds.varIndex[var.name]             # <<<<<<<<<<<<<<
 *                 for i in xrange(var.dim):
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 */
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1841, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_varinds, __pyx_t_8);
      __pyx_t_8 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1842
 *             for var in m.variables:
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1842, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_8 = __pyx_t_5; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1842, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1842, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_13(__pyx_t_8);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1842, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1843
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):
 *                     self.setVariableName(varinds[i], var.mpsNames[i])             # <<<<<<<<<<<<<<
 * 
 *             for con in m.constraints:
 */
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_varinds, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1843, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1843, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1842
 *             for var in m.variables:
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):             # <<<<<<<<<<<<<<
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 * 
 */
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1840
 *         if m:
 *             inds = m.inds
 *             for var in m.variables:             # <<<<<<<<<<<<<<
 *                 varinds = inds.varIndex[var.name]
 *                 for i in xrange(var.dim):
 */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1845
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 * 
 *             for con in m.constraints:             # <<<<<<<<<<<<<<
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1845, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_11(__pyx_t_8);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1845, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_v_con, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1846
 * 
 *             for con in m.constraints:
 *                 coninds = inds.constIndex[con.name]             # <<<<<<<<<<<<<<
 *                 for i in xrange(con.nRows):
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 */
      __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)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_coninds, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1847
 *             for con in m.constraints:
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):             # <<<<<<<<<<<<<<
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_7 = __pyx_t_6; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1847, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1847, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_13(__pyx_t_7);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1847, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1848
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])             # <<<<<<<<<<<<<<
 *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
 * 
 */
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_coninds, __pyx_v_i); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1848, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1848, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1847
 *             for con in m.constraints:
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):             # <<<<<<<<<<<<<<
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
 */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1845
 *                     self.setVariableName(varinds[i], var.mpsNames[i])
 * 
 *             for con in m.constraints:             # <<<<<<<<<<<<<<
 *                 coninds = inds.constIndex[con.name]
 *                 for i in xrange(con.nRows):
 */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1838
 * 
 *         m = self.cyLPModel
 *         if m:             # <<<<<<<<<<<<<<
 *             inds = m.inds
 *             for var in m.variables:
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1849
 *                 for i in xrange(con.nRows):
 *                     self.setConstraintName(coninds[i], con.mpsNames[i])
 *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)             # <<<<<<<<<<<<<<
 * 
 *     def readLp(self, char *filename, epsilon=10**-5):
 */
  __pyx_t_14 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(0, 1849, __pyx_L1_error)
  __pyx_t_15 = __Pyx_PyObject_AsWritableString(__pyx_v_extension); if (unlikely((!__pyx_t_15) && PyErr_Occurred())) __PYX_ERR(0, 1849, __pyx_L1_error)
  __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)
  __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)
  __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)
  __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)
  __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)
  __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);

  /* "cylp/cy/CyClpSimplex.pyx":1828
 *                                      objSense)
 * 
 *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,             # <<<<<<<<<<<<<<
 *                         decimals=5, objSense=0.0, useRowNames=1):
 *         try:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.writeLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_f);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_varinds);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_con);
  __Pyx_XDECREF(__pyx_v_coninds);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1851
 *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
 * 
 *     def readLp(self, char *filename, epsilon=10**-5):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.readLp(filename, epsilon)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_159readLp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_158readLp[] = "CyClpSimplex.readLp(self, char *filename, epsilon=10 ** -5)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_159readLp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  char *__pyx_v_filename;
  PyObject *__pyx_v_epsilon = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("readLp (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_epsilon,0};
    PyObject* values[2] = {0,0};
    values[1] = __pyx_k__16;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsilon);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "readLp") < 0)) __PYX_ERR(0, 1851, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_filename = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) __PYX_ERR(0, 1851, __pyx_L3_error)
    __pyx_v_epsilon = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("readLp", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1851, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("readLp", 0);
  __Pyx_TraceCall("readLp", __pyx_f[0], 1851, 0, __PYX_ERR(0, 1851, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1852
 * 
 *     def readLp(self, char *filename, epsilon=10**-5):
 *         return self.CppSelf.readLp(filename, epsilon)             # <<<<<<<<<<<<<<
 * 
 *     def updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1851
 *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
 * 
 *     def readLp(self, char *filename, epsilon=10**-5):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.readLp(filename, epsilon)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.readLp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1854
 *         return self.CppSelf.readLp(filename, epsilon)
 * 
 *     def updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_161updateColumnFT(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_160updateColumnFT[] = "CyClpSimplex.updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_161updateColumnFT(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_spare = 0;
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_updatedColumn = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("updateColumnFT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_spare,&__pyx_n_s_updatedColumn,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_spare)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_updatedColumn)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("updateColumnFT", 1, 2, 2, 1); __PYX_ERR(0, 1854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateColumnFT") < 0)) __PYX_ERR(0, 1854, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_spare = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[0]);
    __pyx_v_updatedColumn = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("updateColumnFT", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.updateColumnFT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_spare), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "spare", 0))) __PYX_ERR(0, 1854, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_updatedColumn), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "updatedColumn", 0))) __PYX_ERR(0, 1854, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("updateColumnFT", 0);
  __Pyx_TraceCall("updateColumnFT", __pyx_f[0], 1854, 0, __PYX_ERR(0, 1854, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1855
 * 
 *     def updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn):
 *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)             # <<<<<<<<<<<<<<
 * 
 *     def updateColumnTranspose(self, CyCoinIndexedVector regionSparse1,
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1854
 *         return self.CppSelf.readLp(filename, epsilon)
 * 
 *     def updateColumnFT(self, CyCoinIndexedVector spare, CyCoinIndexedVector updatedColumn):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.updateColumnFT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1857
 *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)
 * 
 *     def updateColumnTranspose(self, CyCoinIndexedVector regionSparse1,             # <<<<<<<<<<<<<<
 *                                     CyCoinIndexedVector regionSparse2):
 *         return self.CppSelf.updateColumnTranspose(regionSparse1.CppSelf, regionSparse2.CppSelf)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_163updateColumnTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_162updateColumnTranspose[] = "CyClpSimplex.updateColumnTranspose(self, CyCoinIndexedVector regionSparse1, CyCoinIndexedVector regionSparse2)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_163updateColumnTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_regionSparse1 = 0;
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_regionSparse2 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("updateColumnTranspose (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_regionSparse1,&__pyx_n_s_regionSparse2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_regionSparse1)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_regionSparse2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("updateColumnTranspose", 1, 2, 2, 1); __PYX_ERR(0, 1857, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateColumnTranspose") < 0)) __PYX_ERR(0, 1857, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_regionSparse1 = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[0]);
    __pyx_v_regionSparse2 = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("updateColumnTranspose", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1857, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.updateColumnTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_regionSparse1), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "regionSparse1", 0))) __PYX_ERR(0, 1857, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_regionSparse2), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "regionSparse2", 0))) __PYX_ERR(0, 1858, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("updateColumnTranspose", 0);
  __Pyx_TraceCall("updateColumnTranspose", __pyx_f[0], 1857, 0, __PYX_ERR(0, 1857, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1859
 *     def updateColumnTranspose(self, CyCoinIndexedVector regionSparse1,
 *                                     CyCoinIndexedVector regionSparse2):
 *         return self.CppSelf.updateColumnTranspose(regionSparse1.CppSelf, regionSparse2.CppSelf)             # <<<<<<<<<<<<<<
 * 
 *     #############################################
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1857
 *         return self.CppSelf.updateColumnFT(spare.CppSelf, updatedColumn.CppSelf)
 * 
 *     def updateColumnTranspose(self, CyCoinIndexedVector regionSparse1,             # <<<<<<<<<<<<<<
 *                                     CyCoinIndexedVector regionSparse2):
 *         return self.CppSelf.updateColumnTranspose(regionSparse1.CppSelf, regionSparse2.CppSelf)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.updateColumnTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1865
 *     #############################################
 * 
 *     def loadFromCyLPModel(self, cyLPModel):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the coefficient matrix, constraint bounds, and variable
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_165loadFromCyLPModel(PyObject *__pyx_v_self, PyObject *__pyx_v_cyLPModel); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_165loadFromCyLPModel(PyObject *__pyx_v_self, PyObject *__pyx_v_cyLPModel) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("loadFromCyLPModel (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_164loadFromCyLPModel(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_cyLPModel));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_164loadFromCyLPModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_cyLPModel) {
  PyObject *__pyx_v_mat = NULL;
  PyObject *__pyx_v_constraintLower = NULL;
  PyObject *__pyx_v_constraintUpper = NULL;
  PyObject *__pyx_v_variableLower = NULL;
  PyObject *__pyx_v_variableUpper = NULL;
  Py_ssize_t __pyx_v_n;
  Py_ssize_t __pyx_v_m;
  struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_coinMat = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_variables = NULL;
  PyObject *__pyx_v_curVarInd = NULL;
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  Py_ssize_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  PyObject *(*__pyx_t_14)(PyObject *);
  Py_ssize_t __pyx_t_15;
  PyObject *(*__pyx_t_16)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("loadFromCyLPModel", 0);
  __Pyx_TraceCall("loadFromCyLPModel", __pyx_f[0], 1865, 0, __PYX_ERR(0, 1865, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1891
 * 
 *         '''
 *         self.cyLPModel = cyLPModel             # <<<<<<<<<<<<<<
 *         (mat, constraintLower, constraintUpper,
 *                     variableLower, variableUpper) = cyLPModel.makeMatrices()
 */
  __Pyx_INCREF(__pyx_v_cyLPModel);
  __Pyx_GIVEREF(__pyx_v_cyLPModel);
  __Pyx_GOTREF(__pyx_v_self->cyLPModel);
  __Pyx_DECREF(__pyx_v_self->cyLPModel);
  __pyx_v_self->cyLPModel = __pyx_v_cyLPModel;

  /* "cylp/cy/CyClpSimplex.pyx":1893
 *         self.cyLPModel = cyLPModel
 *         (mat, constraintLower, constraintUpper,
 *                     variableLower, variableUpper) = cyLPModel.makeMatrices()             # <<<<<<<<<<<<<<
 * 
 *         n = len(variableLower)
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 5)) {
      if (size > 5) __Pyx_RaiseTooManyValuesError(5);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 1892, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 2); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 3); 
      __pyx_t_6 = PyList_GET_ITEM(sequence, 4); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_6);
    #else
    {
      Py_ssize_t i;
      PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6};
      for (i=0; i < 5; i++) {
        PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1892, __pyx_L1_error)
        __Pyx_GOTREF(item);
        *(temps[i]) = item;
      }
    }
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6};
    __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1892, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
    for (index=0; index < 5; index++) {
      PyObject* item = __pyx_t_8(__pyx_t_7); if (unlikely(!item)) goto __pyx_L3_unpacking_failed;
      __Pyx_GOTREF(item);
      *(temps[index]) = item;
    }
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 5) < 0) __PYX_ERR(0, 1892, __pyx_L1_error)
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 1892, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1892
 *         '''
 *         self.cyLPModel = cyLPModel
 *         (mat, constraintLower, constraintUpper,             # <<<<<<<<<<<<<<
 *                     variableLower, variableUpper) = cyLPModel.makeMatrices()
 * 
 */
  __pyx_v_mat = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_constraintLower = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_constraintUpper = __pyx_t_4;
  __pyx_t_4 = 0;
  __pyx_v_variableLower = __pyx_t_5;
  __pyx_t_5 = 0;
  __pyx_v_variableUpper = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1895
 *                     variableLower, variableUpper) = cyLPModel.makeMatrices()
 * 
 *         n = len(variableLower)             # <<<<<<<<<<<<<<
 *         m = len(constraintLower)
 *         if n == 0:# or m == 0:
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_variableLower); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1895, __pyx_L1_error)
  __pyx_v_n = __pyx_t_9;

  /* "cylp/cy/CyClpSimplex.pyx":1896
 * 
 *         n = len(variableLower)
 *         m = len(constraintLower)             # <<<<<<<<<<<<<<
 *         if n == 0:# or m == 0:
 *             return
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_constraintLower); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1896, __pyx_L1_error)
  __pyx_v_m = __pyx_t_9;

  /* "cylp/cy/CyClpSimplex.pyx":1897
 *         n = len(variableLower)
 *         m = len(constraintLower)
 *         if n == 0:# or m == 0:             # <<<<<<<<<<<<<<
 *             return
 * 
 */
  __pyx_t_10 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_10) {

    /* "cylp/cy/CyClpSimplex.pyx":1898
 *         m = len(constraintLower)
 *         if n == 0:# or m == 0:
 *             return             # <<<<<<<<<<<<<<
 * 
 *         self.resize(m, n)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1897
 *         n = len(variableLower)
 *         m = len(constraintLower)
 *         if n == 0:# or m == 0:             # <<<<<<<<<<<<<<
 *             return
 * 
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1900
 *             return
 * 
 *         self.resize(m, n)             # <<<<<<<<<<<<<<
 *         if mat is not None:
 *             if not isinstance(mat, sparse.coo_matrix):
 */
  __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)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_m); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_11 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_11 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_4};
    __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)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_4};
    __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)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_2 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_11, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_11, __pyx_t_4);
    __pyx_t_5 = 0;
    __pyx_t_4 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1901
 * 
 *         self.resize(m, n)
 *         if mat is not None:             # <<<<<<<<<<<<<<
 *             if not isinstance(mat, sparse.coo_matrix):
 *                 mat = mat.tocoo()
 */
  __pyx_t_10 = (__pyx_v_mat != Py_None);
  __pyx_t_12 = (__pyx_t_10 != 0);
  if (__pyx_t_12) {

    /* "cylp/cy/CyClpSimplex.pyx":1902
 *         self.resize(m, n)
 *         if mat is not None:
 *             if not isinstance(mat, sparse.coo_matrix):             # <<<<<<<<<<<<<<
 *                 mat = mat.tocoo()
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sparse); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1902, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __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)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_10 = ((!(__pyx_t_12 != 0)) != 0);
    if (__pyx_t_10) {

      /* "cylp/cy/CyClpSimplex.pyx":1903
 *         if mat is not None:
 *             if not isinstance(mat, sparse.coo_matrix):
 *                 mat = mat.tocoo()             # <<<<<<<<<<<<<<
 * 
 *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),
 */
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1903, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_mat, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1902
 *         self.resize(m, n)
 *         if mat is not None:
 *             if not isinstance(mat, sparse.coo_matrix):             # <<<<<<<<<<<<<<
 *                 mat = mat.tocoo()
 * 
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1905
 *                 mat = mat.tocoo()
 * 
 *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),             # <<<<<<<<<<<<<<
 *                                         np.array(mat.col, np.int32),
 *                                         np.array(mat.data, np.double))
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1905, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1905, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_t_5};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_t_5};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_3 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1905, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_11, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_11, __pyx_t_5);
      __pyx_t_1 = 0;
      __pyx_t_5 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1906
 * 
 *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),
 *                                         np.array(mat.col, np.int32),             # <<<<<<<<<<<<<<
 *                                         np.array(mat.data, np.double))
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1906, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1906, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_3, __pyx_t_4};
      __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)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_3, __pyx_t_4};
      __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)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1906, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_11, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_11, __pyx_t_4);
      __pyx_t_3 = 0;
      __pyx_t_4 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1907
 *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),
 *                                         np.array(mat.col, np.int32),
 *                                         np.array(mat.data, np.double))             # <<<<<<<<<<<<<<
 *         else:
 *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_7, __pyx_t_1};
      __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)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_7, __pyx_t_1};
      __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)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    {
      __pyx_t_13 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_11, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_11, __pyx_t_1);
      __pyx_t_7 = 0;
      __pyx_t_1 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1905
 *                 mat = mat.tocoo()
 * 
 *             coinMat = CyCoinPackedMatrix(True, np.array(mat.row, np.int32),             # <<<<<<<<<<<<<<
 *                                         np.array(mat.col, np.int32),
 *                                         np.array(mat.data, np.double))
 */
    __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1905, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(Py_True);
    __Pyx_GIVEREF(Py_True);
    PyTuple_SET_ITEM(__pyx_t_4, 0, Py_True);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_5);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_coinMat = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1901
 * 
 *         self.resize(m, n)
 *         if mat is not None:             # <<<<<<<<<<<<<<
 *             if not isinstance(mat, sparse.coo_matrix):
 *                 mat = mat.tocoo()
 */
    goto __pyx_L6;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1909
 *                                         np.array(mat.data, np.double))
 *         else:
 *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),             # <<<<<<<<<<<<<<
 *                                         np.array([], np.int32),
 *                                         np.array([], np.double))
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __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)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_13};
      __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)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_13};
      __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)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    } else
    #endif
    {
      __pyx_t_1 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_11, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_13);
      PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_11, __pyx_t_13);
      __pyx_t_4 = 0;
      __pyx_t_13 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1910
 *         else:
 *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),
 *                                         np.array([], np.int32),             # <<<<<<<<<<<<<<
 *                                         np.array([], np.double))
 *         self.replaceMatrix(coinMat, True)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1910, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1910, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1910, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_13)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_t_6};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_t_6};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1910, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_11, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_11, __pyx_t_6);
      __pyx_t_1 = 0;
      __pyx_t_6 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1911
 *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),
 *                                         np.array([], np.int32),
 *                                         np.array([], np.double))             # <<<<<<<<<<<<<<
 *         self.replaceMatrix(coinMat, True)
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1911, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1911, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1911, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_7, __pyx_t_4};
      __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)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_7, __pyx_t_4};
      __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)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    {
      __pyx_t_3 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1911, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_11, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_11, __pyx_t_4);
      __pyx_t_7 = 0;
      __pyx_t_4 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1909
 *                                         np.array(mat.data, np.double))
 *         else:
 *             coinMat = CyCoinPackedMatrix(True, np.array([], np.int32),             # <<<<<<<<<<<<<<
 *                                         np.array([], np.int32),
 *                                         np.array([], np.double))
 */
    __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(Py_True);
    __Pyx_GIVEREF(Py_True);
    PyTuple_SET_ITEM(__pyx_t_6, 0, Py_True);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_13);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_t_13 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_coinMat = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)__pyx_t_13);
    __pyx_t_13 = 0;
  }
  __pyx_L6:;

  /* "cylp/cy/CyClpSimplex.pyx":1912
 *                                         np.array([], np.int32),
 *                                         np.array([], np.double))
 *         self.replaceMatrix(coinMat, True)             # <<<<<<<<<<<<<<
 * 
 *         #start adding the arrays and the matrix to the problem
 */
  __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)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = NULL;
  __pyx_t_11 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_11 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_coinMat), Py_True};
    __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)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_13);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_coinMat), Py_True};
    __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)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_13);
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1912, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_2) {
      __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
    }
    __Pyx_INCREF(((PyObject *)__pyx_v_coinMat));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_coinMat));
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_11, ((PyObject *)__pyx_v_coinMat));
    __Pyx_INCREF(Py_True);
    __Pyx_GIVEREF(Py_True);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_11, Py_True);
    __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)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1916
 *         #start adding the arrays and the matrix to the problem
 * 
 *         for i in xrange(n):             # <<<<<<<<<<<<<<
 *             self.setColumnLower(i, variableLower[i])
 *             self.setColumnUpper(i, variableUpper[i])
 */
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_13 = __pyx_t_6; __Pyx_INCREF(__pyx_t_13); __pyx_t_9 = 0;
    __pyx_t_14 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1916, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1916, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (likely(!__pyx_t_14)) {
      if (likely(PyList_CheckExact(__pyx_t_13))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_14(__pyx_t_13);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1916, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1917
 * 
 *         for i in xrange(n):
 *             self.setColumnLower(i, variableLower[i])             # <<<<<<<<<<<<<<
 *             self.setColumnUpper(i, variableUpper[i])
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_variableLower, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_i, __pyx_t_2};
      __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)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_i, __pyx_t_2};
      __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)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1917, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_INCREF(__pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_11, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_11, __pyx_t_2);
      __pyx_t_2 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1918
 *         for i in xrange(n):
 *             self.setColumnLower(i, variableLower[i])
 *             self.setColumnUpper(i, variableUpper[i])             # <<<<<<<<<<<<<<
 * 
 *         for i in xrange(m):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_variableUpper, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1918, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_i, __pyx_t_4};
      __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)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_i, __pyx_t_4};
      __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)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    {
      __pyx_t_3 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1918, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_INCREF(__pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_11, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_11, __pyx_t_4);
      __pyx_t_4 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1916
 *         #start adding the arrays and the matrix to the problem
 * 
 *         for i in xrange(n):             # <<<<<<<<<<<<<<
 *             self.setColumnLower(i, variableLower[i])
 *             self.setColumnUpper(i, variableUpper[i])
 */
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1920
 *             self.setColumnUpper(i, variableUpper[i])
 * 
 *         for i in xrange(m):             # <<<<<<<<<<<<<<
 *             self.setRowLower(i, constraintLower[i])
 *             self.setRowUpper(i, constraintUpper[i])
 */
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_m); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_13 = __pyx_t_6; __Pyx_INCREF(__pyx_t_13); __pyx_t_9 = 0;
    __pyx_t_14 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1920, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1920, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (likely(!__pyx_t_14)) {
      if (likely(PyList_CheckExact(__pyx_t_13))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_14(__pyx_t_13);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1920, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1921
 * 
 *         for i in xrange(m):
 *             self.setRowLower(i, constraintLower[i])             # <<<<<<<<<<<<<<
 *             self.setRowUpper(i, constraintUpper[i])
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_constraintLower, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_i, __pyx_t_3};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_i, __pyx_t_3};
      __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)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    {
      __pyx_t_2 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1921, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_11, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_11, __pyx_t_3);
      __pyx_t_3 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1922
 *         for i in xrange(m):
 *             self.setRowLower(i, constraintLower[i])
 *             self.setRowUpper(i, constraintUpper[i])             # <<<<<<<<<<<<<<
 * 
 *         #setting integer informations
 */
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_constraintUpper, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_i, __pyx_t_2};
      __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)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_i, __pyx_t_2};
      __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)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1922, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_INCREF(__pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_11, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_11, __pyx_t_2);
      __pyx_t_2 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1920
 *             self.setColumnUpper(i, variableUpper[i])
 * 
 *         for i in xrange(m):             # <<<<<<<<<<<<<<
 *             self.setRowLower(i, constraintLower[i])
 *             self.setRowUpper(i, constraintUpper[i])
 */
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1925
 * 
 *         #setting integer informations
 *         variables = cyLPModel.variables             # <<<<<<<<<<<<<<
 *         curVarInd = 0
 *         for var in variables:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_v_variables = __pyx_t_13;
  __pyx_t_13 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1926
 *         #setting integer informations
 *         variables = cyLPModel.variables
 *         curVarInd = 0             # <<<<<<<<<<<<<<
 *         for var in variables:
 *             if var.isInt:
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_curVarInd = __pyx_int_0;

  /* "cylp/cy/CyClpSimplex.pyx":1927
 *         variables = cyLPModel.variables
 *         curVarInd = 0
 *         for var in variables:             # <<<<<<<<<<<<<<
 *             if var.isInt:
 *                 for i in xrange(curVarInd, curVarInd + var.dim):
 */
  if (likely(PyList_CheckExact(__pyx_v_variables)) || PyTuple_CheckExact(__pyx_v_variables)) {
    __pyx_t_13 = __pyx_v_variables; __Pyx_INCREF(__pyx_t_13); __pyx_t_9 = 0;
    __pyx_t_14 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_v_variables); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1927, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1927, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_14)) {
      if (likely(PyList_CheckExact(__pyx_t_13))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __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)
        #else
        __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)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_14(__pyx_t_13);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1927, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1928
 *         curVarInd = 0
 *         for var in variables:
 *             if var.isInt:             # <<<<<<<<<<<<<<
 *                 for i in xrange(curVarInd, curVarInd + var.dim):
 *                     self.setInteger(i)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1928, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_10) {

      /* "cylp/cy/CyClpSimplex.pyx":1929
 *         for var in variables:
 *             if var.isInt:
 *                 for i in xrange(curVarInd, curVarInd + var.dim):             # <<<<<<<<<<<<<<
 *                     self.setInteger(i)
 *             curVarInd += var.dim
 */
      __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)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PyNumber_Add(__pyx_v_curVarInd, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1929, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1929, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_curVarInd);
      __Pyx_GIVEREF(__pyx_v_curVarInd);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_curVarInd);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
      __pyx_t_5 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_15 = 0;
        __pyx_t_16 = NULL;
      } else {
        __pyx_t_15 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1929, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_16 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1929, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_16)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __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)
            #else
            __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)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_16(__pyx_t_6);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1929, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1930
 *             if var.isInt:
 *                 for i in xrange(curVarInd, curVarInd + var.dim):
 *                     self.setInteger(i)             # <<<<<<<<<<<<<<
 *             curVarInd += var.dim
 * 
 */
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_2 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __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);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1930, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        /* "cylp/cy/CyClpSimplex.pyx":1929
 *         for var in variables:
 *             if var.isInt:
 *                 for i in xrange(curVarInd, curVarInd + var.dim):             # <<<<<<<<<<<<<<
 *                     self.setInteger(i)
 *             curVarInd += var.dim
 */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":1928
 *         curVarInd = 0
 *         for var in variables:
 *             if var.isInt:             # <<<<<<<<<<<<<<
 *                 for i in xrange(curVarInd, curVarInd + var.dim):
 *                     self.setInteger(i)
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":1931
 *                 for i in xrange(curVarInd, curVarInd + var.dim):
 *                     self.setInteger(i)
 *             curVarInd += var.dim             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_curVarInd, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1931, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_curVarInd, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1927
 *         variables = cyLPModel.variables
 *         curVarInd = 0
 *         for var in variables:             # <<<<<<<<<<<<<<
 *             if var.isInt:
 *                 for i in xrange(curVarInd, curVarInd + var.dim):
 */
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1934
 * 
 * 
 *         if cyLPModel.objective is not None:             # <<<<<<<<<<<<<<
 *             self.objective = cyLPModel.objective
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_10 = (__pyx_t_13 != Py_None);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_12 = (__pyx_t_10 != 0);
  if (__pyx_t_12) {

    /* "cylp/cy/CyClpSimplex.pyx":1935
 * 
 *         if cyLPModel.objective is not None:
 *             self.objective = cyLPModel.objective             # <<<<<<<<<<<<<<
 * 
 *     def evaluateAt(self, x0):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_objective, __pyx_t_13) < 0) __PYX_ERR(0, 1935, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1934
 * 
 * 
 *         if cyLPModel.objective is not None:             # <<<<<<<<<<<<<<
 *             self.objective = cyLPModel.objective
 * 
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1865
 *     #############################################
 * 
 *     def loadFromCyLPModel(self, cyLPModel):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the coefficient matrix, constraint bounds, and variable
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadFromCyLPModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_mat);
  __Pyx_XDECREF(__pyx_v_constraintLower);
  __Pyx_XDECREF(__pyx_v_constraintUpper);
  __Pyx_XDECREF(__pyx_v_variableLower);
  __Pyx_XDECREF(__pyx_v_variableUpper);
  __Pyx_XDECREF((PyObject *)__pyx_v_coinMat);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_variables);
  __Pyx_XDECREF(__pyx_v_curVarInd);
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1937
 *             self.objective = cyLPModel.objective
 * 
 *     def evaluateAt(self, x0):             # <<<<<<<<<<<<<<
 *         '''
 *         Evaluate the objective function at x0
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_167evaluateAt(PyObject *__pyx_v_self, PyObject *__pyx_v_x0); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt[] = "CyClpSimplex.evaluateAt(self, x0)\n\n        Evaluate the objective function at x0\n        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_167evaluateAt(PyObject *__pyx_v_self, PyObject *__pyx_v_x0) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("evaluateAt (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("evaluateAt", 0);
  __Pyx_TraceCall("evaluateAt", __pyx_f[0], 1937, 0, __PYX_ERR(0, 1937, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1941
 *         Evaluate the objective function at x0
 *         '''
 *         if self.Hessian is not None:             # <<<<<<<<<<<<<<
 *             return (np.dot(self.objectiveCoefficients, x0) +
 *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 != Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "cylp/cy/CyClpSimplex.pyx":1942
 *         '''
 *         if self.Hessian is not None:
 *             return (np.dot(self.objectiveCoefficients, x0) +             # <<<<<<<<<<<<<<
 *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
 *         else:
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1942, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_x0};
      __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)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_x0};
      __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)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1942, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4);
      __Pyx_INCREF(__pyx_v_x0);
      __Pyx_GIVEREF(__pyx_v_x0);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_x0);
      __pyx_t_4 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1943
 *         if self.Hessian is not None:
 *             return (np.dot(self.objectiveCoefficients, x0) +
 *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)             # <<<<<<<<<<<<<<
 *         else:
 *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset
 */
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __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)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_x0, __pyx_t_8};
      __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)
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_x0, __pyx_t_8};
      __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)
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1943, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_9) {
        __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL;
      }
      __Pyx_INCREF(__pyx_v_x0);
      __Pyx_GIVEREF(__pyx_v_x0);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_x0);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_t_8);
      __pyx_t_8 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_Multiply(__pyx_float_0_5, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1942
 *         '''
 *         if self.Hessian is not None:
 *             return (np.dot(self.objectiveCoefficients, x0) +             # <<<<<<<<<<<<<<
 *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
 *         else:
 */
    __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1942, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1943
 *         if self.Hessian is not None:
 *             return (np.dot(self.objectiveCoefficients, x0) +
 *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)             # <<<<<<<<<<<<<<
 *         else:
 *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset
 */
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1941
 *         Evaluate the objective function at x0
 *         '''
 *         if self.Hessian is not None:             # <<<<<<<<<<<<<<
 *             return (np.dot(self.objectiveCoefficients, x0) +
 *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1945
 *                     0.5 * np.dot(x0, self.Hessian.dot(x0)) - self.objectiveOffset)
 *         else:
 *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset             # <<<<<<<<<<<<<<
 * 
 *     def gradientAt(self, x0):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_x0};
      __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)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_x0};
      __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)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1945, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4);
      __Pyx_INCREF(__pyx_v_x0);
      __Pyx_GIVEREF(__pyx_v_x0);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_x0);
      __pyx_t_4 = 0;
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __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)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = PyNumber_Subtract(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1937
 *             self.objective = cyLPModel.objective
 * 
 *     def evaluateAt(self, x0):             # <<<<<<<<<<<<<<
 *         '''
 *         Evaluate the objective function at x0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.evaluateAt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1947
 *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset
 * 
 *     def gradientAt(self, x0):             # <<<<<<<<<<<<<<
 *         if self.Hessian is not None:
 *             return self.objectiveCoefficients + self.Hessian * x0
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_169gradientAt(PyObject *__pyx_v_self, PyObject *__pyx_v_x0); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt[] = "CyClpSimplex.gradientAt(self, x0)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_169gradientAt(PyObject *__pyx_v_self, PyObject *__pyx_v_x0) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gradientAt (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gradientAt", 0);
  __Pyx_TraceCall("gradientAt", __pyx_f[0], 1947, 0, __PYX_ERR(0, 1947, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1948
 * 
 *     def gradientAt(self, x0):
 *         if self.Hessian is not None:             # <<<<<<<<<<<<<<
 *             return self.objectiveCoefficients + self.Hessian * x0
 *         else:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 != Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "cylp/cy/CyClpSimplex.pyx":1949
 *     def gradientAt(self, x0):
 *         if self.Hessian is not None:
 *             return self.objectiveCoefficients + self.Hessian * x0             # <<<<<<<<<<<<<<
 *         else:
 *             return self.objectiveCoefficients
 */
    __Pyx_XDECREF(__pyx_r);
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "cylp/cy/CyClpSimplex.pyx":1948
 * 
 *     def gradientAt(self, x0):
 *         if self.Hessian is not None:             # <<<<<<<<<<<<<<
 *             return self.objectiveCoefficients + self.Hessian * x0
 *         else:
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1951
 *             return self.objectiveCoefficients + self.Hessian * x0
 *         else:
 *             return self.objectiveCoefficients             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "cylp/cy/CyClpSimplex.pyx":1947
 *             return np.dot(self.objectiveCoefficients, x0) - self.objectiveOffset
 * 
 *     def gradientAt(self, x0):             # <<<<<<<<<<<<<<
 *         if self.Hessian is not None:
 *             return self.objectiveCoefficients + self.Hessian * x0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.gradientAt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1958
 *     #############################################
 * 
 *     def getCbcModel(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Run initialSolve, return a :class:`CyCbcModel` object that can be
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_171getCbcModel(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_171getCbcModel(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getCbcModel (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_170getCbcModel(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_170getCbcModel(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  ICbcModel *__pyx_v_model;
  struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_cm = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getCbcModel", 0);
  __Pyx_TraceCall("getCbcModel", __pyx_f[0], 1958, 0, __PYX_ERR(0, 1958, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1963
 *         used to add cuts, run B&B and ...
 *         '''
 *         cdef CppICbcModel* model = self.CppSelf.getICbcModel()             # <<<<<<<<<<<<<<
 *         cm =  CyCbcModel()
 *         cm.setCppSelf(model)
 */
  __pyx_v_model = __pyx_v_self->CppSelf->getICbcModel();

  /* "cylp/cy/CyClpSimplex.pyx":1964
 *         '''
 *         cdef CppICbcModel* model = self.CppSelf.getICbcModel()
 *         cm =  CyCbcModel()             # <<<<<<<<<<<<<<
 *         cm.setCppSelf(model)
 *         cm.setClpModel(self)
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cm = ((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1965
 *         cdef CppICbcModel* model = self.CppSelf.getICbcModel()
 *         cm =  CyCbcModel()
 *         cm.setCppSelf(model)             # <<<<<<<<<<<<<<
 *         cm.setClpModel(self)
 *         if self.cyLPModel:
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1966
 *         cm =  CyCbcModel()
 *         cm.setCppSelf(model)
 *         cm.setClpModel(self)             # <<<<<<<<<<<<<<
 *         if self.cyLPModel:
 *             cm.cyLPModel = self.cyLPModel
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1967
 *         cm.setCppSelf(model)
 *         cm.setClpModel(self)
 *         if self.cyLPModel:             # <<<<<<<<<<<<<<
 *             cm.cyLPModel = self.cyLPModel
 *         return cm
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1967, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "cylp/cy/CyClpSimplex.pyx":1968
 *         cm.setClpModel(self)
 *         if self.cyLPModel:
 *             cm.cyLPModel = self.cyLPModel             # <<<<<<<<<<<<<<
 *         return cm
 * 
 */
    __pyx_t_1 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_cm->cyLPModel);
    __Pyx_DECREF(__pyx_v_cm->cyLPModel);
    __pyx_v_cm->cyLPModel = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":1967
 *         cm.setCppSelf(model)
 *         cm.setClpModel(self)
 *         if self.cyLPModel:             # <<<<<<<<<<<<<<
 *             cm.cyLPModel = self.cyLPModel
 *         return cm
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":1969
 *         if self.cyLPModel:
 *             cm.cyLPModel = self.cyLPModel
 *         return cm             # <<<<<<<<<<<<<<
 * 
 *     #############################################
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_cm));
  __pyx_r = ((PyObject *)__pyx_v_cm);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1958
 *     #############################################
 * 
 *     def getCbcModel(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Run initialSolve, return a :class:`CyCbcModel` object that can be
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getCbcModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cm);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1975
 *     #############################################
 * 
 *     def isPivotAcceptable(self):             # <<<<<<<<<<<<<<
 *         return (<CyPivotPythonBase>
 *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_173isPivotAcceptable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable[] = "CyClpSimplex.isPivotAcceptable(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_173isPivotAcceptable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("isPivotAcceptable (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("isPivotAcceptable", 0);
  __Pyx_TraceCall("isPivotAcceptable", __pyx_f[0], 1975, 0, __PYX_ERR(0, 1975, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1976
 * 
 *     def isPivotAcceptable(self):
 *         return (<CyPivotPythonBase>             # <<<<<<<<<<<<<<
 *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "cylp/cy/CyClpSimplex.pyx":1977
 *     def isPivotAcceptable(self):
 *         return (<CyPivotPythonBase>
 *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()             # <<<<<<<<<<<<<<
 * 
 *     def checkVar(self, i):
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1975
 *     #############################################
 * 
 *     def isPivotAcceptable(self):             # <<<<<<<<<<<<<<
 *         return (<CyPivotPythonBase>
 *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.isPivotAcceptable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1979
 *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
 * 
 *     def checkVar(self, i):             # <<<<<<<<<<<<<<
 *         (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
 *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_175checkVar(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar[] = "CyClpSimplex.checkVar(self, i)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_175checkVar(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("checkVar (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_i));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_i) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("checkVar", 0);
  __Pyx_TraceCall("checkVar", __pyx_f[0], 1979, 0, __PYX_ERR(0, 1979, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1980
 * 
 *     def checkVar(self, i):
 *         (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)             # <<<<<<<<<<<<<<
 *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1981
 *     def checkVar(self, i):
 *         (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
 *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)             # <<<<<<<<<<<<<<
 * 
 *     def setPrimalColumnPivotAlgorithmToWolfe(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":1979
 *                 self.cyPivot).pivotMethodObject.isPivotAcceptable()
 * 
 *     def checkVar(self, i):             # <<<<<<<<<<<<<<
 *         (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
 *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.checkVar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1983
 *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
 * 
 *     def setPrimalColumnPivotAlgorithmToWolfe(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Set primal simplex's pivot rule to the Cython implementation of
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_177setPrimalColumnPivotAlgorithmToWolfe(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_177setPrimalColumnPivotAlgorithmToWolfe(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithmToWolfe (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_176setPrimalColumnPivotAlgorithmToWolfe(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_176setPrimalColumnPivotAlgorithmToWolfe(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot *__pyx_v_wp = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithmToWolfe", 0);
  __Pyx_TraceCall("setPrimalColumnPivotAlgorithmToWolfe", __pyx_f[0], 1983, 0, __PYX_ERR(0, 1983, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1988
 *         Wolfe's rule used to solve QPs.
 *         '''
 *         cdef CyWolfePivot wp = CyWolfePivot()             # <<<<<<<<<<<<<<
 *         self.setPrimalColumnPivotAlgorithm(wp.CppSelf)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wp = ((struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1989
 *         '''
 *         cdef CyWolfePivot wp = CyWolfePivot()
 *         self.setPrimalColumnPivotAlgorithm(wp.CppSelf)             # <<<<<<<<<<<<<<
 * 
 *     def setPrimalColumnPivotAlgorithmToPE(self):
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1983
 *         return (<CyPivotPythonBase>self.cyPivot).pivotMethodObject.checkVar(i)
 * 
 *     def setPrimalColumnPivotAlgorithmToWolfe(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Set primal simplex's pivot rule to the Cython implementation of
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPrimalColumnPivotAlgorithmToWolfe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_wp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1991
 *         self.setPrimalColumnPivotAlgorithm(wp.CppSelf)
 * 
 *     def setPrimalColumnPivotAlgorithmToPE(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Set primal simplex's pivot rule to the Cython
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_179setPrimalColumnPivotAlgorithmToPE(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_179setPrimalColumnPivotAlgorithmToPE(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithmToPE (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_178setPrimalColumnPivotAlgorithmToPE(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_178setPrimalColumnPivotAlgorithmToPE(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot *__pyx_v_pe = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setPrimalColumnPivotAlgorithmToPE", 0);
  __Pyx_TraceCall("setPrimalColumnPivotAlgorithmToPE", __pyx_f[0], 1991, 0, __PYX_ERR(0, 1991, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":1996
 *         implementation of *positive edge*
 *         '''
 *         cdef CyPEPivot pe = CyPEPivot()             # <<<<<<<<<<<<<<
 *         self.setPrimalColumnPivotAlgorithm(pe.CppSelf)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pe = ((struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1997
 *         '''
 *         cdef CyPEPivot pe = CyPEPivot()
 *         self.setPrimalColumnPivotAlgorithm(pe.CppSelf)             # <<<<<<<<<<<<<<
 * 
 *     def setPivotMethod(self, pivotMethodObject):
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1991
 *         self.setPrimalColumnPivotAlgorithm(wp.CppSelf)
 * 
 *     def setPrimalColumnPivotAlgorithmToPE(self):             # <<<<<<<<<<<<<<
 *         '''
 *         Set primal simplex's pivot rule to the Cython
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPrimalColumnPivotAlgorithmToPE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pe);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":1999
 *         self.setPrimalColumnPivotAlgorithm(pe.CppSelf)
 * 
 *     def setPivotMethod(self, pivotMethodObject):             # <<<<<<<<<<<<<<
 *         '''
 *         Takes a python object and sets it as the primal
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_181setPivotMethod(PyObject *__pyx_v_self, PyObject *__pyx_v_pivotMethodObject); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_181setPivotMethod(PyObject *__pyx_v_self, PyObject *__pyx_v_pivotMethodObject) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setPivotMethod (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_180setPivotMethod(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_pivotMethodObject));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_180setPivotMethod(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_pivotMethodObject) {
  struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *__pyx_v_p = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setPivotMethod", 0);
  __Pyx_TraceCall("setPivotMethod", __pyx_f[0], 1999, 0, __PYX_ERR(0, 1999, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2007
 *         to solve LPs <custom-pivot-usage>`.
 *         '''
 *         if not issubclass(pivotMethodObject.__class__, PivotPythonBase):             # <<<<<<<<<<<<<<
 *             raise TypeError('pivotMethodObject should be of a \
 *                             class derived from PivotPythonBase')
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PivotPythonBase); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cylp/cy/CyClpSimplex.pyx":2008
 *         '''
 *         if not issubclass(pivotMethodObject.__class__, PivotPythonBase):
 *             raise TypeError('pivotMethodObject should be of a \             # <<<<<<<<<<<<<<
 *                             class derived from PivotPythonBase')
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 2008, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":2007
 *         to solve LPs <custom-pivot-usage>`.
 *         '''
 *         if not issubclass(pivotMethodObject.__class__, PivotPythonBase):             # <<<<<<<<<<<<<<
 *             raise TypeError('pivotMethodObject should be of a \
 *                             class derived from PivotPythonBase')
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":2011
 *                             class derived from PivotPythonBase')
 * 
 *         cdef CyPivotPythonBase p = CyPivotPythonBase(pivotMethodObject)             # <<<<<<<<<<<<<<
 *         self.cyPivot = p
 *         p.cyModel = self
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_p = ((struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2012
 * 
 *         cdef CyPivotPythonBase p = CyPivotPythonBase(pivotMethodObject)
 *         self.cyPivot = p             # <<<<<<<<<<<<<<
 *         p.cyModel = self
 *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_p));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_p));
  __Pyx_GOTREF(__pyx_v_self->cyPivot);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->cyPivot));
  __pyx_v_self->cyPivot = ((struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *)__pyx_v_p);

  /* "cylp/cy/CyClpSimplex.pyx":2013
 *         cdef CyPivotPythonBase p = CyPivotPythonBase(pivotMethodObject)
 *         self.cyPivot = p
 *         p.cyModel = self             # <<<<<<<<<<<<<<
 *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)
 * 
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  __Pyx_GOTREF(__pyx_v_p->__pyx_base.cyModel);
  __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.cyModel));
  __pyx_v_p->__pyx_base.cyModel = __pyx_v_self;

  /* "cylp/cy/CyClpSimplex.pyx":2014
 *         self.cyPivot = p
 *         p.cyModel = self
 *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)             # <<<<<<<<<<<<<<
 * 
 *     def setDualPivotMethod(self, dualPivotMethodObject):
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1999
 *         self.setPrimalColumnPivotAlgorithm(pe.CppSelf)
 * 
 *     def setPivotMethod(self, pivotMethodObject):             # <<<<<<<<<<<<<<
 *         '''
 *         Takes a python object and sets it as the primal
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setPivotMethod", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_p);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2016
 *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)
 * 
 *     def setDualPivotMethod(self, dualPivotMethodObject):             # <<<<<<<<<<<<<<
 *         '''
 *         Takes a python object and sets it as the dual
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_183setDualPivotMethod(PyObject *__pyx_v_self, PyObject *__pyx_v_dualPivotMethodObject); /*proto*/
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>`.       ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_183setDualPivotMethod(PyObject *__pyx_v_self, PyObject *__pyx_v_dualPivotMethodObject) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setDualPivotMethod (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_182setDualPivotMethod(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_dualPivotMethodObject));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_182setDualPivotMethod(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_dualPivotMethodObject) {
  struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase *__pyx_v_p = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setDualPivotMethod", 0);
  __Pyx_TraceCall("setDualPivotMethod", __pyx_f[0], 2016, 0, __PYX_ERR(0, 2016, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2023
 *         See :ref:`how to use custom dual Python pivots
 *         to solve LPs <custom-dual-pivot-usage>`.       '''
 *         if not issubclass(dualPivotMethodObject.__class__, DualPivotPythonBase):             # <<<<<<<<<<<<<<
 *             raise TypeError('dualPivotMethodObject should be of a \
 *                             class derived from DualPivotPythonBase')
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DualPivotPythonBase); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0);
  if (unlikely(__pyx_t_4)) {

    /* "cylp/cy/CyClpSimplex.pyx":2024
 *         to solve LPs <custom-dual-pivot-usage>`.       '''
 *         if not issubclass(dualPivotMethodObject.__class__, DualPivotPythonBase):
 *             raise TypeError('dualPivotMethodObject should be of a \             # <<<<<<<<<<<<<<
 *                             class derived from DualPivotPythonBase')
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 2024, __pyx_L1_error)

    /* "cylp/cy/CyClpSimplex.pyx":2023
 *         See :ref:`how to use custom dual Python pivots
 *         to solve LPs <custom-dual-pivot-usage>`.       '''
 *         if not issubclass(dualPivotMethodObject.__class__, DualPivotPythonBase):             # <<<<<<<<<<<<<<
 *             raise TypeError('dualPivotMethodObject should be of a \
 *                             class derived from DualPivotPythonBase')
 */
  }

  /* "cylp/cy/CyClpSimplex.pyx":2027
 *                             class derived from DualPivotPythonBase')
 * 
 *         cdef CyDualPivotPythonBase p = CyDualPivotPythonBase(dualPivotMethodObject)             # <<<<<<<<<<<<<<
 *         self.cyDualPivot = p
 *         p.cyModel = self
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_p = ((struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2028
 * 
 *         cdef CyDualPivotPythonBase p = CyDualPivotPythonBase(dualPivotMethodObject)
 *         self.cyDualPivot = p             # <<<<<<<<<<<<<<
 *         p.cyModel = self
 *         self.setDualRowPivotAlgorithm(p.CppSelf)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_p));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_p));
  __Pyx_GOTREF(__pyx_v_self->cyDualPivot);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->cyDualPivot));
  __pyx_v_self->cyDualPivot = ((struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *)__pyx_v_p);

  /* "cylp/cy/CyClpSimplex.pyx":2029
 *         cdef CyDualPivotPythonBase p = CyDualPivotPythonBase(dualPivotMethodObject)
 *         self.cyDualPivot = p
 *         p.cyModel = self             # <<<<<<<<<<<<<<
 *         self.setDualRowPivotAlgorithm(p.CppSelf)
 * 
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  __Pyx_GOTREF(__pyx_v_p->__pyx_base.cyModel);
  __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.cyModel));
  __pyx_v_p->__pyx_base.cyModel = __pyx_v_self;

  /* "cylp/cy/CyClpSimplex.pyx":2030
 *         self.cyDualPivot = p
 *         p.cyModel = self
 *         self.setDualRowPivotAlgorithm(p.CppSelf)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2016
 *         self.setPrimalColumnPivotAlgorithm(p.CppSelf)
 * 
 *     def setDualPivotMethod(self, dualPivotMethodObject):             # <<<<<<<<<<<<<<
 *         '''
 *         Takes a python object and sets it as the dual
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setDualPivotMethod", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_p);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2033
 * 
 * 
 *     cpdef filterVars(self,  inds):             # <<<<<<<<<<<<<<
 *         return <object>self.CppSelf.filterVars(<PyObject*>inds)
 * 
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars(PyObject *__pyx_v_self, PyObject *__pyx_v_inds); /*proto*/
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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("filterVars", 0);
  __Pyx_TraceCall("filterVars", __pyx_f[0], 2033, 0, __PYX_ERR(0, 2033, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __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);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2033, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":2034
 * 
 *     cpdef filterVars(self,  inds):
 *         return <object>self.CppSelf.filterVars(<PyObject*>inds)             # <<<<<<<<<<<<<<
 * 
 *     def setObjectiveCoefficient(self, elementIndex, elementValue):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __pyx_v_self->CppSelf->filterVars(((PyObject *)__pyx_v_inds));
  __Pyx_INCREF(((PyObject *)__pyx_t_5));
  __pyx_r = ((PyObject *)__pyx_t_5);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2033
 * 
 * 
 *     cpdef filterVars(self,  inds):             # <<<<<<<<<<<<<<
 *         return <object>self.CppSelf.filterVars(<PyObject*>inds)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.filterVars", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars(PyObject *__pyx_v_self, PyObject *__pyx_v_inds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars[] = "CyClpSimplex.filterVars(self, inds)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars(PyObject *__pyx_v_self, PyObject *__pyx_v_inds) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("filterVars (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyObject *)__pyx_v_inds));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyObject *__pyx_v_inds) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("filterVars", 0);
  __Pyx_TraceCall("filterVars (wrapper)", __pyx_f[0], 2033, 0, __PYX_ERR(0, 2033, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.filterVars", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2036
 *         return <object>self.CppSelf.filterVars(<PyObject*>inds)
 * 
 *     def setObjectiveCoefficient(self, elementIndex, elementValue):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the objective coefficients using sparse vector elements
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_187setObjectiveCoefficient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_187setObjectiveCoefficient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_elementIndex = 0;
  PyObject *__pyx_v_elementValue = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setObjectiveCoefficient (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementIndex,&__pyx_n_s_elementValue,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementIndex)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementValue)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setObjectiveCoefficient", 1, 2, 2, 1); __PYX_ERR(0, 2036, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setObjectiveCoefficient") < 0)) __PYX_ERR(0, 2036, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_elementIndex = values[0];
    __pyx_v_elementValue = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setObjectiveCoefficient", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2036, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setObjectiveCoefficient", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setObjectiveCoefficient", 0);
  __Pyx_TraceCall("setObjectiveCoefficient", __pyx_f[0], 2036, 0, __PYX_ERR(0, 2036, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2041
 *         ``elementIndex`` and ``elementValue``.
 *         '''
 *         self.CppSelf.setObjectiveCoefficient(elementIndex, elementValue)             # <<<<<<<<<<<<<<
 * 
 *     def partialPricing(self, start, end,
 */
  __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)
  __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)
  __pyx_v_self->CppSelf->setObjectiveCoefficient(__pyx_t_1, __pyx_t_2);

  /* "cylp/cy/CyClpSimplex.pyx":2036
 *         return <object>self.CppSelf.filterVars(<PyObject*>inds)
 * 
 *     def setObjectiveCoefficient(self, elementIndex, elementValue):             # <<<<<<<<<<<<<<
 *         '''
 *         Set the objective coefficients using sparse vector elements
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setObjectiveCoefficient", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2043
 *         self.CppSelf.setObjectiveCoefficient(elementIndex, elementValue)
 * 
 *     def partialPricing(self, start, end,             # <<<<<<<<<<<<<<
 *                       np.ndarray[np.int32_t, ndim=1] numberWanted):
 *         '''
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_189partialPricing(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_189partialPricing(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_end = 0;
  PyArrayObject *__pyx_v_numberWanted = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("partialPricing (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_start,&__pyx_n_s_end,&__pyx_n_s_numberWanted,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("partialPricing", 1, 3, 3, 1); __PYX_ERR(0, 2043, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numberWanted)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("partialPricing", 1, 3, 3, 2); __PYX_ERR(0, 2043, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "partialPricing") < 0)) __PYX_ERR(0, 2043, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_start = values[0];
    __pyx_v_end = values[1];
    __pyx_v_numberWanted = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("partialPricing", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2043, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.partialPricing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_numberWanted), __pyx_ptype_5numpy_ndarray, 1, "numberWanted", 0))) __PYX_ERR(0, 2044, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_numberWanted;
  __Pyx_Buffer __pyx_pybuffer_numberWanted;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("partialPricing", 0);
  __Pyx_TraceCall("partialPricing", __pyx_f[0], 2043, 0, __PYX_ERR(0, 2043, __pyx_L1_error));
  __pyx_pybuffer_numberWanted.pybuffer.buf = NULL;
  __pyx_pybuffer_numberWanted.refcount = 0;
  __pyx_pybuffernd_numberWanted.data = NULL;
  __pyx_pybuffernd_numberWanted.rcbuffer = &__pyx_pybuffer_numberWanted;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":2049
 *         Stop when ``numberWanted`` variables good variable checked.
 *         '''
 *         return self.CppSelf.partialPrice(start, end, <int*>numberWanted.data)             # <<<<<<<<<<<<<<
 * 
 *     def setComplementarityList(self, np.ndarray[np.int32_t, ndim=1] cl):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __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)
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2043
 *         self.CppSelf.setObjectiveCoefficient(elementIndex, elementValue)
 * 
 *     def partialPricing(self, start, end,             # <<<<<<<<<<<<<<
 *                       np.ndarray[np.int32_t, ndim=1] numberWanted):
 *         '''
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_numberWanted.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.partialPricing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_numberWanted.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2051
 *         return self.CppSelf.partialPrice(start, end, <int*>numberWanted.data)
 * 
 *     def setComplementarityList(self, np.ndarray[np.int32_t, ndim=1] cl):             # <<<<<<<<<<<<<<
 *         self.CppSelf.setComplementarityList(<int*>cl.data)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_191setComplementarityList(PyObject *__pyx_v_self, PyObject *__pyx_v_cl); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList[] = "CyClpSimplex.setComplementarityList(self, ndarray cl)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_191setComplementarityList(PyObject *__pyx_v_self, PyObject *__pyx_v_cl) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setComplementarityList (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cl), __pyx_ptype_5numpy_ndarray, 1, "cl", 0))) __PYX_ERR(0, 2051, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self), ((PyArrayObject *)__pyx_v_cl));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, PyArrayObject *__pyx_v_cl) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cl;
  __Pyx_Buffer __pyx_pybuffer_cl;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setComplementarityList", 0);
  __Pyx_TraceCall("setComplementarityList", __pyx_f[0], 2051, 0, __PYX_ERR(0, 2051, __pyx_L1_error));
  __pyx_pybuffer_cl.pybuffer.buf = NULL;
  __pyx_pybuffer_cl.refcount = 0;
  __pyx_pybuffernd_cl.data = NULL;
  __pyx_pybuffernd_cl.rcbuffer = &__pyx_pybuffer_cl;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":2052
 * 
 *     def setComplementarityList(self, np.ndarray[np.int32_t, ndim=1] cl):
 *         self.CppSelf.setComplementarityList(<int*>cl.data)             # <<<<<<<<<<<<<<
 * 
 *     cpdef getACol(self, int ncol, CyCoinIndexedVector colArray):
 */
  __pyx_v_self->CppSelf->setComplementarityList(((int *)__pyx_v_cl->data));

  /* "cylp/cy/CyClpSimplex.pyx":2051
 *         return self.CppSelf.partialPrice(start, end, <int*>numberWanted.data)
 * 
 *     def setComplementarityList(self, np.ndarray[np.int32_t, ndim=1] cl):             # <<<<<<<<<<<<<<
 *         self.CppSelf.setComplementarityList(<int*>cl.data)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setComplementarityList", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cl.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2054
 *         self.CppSelf.setComplementarityList(<int*>cl.data)
 * 
 *     cpdef getACol(self, int ncol, CyCoinIndexedVector colArray):             # <<<<<<<<<<<<<<
 *         '''
 *         Gets column ``ncol`` of ``A`` and store it in ``colArray``.
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getACol", 0);
  __Pyx_TraceCall("getACol", __pyx_f[0], 2054, 0, __PYX_ERR(0, 2054, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ncol); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, ((PyObject *)__pyx_v_colArray)};
          __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)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, ((PyObject *)__pyx_v_colArray)};
          __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)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2054, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_5) {
            __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
          __Pyx_INCREF(((PyObject *)__pyx_v_colArray));
          __Pyx_GIVEREF(((PyObject *)__pyx_v_colArray));
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, ((PyObject *)__pyx_v_colArray));
          __pyx_t_3 = 0;
          __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)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":2058
 *         Gets column ``ncol`` of ``A`` and store it in ``colArray``.
 *         '''
 *         self.CppSelf.getACol(ncol, colArray.CppSelf)             # <<<<<<<<<<<<<<
 * 
 *     cpdef vectorTimesB_1(self, CyCoinIndexedVector vec):
 */
  __pyx_v_self->CppSelf->getACol(__pyx_v_ncol, __pyx_v_colArray->CppSelf);

  /* "cylp/cy/CyClpSimplex.pyx":2054
 *         self.CppSelf.setComplementarityList(<int*>cl.data)
 * 
 *     cpdef getACol(self, int ncol, CyCoinIndexedVector colArray):             # <<<<<<<<<<<<<<
 *         '''
 *         Gets column ``ncol`` of ``A`` and store it in ``colArray``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_ncol;
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_colArray = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getACol (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ncol,&__pyx_n_s_colArray,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ncol)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colArray)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("getACol", 1, 2, 2, 1); __PYX_ERR(0, 2054, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getACol") < 0)) __PYX_ERR(0, 2054, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __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)
    __pyx_v_colArray = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("getACol", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2054, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colArray), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "colArray", 0))) __PYX_ERR(0, 2054, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getACol", 0);
  __Pyx_TraceCall("getACol (wrapper)", __pyx_f[0], 2054, 0, __PYX_ERR(0, 2054, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getACol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2060
 *         self.CppSelf.getACol(ncol, colArray.CppSelf)
 * 
 *     cpdef vectorTimesB_1(self, CyCoinIndexedVector vec):             # <<<<<<<<<<<<<<
 *         '''
 *         Compute :math:`vec A_B^{-1}` and store it in ``vec``.
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1(PyObject *__pyx_v_self, PyObject *__pyx_v_vec); /*proto*/
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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("vectorTimesB_1", 0);
  __Pyx_TraceCall("vectorTimesB_1", __pyx_f[0], 2060, 0, __PYX_ERR(0, 2060, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __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));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2060, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":2064
 *         Compute :math:`vec A_B^{-1}` and store it in ``vec``.
 *         '''
 *         self.CppSelf.vectorTimesB_1(vec.CppSelf)             # <<<<<<<<<<<<<<
 * 
 *     cdef primalRow(self, CppCoinIndexedVector * rowArray,
 */
  __pyx_v_self->CppSelf->vectorTimesB_1(__pyx_v_vec->CppSelf);

  /* "cylp/cy/CyClpSimplex.pyx":2060
 *         self.CppSelf.getACol(ncol, colArray.CppSelf)
 * 
 *     cpdef vectorTimesB_1(self, CyCoinIndexedVector vec):             # <<<<<<<<<<<<<<
 *         '''
 *         Compute :math:`vec A_B^{-1}` and store it in ``vec``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.vectorTimesB_1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1(PyObject *__pyx_v_self, PyObject *__pyx_v_vec); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1(PyObject *__pyx_v_self, PyObject *__pyx_v_vec) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("vectorTimesB_1 (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "vec", 0))) __PYX_ERR(0, 2060, __pyx_L1_error)
  __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));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("vectorTimesB_1", 0);
  __Pyx_TraceCall("vectorTimesB_1 (wrapper)", __pyx_f[0], 2060, 0, __PYX_ERR(0, 2060, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.vectorTimesB_1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2066
 *         self.CppSelf.vectorTimesB_1(vec.CppSelf)
 * 
 *     cdef primalRow(self, CppCoinIndexedVector * rowArray,             # <<<<<<<<<<<<<<
 *                                        CppCoinIndexedVector * rhsArray,
 *                                        CppCoinIndexedVector * spareArray,
 */

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("primalRow", 0);
  __Pyx_TraceCall("primalRow", __pyx_f[0], 2066, 0, __PYX_ERR(0, 2066, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2071
 *                                        CppCoinIndexedVector * spareArray2,
 *                                        int valuesPass):
 *         raise Exception('CyClpPrimalColumnPivotBase.pyx: pivot column ' \             # <<<<<<<<<<<<<<
 *                         'should be implemented.')
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 2071, __pyx_L1_error)

  /* "cylp/cy/CyClpSimplex.pyx":2066
 *         self.CppSelf.vectorTimesB_1(vec.CppSelf)
 * 
 *     cdef primalRow(self, CppCoinIndexedVector * rowArray,             # <<<<<<<<<<<<<<
 *                                        CppCoinIndexedVector * rhsArray,
 *                                        CppCoinIndexedVector * spareArray,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.primalRow", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2074
 *                         'should be implemented.')
 * 
 *     def argWeightedMax(self, arr, arr_ind, w, w_ind):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.argWeightedMax(<PyObject*>arr, <PyObject*>arr_ind,
 *                                             <PyObject*>w, <PyObject*>w_ind)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_197argWeightedMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_196argWeightedMax[] = "CyClpSimplex.argWeightedMax(self, arr, arr_ind, w, w_ind)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_197argWeightedMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_arr = 0;
  PyObject *__pyx_v_arr_ind = 0;
  PyObject *__pyx_v_w = 0;
  PyObject *__pyx_v_w_ind = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("argWeightedMax (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arr,&__pyx_n_s_arr_ind,&__pyx_n_s_w,&__pyx_n_s_w_ind,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arr)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arr_ind)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("argWeightedMax", 1, 4, 4, 1); __PYX_ERR(0, 2074, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("argWeightedMax", 1, 4, 4, 2); __PYX_ERR(0, 2074, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_ind)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("argWeightedMax", 1, 4, 4, 3); __PYX_ERR(0, 2074, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "argWeightedMax") < 0)) __PYX_ERR(0, 2074, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_arr = values[0];
    __pyx_v_arr_ind = values[1];
    __pyx_v_w = values[2];
    __pyx_v_w_ind = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("argWeightedMax", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2074, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.argWeightedMax", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("argWeightedMax", 0);
  __Pyx_TraceCall("argWeightedMax", __pyx_f[0], 2074, 0, __PYX_ERR(0, 2074, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2075
 * 
 *     def argWeightedMax(self, arr, arr_ind, w, w_ind):
 *         return self.CppSelf.argWeightedMax(<PyObject*>arr, <PyObject*>arr_ind,             # <<<<<<<<<<<<<<
 *                                             <PyObject*>w, <PyObject*>w_ind)
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "cylp/cy/CyClpSimplex.pyx":2076
 *     def argWeightedMax(self, arr, arr_ind, w, w_ind):
 *         return self.CppSelf.argWeightedMax(<PyObject*>arr, <PyObject*>arr_ind,
 *                                             <PyObject*>w, <PyObject*>w_ind)             # <<<<<<<<<<<<<<
 * 
 * #    def getnff(self):
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2074
 *                         'should be implemented.')
 * 
 *     def argWeightedMax(self, arr, arr_ind, w, w_ind):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.argWeightedMax(<PyObject*>arr, <PyObject*>arr_ind,
 *                                             <PyObject*>w, <PyObject*>w_ind)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.argWeightedMax", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2086
 * #        return np.where((status & 7 == 4) | (status & 7 == 0))[0]
 * 
 *     cdef int* ComplementarityList(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.ComplementarityList()
 * 
 */

static int *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_ComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  int *__pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ComplementarityList", 0);
  __Pyx_TraceCall("ComplementarityList", __pyx_f[0], 2086, 0, __PYX_ERR(0, 2086, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2087
 * 
 *     cdef int* ComplementarityList(self):
 *         return self.CppSelf.ComplementarityList()             # <<<<<<<<<<<<<<
 * 
 *     cpdef getComplementarityList(self):
 */
  __pyx_r = __pyx_v_self->CppSelf->ComplementarityList();
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2086
 * #        return np.where((status & 7 == 4) | (status & 7 == 0))[0]
 * 
 *     cdef int* ComplementarityList(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.ComplementarityList()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.CyClpSimplex.ComplementarityList", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2089
 *         return self.CppSelf.ComplementarityList()
 * 
 *     cpdef getComplementarityList(self):             # <<<<<<<<<<<<<<
 *         return <object>self.CppSelf.getComplementarityList()
 * 
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_getComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getComplementarityList", 0);
  __Pyx_TraceCall("getComplementarityList", __pyx_f[0], 2089, 0, __PYX_ERR(0, 2089, __pyx_L1_error));
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  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)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2089, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "cylp/cy/CyClpSimplex.pyx":2090
 * 
 *     cpdef getComplementarityList(self):
 *         return <object>self.CppSelf.getComplementarityList()             # <<<<<<<<<<<<<<
 * 
 *     def setComplement(self, var1, var2):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __pyx_v_self->CppSelf->getComplementarityList();
  __Pyx_INCREF(((PyObject *)__pyx_t_5));
  __pyx_r = ((PyObject *)__pyx_t_5);
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2089
 *         return self.CppSelf.ComplementarityList()
 * 
 *     cpdef getComplementarityList(self):             # <<<<<<<<<<<<<<
 *         return <object>self.CppSelf.getComplementarityList()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getComplementarityList", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList[] = "CyClpSimplex.getComplementarityList(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getComplementarityList (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getComplementarityList", 0);
  __Pyx_TraceCall("getComplementarityList (wrapper)", __pyx_f[0], 2089, 0, __PYX_ERR(0, 2089, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getComplementarityList", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2092
 *         return <object>self.CppSelf.getComplementarityList()
 * 
 *     def setComplement(self, var1, var2):             # <<<<<<<<<<<<<<
 *         '''
 *         Set ``var1`` as the complementary variable of ``var2``. These
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_201setComplement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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        ";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_201setComplement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_var1 = 0;
  PyObject *__pyx_v_var2 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setComplement (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_var1,&__pyx_n_s_var2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_var1)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_var2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setComplement", 1, 2, 2, 1); __PYX_ERR(0, 2092, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setComplement") < 0)) __PYX_ERR(0, 2092, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_var1 = values[0];
    __pyx_v_var2 = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setComplement", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2092, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setComplement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v_model = NULL;
  PyObject *__pyx_v_inds = NULL;
  PyObject *__pyx_v_vn1 = NULL;
  PyObject *__pyx_v_vn2 = NULL;
  PyObject *__pyx_v_x1 = NULL;
  PyObject *__pyx_v_x2 = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  Py_ssize_t __pyx_t_12;
  PyObject *(*__pyx_t_13)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setComplement", 0);
  __Pyx_TraceCall("setComplement", __pyx_f[0], 2092, 0, __PYX_ERR(0, 2092, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2098
 *         '''
 * 
 *         if isinstance(var1, (int, long)) and isinstance(var2, (int, long)) :             # <<<<<<<<<<<<<<
 *            self.CppSelf.setComplement(var1, var2)
 *         elif True:  # isinstance(arg, CyLPVar):
 */
  __pyx_t_3 = PyInt_Check(__pyx_v_var1); 
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_4 = PyLong_Check(__pyx_v_var1); 
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L6_bool_binop_done:;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = PyInt_Check(__pyx_v_var2); 
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_4 = PyLong_Check(__pyx_v_var2); 
  __pyx_t_2 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_2;
  __pyx_L8_bool_binop_done:;
  __pyx_t_2 = (__pyx_t_3 != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "cylp/cy/CyClpSimplex.pyx":2099
 * 
 *         if isinstance(var1, (int, long)) and isinstance(var2, (int, long)) :
 *            self.CppSelf.setComplement(var1, var2)             # <<<<<<<<<<<<<<
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 */
    __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)
    __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)
    __pyx_v_self->CppSelf->setComplement(__pyx_t_5, __pyx_t_6);

    /* "cylp/cy/CyClpSimplex.pyx":2098
 *         '''
 * 
 *         if isinstance(var1, (int, long)) and isinstance(var2, (int, long)) :             # <<<<<<<<<<<<<<
 *            self.CppSelf.setComplement(var1, var2)
 *         elif True:  # isinstance(arg, CyLPVar):
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":2101
 *            self.CppSelf.setComplement(var1, var2)
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setInteger can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
  /*else*/ {
    __pyx_t_1 = (__pyx_v_self->cyLPModel == Py_None);
    __pyx_t_2 = (__pyx_t_1 != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cylp/cy/CyClpSimplex.pyx":2102
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 *                 raise Exception('The argument of setInteger can be ' \             # <<<<<<<<<<<<<<
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 */
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_Raise(__pyx_t_7, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __PYX_ERR(0, 2102, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":2101
 *            self.CppSelf.setComplement(var1, var2)
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:             # <<<<<<<<<<<<<<
 *                 raise Exception('The argument of setInteger can be ' \
 *                                 'a CyLPVar only if the object is built ' \
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":2105
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 *             if var1.dim != var2.dim:             # <<<<<<<<<<<<<<
 *                 raise Exception('Variables should have the same  ' \
 *                                 'dimensions to be complements.' \
 */
    __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)
    __Pyx_GOTREF(__pyx_t_7);
    __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)
    __Pyx_GOTREF(__pyx_t_8);
    __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)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2105, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(__pyx_t_2)) {

      /* "cylp/cy/CyClpSimplex.pyx":2109
 *                                 'dimensions to be complements.' \
 *                                 ' Got %s: %g and %s: %g' %
 *                                 (var1.name, var1.dim, var2.name, var2.dim))             # <<<<<<<<<<<<<<
 * 
 *             model = self.cyLPModel
 */
      __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)
      __Pyx_GOTREF(__pyx_t_9);
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __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)
      __Pyx_GOTREF(__pyx_t_7);
      __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)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_10);
      PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_10);
      __pyx_t_9 = 0;
      __pyx_t_8 = 0;
      __pyx_t_7 = 0;
      __pyx_t_10 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":2108
 *                 raise Exception('Variables should have the same  ' \
 *                                 'dimensions to be complements.' \
 *                                 ' Got %s: %g and %s: %g' %             # <<<<<<<<<<<<<<
 *                                 (var1.name, var1.dim, var2.name, var2.dim))
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":2106
 *                                 'using a CyLPModel.')
 *             if var1.dim != var2.dim:
 *                 raise Exception('Variables should have the same  ' \             # <<<<<<<<<<<<<<
 *                                 'dimensions to be complements.' \
 *                                 ' Got %s: %g and %s: %g' %
 */
      __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)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_Raise(__pyx_t_11, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __PYX_ERR(0, 2106, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":2105
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 *             if var1.dim != var2.dim:             # <<<<<<<<<<<<<<
 *                 raise Exception('Variables should have the same  ' \
 *                                 'dimensions to be complements.' \
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":2111
 *                                 (var1.name, var1.dim, var2.name, var2.dim))
 * 
 *             model = self.cyLPModel             # <<<<<<<<<<<<<<
 *             inds = model.inds
 *             vn1 = var1.name
 */
    __pyx_t_11 = __pyx_v_self->cyLPModel;
    __Pyx_INCREF(__pyx_t_11);
    __pyx_v_model = __pyx_t_11;
    __pyx_t_11 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":2112
 * 
 *             model = self.cyLPModel
 *             inds = model.inds             # <<<<<<<<<<<<<<
 *             vn1 = var1.name
 *             vn2 = var2.name
 */
    __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)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_v_inds = __pyx_t_11;
    __pyx_t_11 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":2113
 *             model = self.cyLPModel
 *             inds = model.inds
 *             vn1 = var1.name             # <<<<<<<<<<<<<<
 *             vn2 = var2.name
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_v_vn1 = __pyx_t_11;
    __pyx_t_11 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":2114
 *             inds = model.inds
 *             vn1 = var1.name
 *             vn2 = var2.name             # <<<<<<<<<<<<<<
 * 
 *             if not inds.hasVar(vn1):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_v_vn2 = __pyx_t_11;
    __pyx_t_11 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":2116
 *             vn2 = var2.name
 * 
 *             if not inds.hasVar(vn1):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % vn1)
 *             x1 = inds.varIndex[vn1]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2116, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_1 = ((!__pyx_t_2) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "cylp/cy/CyClpSimplex.pyx":2117
 * 
 *             if not inds.hasVar(vn1):
 *                 raise Exception('No such variable: %s' % vn1)             # <<<<<<<<<<<<<<
 *             x1 = inds.varIndex[vn1]
 *             if not inds.hasVar(vn2):
 */
      __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)
      __Pyx_GOTREF(__pyx_t_11);
      __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)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_Raise(__pyx_t_10, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __PYX_ERR(0, 2117, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":2116
 *             vn2 = var2.name
 * 
 *             if not inds.hasVar(vn1):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % vn1)
 *             x1 = inds.varIndex[vn1]
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":2118
 *             if not inds.hasVar(vn1):
 *                 raise Exception('No such variable: %s' % vn1)
 *             x1 = inds.varIndex[vn1]             # <<<<<<<<<<<<<<
 *             if not inds.hasVar(vn2):
 *                 raise Exception('No such variable: %s' % vn2)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_vn1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_v_x1 = __pyx_t_11;
    __pyx_t_11 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":2119
 *                 raise Exception('No such variable: %s' % vn1)
 *             x1 = inds.varIndex[vn1]
 *             if not inds.hasVar(vn2):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % vn2)
 *             x2 = inds.varIndex[vn2]
 */
    __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)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2119, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_2 = ((!__pyx_t_1) != 0);
    if (unlikely(__pyx_t_2)) {

      /* "cylp/cy/CyClpSimplex.pyx":2120
 *             x1 = inds.varIndex[vn1]
 *             if not inds.hasVar(vn2):
 *                 raise Exception('No such variable: %s' % vn2)             # <<<<<<<<<<<<<<
 *             x2 = inds.varIndex[vn2]
 * 
 */
      __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)
      __Pyx_GOTREF(__pyx_t_11);
      __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)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_Raise(__pyx_t_10, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __PYX_ERR(0, 2120, __pyx_L1_error)

      /* "cylp/cy/CyClpSimplex.pyx":2119
 *                 raise Exception('No such variable: %s' % vn1)
 *             x1 = inds.varIndex[vn1]
 *             if not inds.hasVar(vn2):             # <<<<<<<<<<<<<<
 *                 raise Exception('No such variable: %s' % vn2)
 *             x2 = inds.varIndex[vn2]
 */
    }

    /* "cylp/cy/CyClpSimplex.pyx":2121
 *             if not inds.hasVar(vn2):
 *                 raise Exception('No such variable: %s' % vn2)
 *             x2 = inds.varIndex[vn2]             # <<<<<<<<<<<<<<
 * 
 *             for i in xrange(var1.dim):
 */
    __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)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_vn2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_v_x2 = __pyx_t_11;
    __pyx_t_11 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":2123
 *             x2 = inds.varIndex[vn2]
 * 
 *             for i in xrange(var1.dim):             # <<<<<<<<<<<<<<
 *                 self.CppSelf.setComplement(x1[i], x2[i])
 * 
 */
    __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)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
      __pyx_t_11 = __pyx_t_10; __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = 0;
      __pyx_t_13 = NULL;
    } else {
      __pyx_t_12 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2123, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_13 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2123, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    for (;;) {
      if (likely(!__pyx_t_13)) {
        if (likely(PyList_CheckExact(__pyx_t_11))) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __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)
          #else
          __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)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_13(__pyx_t_11);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2123, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_10);
      __pyx_t_10 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":2124
 * 
 *             for i in xrange(var1.dim):
 *                 self.CppSelf.setComplement(x1[i], x2[i])             # <<<<<<<<<<<<<<
 * 
 * #    def setComplement(self, var1, var2):
 */
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_x1, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __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)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_x2, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __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)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_v_self->CppSelf->setComplement(__pyx_t_6, __pyx_t_5);

      /* "cylp/cy/CyClpSimplex.pyx":2123
 *             x2 = inds.varIndex[vn2]
 * 
 *             for i in xrange(var1.dim):             # <<<<<<<<<<<<<<
 *                 self.CppSelf.setComplement(x1[i], x2[i])
 * 
 */
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":2092
 *         return <object>self.CppSelf.getComplementarityList()
 * 
 *     def setComplement(self, var1, var2):             # <<<<<<<<<<<<<<
 *         '''
 *         Set ``var1`` as the complementary variable of ``var2``. These
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setComplement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_model);
  __Pyx_XDECREF(__pyx_v_inds);
  __Pyx_XDECREF(__pyx_v_vn1);
  __Pyx_XDECREF(__pyx_v_vn2);
  __Pyx_XDECREF(__pyx_v_x1);
  __Pyx_XDECREF(__pyx_v_x2);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2135
 * #        self.CppSelf.setComplement(var1, var2)
 * 
 *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int             # <<<<<<<<<<<<<<
 *                                         tryPlusMinusOne=False):
 *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_203loadProblemFromCyCoinModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_202loadProblemFromCyCoinModel[] = "CyClpSimplex.loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int tryPlusMinusOne=False)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_203loadProblemFromCyCoinModel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_v_modelObject = 0;
  int __pyx_v_tryPlusMinusOne;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("loadProblemFromCyCoinModel (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_modelObject,&__pyx_n_s_tryPlusMinusOne,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_modelObject)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tryPlusMinusOne);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loadProblemFromCyCoinModel") < 0)) __PYX_ERR(0, 2135, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_modelObject = ((struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *)values[0]);
    if (values[1]) {
      __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)
    } else {

      /* "cylp/cy/CyClpSimplex.pyx":2136
 * 
 *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int
 *                                         tryPlusMinusOne=False):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
 * 
 */
      __pyx_v_tryPlusMinusOne = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("loadProblemFromCyCoinModel", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2135, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadProblemFromCyCoinModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_modelObject), __pyx_ptype_4cylp_2cy_11CyCoinModel_CyCoinModel, 1, "modelObject", 0))) __PYX_ERR(0, 2135, __pyx_L1_error)
  __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);

  /* "cylp/cy/CyClpSimplex.pyx":2135
 * #        self.CppSelf.setComplement(var1, var2)
 * 
 *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int             # <<<<<<<<<<<<<<
 *                                         tryPlusMinusOne=False):
 *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("loadProblemFromCyCoinModel", 0);
  __Pyx_TraceCall("loadProblemFromCyCoinModel", __pyx_f[0], 2135, 0, __PYX_ERR(0, 2135, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2137
 *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int
 *                                         tryPlusMinusOne=False):
 *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)             # <<<<<<<<<<<<<<
 * 
 *     def loadProblem(self, CyCoinPackedMatrix matrix,
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2135
 * #        self.CppSelf.setComplement(var1, var2)
 * 
 *     def loadProblemFromCyCoinModel(self, CyCoinModel modelObject, int             # <<<<<<<<<<<<<<
 *                                         tryPlusMinusOne=False):
 *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadProblemFromCyCoinModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2139
 *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
 * 
 *     def loadProblem(self, CyCoinPackedMatrix matrix,             # <<<<<<<<<<<<<<
 *                  np.ndarray[np.double_t, ndim=1] collb,
 *                  np.ndarray[np.double_t, ndim=1] colub,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_205loadProblem(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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([]))";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_205loadProblem(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_matrix = 0;
  PyArrayObject *__pyx_v_collb = 0;
  PyArrayObject *__pyx_v_colub = 0;
  PyArrayObject *__pyx_v_obj = 0;
  PyArrayObject *__pyx_v_rowlb = 0;
  PyArrayObject *__pyx_v_rowub = 0;
  PyArrayObject *__pyx_v_rowObjective = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("loadProblem (wrapper)", 0);
  {
    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};
    PyObject* values[7] = {0,0,0,0,0,0,0};
    values[6] = (PyObject *)__pyx_k__20;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matrix)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_collb)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 1); __PYX_ERR(0, 2139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colub)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 2); __PYX_ERR(0, 2139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 3); __PYX_ERR(0, 2139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowlb)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 4); __PYX_ERR(0, 2139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowub)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, 5); __PYX_ERR(0, 2139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowObjective);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loadProblem") < 0)) __PYX_ERR(0, 2139, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_matrix = ((struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *)values[0]);
    __pyx_v_collb = ((PyArrayObject *)values[1]);
    __pyx_v_colub = ((PyArrayObject *)values[2]);
    __pyx_v_obj = ((PyArrayObject *)values[3]);
    __pyx_v_rowlb = ((PyArrayObject *)values[4]);
    __pyx_v_rowub = ((PyArrayObject *)values[5]);
    __pyx_v_rowObjective = ((PyArrayObject *)values[6]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("loadProblem", 0, 6, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2139, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadProblem", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_matrix), __pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix, 1, "matrix", 0))) __PYX_ERR(0, 2139, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_collb), __pyx_ptype_5numpy_ndarray, 1, "collb", 0))) __PYX_ERR(0, 2140, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colub), __pyx_ptype_5numpy_ndarray, 1, "colub", 0))) __PYX_ERR(0, 2141, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), __pyx_ptype_5numpy_ndarray, 1, "obj", 0))) __PYX_ERR(0, 2142, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowlb), __pyx_ptype_5numpy_ndarray, 1, "rowlb", 0))) __PYX_ERR(0, 2143, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowub), __pyx_ptype_5numpy_ndarray, 1, "rowub", 0))) __PYX_ERR(0, 2144, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowObjective), __pyx_ptype_5numpy_ndarray, 1, "rowObjective", 0))) __PYX_ERR(0, 2145, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  double *__pyx_v_rd;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_collb;
  __Pyx_Buffer __pyx_pybuffer_collb;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_colub;
  __Pyx_Buffer __pyx_pybuffer_colub;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_obj;
  __Pyx_Buffer __pyx_pybuffer_obj;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rowObjective;
  __Pyx_Buffer __pyx_pybuffer_rowObjective;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rowlb;
  __Pyx_Buffer __pyx_pybuffer_rowlb;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rowub;
  __Pyx_Buffer __pyx_pybuffer_rowub;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("loadProblem", 0);
  __Pyx_TraceCall("loadProblem", __pyx_f[0], 2139, 0, __PYX_ERR(0, 2139, __pyx_L1_error));
  __pyx_pybuffer_collb.pybuffer.buf = NULL;
  __pyx_pybuffer_collb.refcount = 0;
  __pyx_pybuffernd_collb.data = NULL;
  __pyx_pybuffernd_collb.rcbuffer = &__pyx_pybuffer_collb;
  __pyx_pybuffer_colub.pybuffer.buf = NULL;
  __pyx_pybuffer_colub.refcount = 0;
  __pyx_pybuffernd_colub.data = NULL;
  __pyx_pybuffernd_colub.rcbuffer = &__pyx_pybuffer_colub;
  __pyx_pybuffer_obj.pybuffer.buf = NULL;
  __pyx_pybuffer_obj.refcount = 0;
  __pyx_pybuffernd_obj.data = NULL;
  __pyx_pybuffernd_obj.rcbuffer = &__pyx_pybuffer_obj;
  __pyx_pybuffer_rowlb.pybuffer.buf = NULL;
  __pyx_pybuffer_rowlb.refcount = 0;
  __pyx_pybuffernd_rowlb.data = NULL;
  __pyx_pybuffernd_rowlb.rcbuffer = &__pyx_pybuffer_rowlb;
  __pyx_pybuffer_rowub.pybuffer.buf = NULL;
  __pyx_pybuffer_rowub.refcount = 0;
  __pyx_pybuffernd_rowub.data = NULL;
  __pyx_pybuffernd_rowub.rcbuffer = &__pyx_pybuffer_rowub;
  __pyx_pybuffer_rowObjective.pybuffer.buf = NULL;
  __pyx_pybuffer_rowObjective.refcount = 0;
  __pyx_pybuffernd_rowObjective.data = NULL;
  __pyx_pybuffernd_rowObjective.rcbuffer = &__pyx_pybuffer_rowObjective;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":2147
 *                  np.ndarray[np.double_t, ndim=1] rowObjective=np.array([])):
 *         cdef double* rd
 *         if len(rowObjective) == 0:             # <<<<<<<<<<<<<<
 *             rd = NULL
 *         else:
 */
  __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)
  __pyx_t_2 = ((__pyx_t_1 == 0) != 0);
  if (__pyx_t_2) {

    /* "cylp/cy/CyClpSimplex.pyx":2148
 *         cdef double* rd
 *         if len(rowObjective) == 0:
 *             rd = NULL             # <<<<<<<<<<<<<<
 *         else:
 *             rd = <double*> rowObjective.data
 */
    __pyx_v_rd = NULL;

    /* "cylp/cy/CyClpSimplex.pyx":2147
 *                  np.ndarray[np.double_t, ndim=1] rowObjective=np.array([])):
 *         cdef double* rd
 *         if len(rowObjective) == 0:             # <<<<<<<<<<<<<<
 *             rd = NULL
 *         else:
 */
    goto __pyx_L3;
  }

  /* "cylp/cy/CyClpSimplex.pyx":2150
 *             rd = NULL
 *         else:
 *             rd = <double*> rowObjective.data             # <<<<<<<<<<<<<<
 *         self.CppSelf.loadProblem(matrix.CppSelf, <double*> collb.data,
 *                                          <double*> colub.data,
 */
  /*else*/ {
    __pyx_v_rd = ((double *)__pyx_v_rowObjective->data);
  }
  __pyx_L3:;

  /* "cylp/cy/CyClpSimplex.pyx":2151
 *         else:
 *             rd = <double*> rowObjective.data
 *         self.CppSelf.loadProblem(matrix.CppSelf, <double*> collb.data,             # <<<<<<<<<<<<<<
 *                                          <double*> colub.data,
 *                                          <double*> obj.data,
 */
  __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));

  /* "cylp/cy/CyClpSimplex.pyx":2139
 *         return self.CppSelf.loadProblem(modelObject.CppSelf, tryPlusMinusOne)
 * 
 *     def loadProblem(self, CyCoinPackedMatrix matrix,             # <<<<<<<<<<<<<<
 *                  np.ndarray[np.double_t, ndim=1] collb,
 *                  np.ndarray[np.double_t, ndim=1] colub,
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_collb.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_colub.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_obj.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowObjective.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowlb.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowub.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.loadProblem", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_collb.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_colub.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_obj.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowObjective.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowlb.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rowub.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2158
 *                                          <double*> rd)
 * 
 *     def getCoinInfinity(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.getCoinInfinity()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_207getCoinInfinity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity[] = "CyClpSimplex.getCoinInfinity(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_207getCoinInfinity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getCoinInfinity (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getCoinInfinity", 0);
  __Pyx_TraceCall("getCoinInfinity", __pyx_f[0], 2158, 0, __PYX_ERR(0, 2158, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2159
 * 
 *     def getCoinInfinity(self):
 *         return self.CppSelf.getCoinInfinity()             # <<<<<<<<<<<<<<
 * 
 *     #############################################
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getCoinInfinity()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2158
 *                                          <double*> rd)
 * 
 *     def getCoinInfinity(self):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.getCoinInfinity()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getCoinInfinity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2165
 *     #############################################
 * 
 *     def setBasisStatus(self, np.ndarray[np.int32_t, ndim=1] cstat,             # <<<<<<<<<<<<<<
 *                              np.ndarray[np.int32_t, ndim=1] rstat):
 *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_209setBasisStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_208setBasisStatus[] = "CyClpSimplex.setBasisStatus(self, ndarray cstat, ndarray rstat)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_209setBasisStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_cstat = 0;
  PyArrayObject *__pyx_v_rstat = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setBasisStatus (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cstat,&__pyx_n_s_rstat,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cstat)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rstat)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setBasisStatus", 1, 2, 2, 1); __PYX_ERR(0, 2165, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBasisStatus") < 0)) __PYX_ERR(0, 2165, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_cstat = ((PyArrayObject *)values[0]);
    __pyx_v_rstat = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setBasisStatus", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2165, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setBasisStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cstat), __pyx_ptype_5numpy_ndarray, 1, "cstat", 0))) __PYX_ERR(0, 2165, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rstat), __pyx_ptype_5numpy_ndarray, 1, "rstat", 0))) __PYX_ERR(0, 2166, __pyx_L1_error)
  __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);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cstat;
  __Pyx_Buffer __pyx_pybuffer_cstat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rstat;
  __Pyx_Buffer __pyx_pybuffer_rstat;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setBasisStatus", 0);
  __Pyx_TraceCall("setBasisStatus", __pyx_f[0], 2165, 0, __PYX_ERR(0, 2165, __pyx_L1_error));
  __pyx_pybuffer_cstat.pybuffer.buf = NULL;
  __pyx_pybuffer_cstat.refcount = 0;
  __pyx_pybuffernd_cstat.data = NULL;
  __pyx_pybuffernd_cstat.rcbuffer = &__pyx_pybuffer_cstat;
  __pyx_pybuffer_rstat.pybuffer.buf = NULL;
  __pyx_pybuffer_rstat.refcount = 0;
  __pyx_pybuffernd_rstat.data = NULL;
  __pyx_pybuffernd_rstat.rcbuffer = &__pyx_pybuffer_rstat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)
  }
  __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];

  /* "cylp/cy/CyClpSimplex.pyx":2167
 *     def setBasisStatus(self, np.ndarray[np.int32_t, ndim=1] cstat,
 *                              np.ndarray[np.int32_t, ndim=1] rstat):
 *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)             # <<<<<<<<<<<<<<
 * 
 *     def getBasisStatus(self):
 */
  __pyx_v_self->CppSelf->setBasisStatus(((int *)__pyx_v_cstat->data), ((int *)__pyx_v_rstat->data));

  /* "cylp/cy/CyClpSimplex.pyx":2165
 *     #############################################
 * 
 *     def setBasisStatus(self, np.ndarray[np.int32_t, ndim=1] cstat,             # <<<<<<<<<<<<<<
 *                              np.ndarray[np.int32_t, ndim=1] rstat):
 *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.setBasisStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2169
 *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)
 * 
 *     def getBasisStatus(self):             # <<<<<<<<<<<<<<
 *         cdef np.ndarray[np.int32_t, ndim=1] cstat = \
 *                                 np.zeros(self.nVariables, dtype='int32')
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_211getBasisStatus(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus[] = "CyClpSimplex.getBasisStatus(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_211getBasisStatus(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getBasisStatus (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyArrayObject *__pyx_v_cstat = 0;
  PyArrayObject *__pyx_v_rstat = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cstat;
  __Pyx_Buffer __pyx_pybuffer_cstat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rstat;
  __Pyx_Buffer __pyx_pybuffer_rstat;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyArrayObject *__pyx_t_5 = NULL;
  PyArrayObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getBasisStatus", 0);
  __Pyx_TraceCall("getBasisStatus", __pyx_f[0], 2169, 0, __PYX_ERR(0, 2169, __pyx_L1_error));
  __pyx_pybuffer_cstat.pybuffer.buf = NULL;
  __pyx_pybuffer_cstat.refcount = 0;
  __pyx_pybuffernd_cstat.data = NULL;
  __pyx_pybuffernd_cstat.rcbuffer = &__pyx_pybuffer_cstat;
  __pyx_pybuffer_rstat.pybuffer.buf = NULL;
  __pyx_pybuffer_rstat.refcount = 0;
  __pyx_pybuffernd_rstat.data = NULL;
  __pyx_pybuffernd_rstat.rcbuffer = &__pyx_pybuffer_rstat;

  /* "cylp/cy/CyClpSimplex.pyx":2171
 *     def getBasisStatus(self):
 *         cdef np.ndarray[np.int32_t, ndim=1] cstat = \
 *                                 np.zeros(self.nVariables, dtype='int32')             # <<<<<<<<<<<<<<
 *         cdef np.ndarray[np.int32_t, ndim=1] rstat = \
 *                                 np.zeros(self.nConstraints, dtype='int32')
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_n_s_int32) < 0) __PYX_ERR(0, 2171, __pyx_L1_error)
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 2171, __pyx_L1_error)
  __pyx_t_5 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)) {
      __pyx_v_cstat = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cstat.rcbuffer->pybuffer.buf = NULL;
      __PYX_ERR(0, 2170, __pyx_L1_error)
    } 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];
    }
  }
  __pyx_t_5 = 0;
  __pyx_v_cstat = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2173
 *                                 np.zeros(self.nVariables, dtype='int32')
 *         cdef np.ndarray[np.int32_t, ndim=1] rstat = \
 *                                 np.zeros(self.nConstraints, dtype='int32')             # <<<<<<<<<<<<<<
 *         self.CppSelf.getBasisStatus(<int*>cstat.data, <int*>rstat.data)
 *         return cstat, rstat
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_n_s_int32) < 0) __PYX_ERR(0, 2173, __pyx_L1_error)
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 2173, __pyx_L1_error)
  __pyx_t_6 = ((PyArrayObject *)__pyx_t_2);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    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)) {
      __pyx_v_rstat = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_rstat.rcbuffer->pybuffer.buf = NULL;
      __PYX_ERR(0, 2172, __pyx_L1_error)
    } 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];
    }
  }
  __pyx_t_6 = 0;
  __pyx_v_rstat = ((PyArrayObject *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2174
 *         cdef np.ndarray[np.int32_t, ndim=1] rstat = \
 *                                 np.zeros(self.nConstraints, dtype='int32')
 *         self.CppSelf.getBasisStatus(<int*>cstat.data, <int*>rstat.data)             # <<<<<<<<<<<<<<
 *         return cstat, rstat
 * 
 */
  __pyx_v_self->CppSelf->getBasisStatus(((int *)__pyx_v_cstat->data), ((int *)__pyx_v_rstat->data));

  /* "cylp/cy/CyClpSimplex.pyx":2175
 *                                 np.zeros(self.nConstraints, dtype='int32')
 *         self.CppSelf.getBasisStatus(<int*>cstat.data, <int*>rstat.data)
 *         return cstat, rstat             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_cstat));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_cstat));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_cstat));
  __Pyx_INCREF(((PyObject *)__pyx_v_rstat));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rstat));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_rstat));
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2169
 *         self.CppSelf.setBasisStatus(<int*>cstat.data, <int*>rstat.data)
 * 
 *     def getBasisStatus(self):             # <<<<<<<<<<<<<<
 *         cdef np.ndarray[np.int32_t, ndim=1] cstat = \
 *                                 np.zeros(self.nVariables, dtype='int32')
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.getBasisStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cstat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rstat.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cstat);
  __Pyx_XDECREF((PyObject *)__pyx_v_rstat);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_213__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__[] = "CyClpSimplex.__reduce_cython__(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_213__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_215__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_214__setstate_cython__[] = "CyClpSimplex.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_215__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 3, 0, __PYX_ERR(1, 3, __pyx_L1_error));

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.CyClpSimplex.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2178
 * 
 * 
 * def getModelExample():             # <<<<<<<<<<<<<<
 *     '''
 *     Return a model example to be used in doctests.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_1getModelExample(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_getModelExample[] = "getModelExample()\n\n    Return a model example to be used in doctests.\n    ";
static PyMethodDef __pyx_mdef_4cylp_2cy_12CyClpSimplex_1getModelExample = {"getModelExample", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_1getModelExample, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_getModelExample};
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_1getModelExample(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getModelExample (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_getModelExample(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_getModelExample(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_v_np = NULL;
  PyObject *__pyx_v_CyLPModel = NULL;
  PyObject *__pyx_v_CyLPArray = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_CyClpSimplex = NULL;
  PyObject *__pyx_v_model = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_A = NULL;
  PyObject *__pyx_v_B = NULL;
  PyObject *__pyx_v_D = NULL;
  PyObject *__pyx_v_a = NULL;
  PyObject *__pyx_v_b = NULL;
  PyObject *__pyx_v_x_u = NULL;
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__23)
  __Pyx_RefNannySetupContext("getModelExample", 0);
  __Pyx_TraceCall("getModelExample", __pyx_f[0], 2178, 0, __PYX_ERR(0, 2178, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2182
 *     Return a model example to be used in doctests.
 *     '''
 *     import numpy as np             # <<<<<<<<<<<<<<
 *     from cylp.py.modeling.CyLPModel import CyLPModel, CyLPArray
 *     from cylp.cy import CyClpSimplex
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_np = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2183
 *     '''
 *     import numpy as np
 *     from cylp.py.modeling.CyLPModel import CyLPModel, CyLPArray             # <<<<<<<<<<<<<<
 *     from cylp.cy import CyClpSimplex
 * 
 */
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_CyLPModel);
  __Pyx_GIVEREF(__pyx_n_s_CyLPModel);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_CyLPModel);
  __Pyx_INCREF(__pyx_n_s_CyLPArray);
  __Pyx_GIVEREF(__pyx_n_s_CyLPArray);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_CyLPArray);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_CyLPModel = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_CyLPArray = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2184
 *     import numpy as np
 *     from cylp.py.modeling.CyLPModel import CyLPModel, CyLPArray
 *     from cylp.cy import CyClpSimplex             # <<<<<<<<<<<<<<
 * 
 *     model = CyLPModel()
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_CyClpSimplex);
  __Pyx_GIVEREF(__pyx_n_s_CyClpSimplex);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_CyClpSimplex);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CyClpSimplex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_CyClpSimplex = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2186
 *     from cylp.cy import CyClpSimplex
 * 
 *     model = CyLPModel()             # <<<<<<<<<<<<<<
 *     x = model.addVariable('x', 3)
 *     y = model.addVariable('y', 2)
 */
  __Pyx_INCREF(__pyx_v_CyLPModel);
  __pyx_t_2 = __pyx_v_CyLPModel; __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_model = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2187
 * 
 *     model = CyLPModel()
 *     x = model.addVariable('x', 3)             # <<<<<<<<<<<<<<
 *     y = model.addVariable('y', 2)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_x = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2188
 *     model = CyLPModel()
 *     x = model.addVariable('x', 3)
 *     y = model.addVariable('y', 2)             # <<<<<<<<<<<<<<
 * 
 *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_y = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2190
 *     y = model.addVariable('y', 2)
 * 
 *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])             # <<<<<<<<<<<<<<
 *     B = np.matrix([[1., 0, 0], [0, 0, 1.]])
 *     D = np.matrix([[1., 2.], [0, 1]])
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_1_);
  __Pyx_GIVEREF(__pyx_float_1_);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_1_);
  __Pyx_INCREF(__pyx_float_2_);
  __Pyx_GIVEREF(__pyx_float_2_);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_2_);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_int_0);
  __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_float_1_);
  __Pyx_GIVEREF(__pyx_float_1_);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_1_);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_0);
  __Pyx_INCREF(__pyx_float_1_);
  __Pyx_GIVEREF(__pyx_float_1_);
  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_1_);
  __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_A = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2191
 * 
 *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])
 *     B = np.matrix([[1., 0, 0], [0, 0, 1.]])             # <<<<<<<<<<<<<<
 *     D = np.matrix([[1., 2.], [0, 1]])
 *     a = CyLPArray([5, 2.5])
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyList_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_float_1_);
  __Pyx_GIVEREF(__pyx_float_1_);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_1_);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_0);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyList_SET_ITEM(__pyx_t_5, 2, __pyx_int_0);
  __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_int_0);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_0);
  __Pyx_INCREF(__pyx_float_1_);
  __Pyx_GIVEREF(__pyx_float_1_);
  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_1_);
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
  __pyx_t_5 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_B = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2192
 *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])
 *     B = np.matrix([[1., 0, 0], [0, 0, 1.]])
 *     D = np.matrix([[1., 2.], [0, 1]])             # <<<<<<<<<<<<<<
 *     a = CyLPArray([5, 2.5])
 *     b = CyLPArray([4.2, 3])
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_1_);
  __Pyx_GIVEREF(__pyx_float_1_);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_1_);
  __Pyx_INCREF(__pyx_float_2_);
  __Pyx_GIVEREF(__pyx_float_2_);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_2_);
  __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_int_0);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_1);
  __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_D = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2193
 *     B = np.matrix([[1., 0, 0], [0, 0, 1.]])
 *     D = np.matrix([[1., 2.], [0, 1]])
 *     a = CyLPArray([5, 2.5])             # <<<<<<<<<<<<<<
 *     b = CyLPArray([4.2, 3])
 *     x_u= CyLPArray([2., 3.5])
 */
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_int_5);
  __Pyx_INCREF(__pyx_float_2_5);
  __Pyx_GIVEREF(__pyx_float_2_5);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_2_5);
  __Pyx_INCREF(__pyx_v_CyLPArray);
  __pyx_t_5 = __pyx_v_CyLPArray; __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_a = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2194
 *     D = np.matrix([[1., 2.], [0, 1]])
 *     a = CyLPArray([5, 2.5])
 *     b = CyLPArray([4.2, 3])             # <<<<<<<<<<<<<<
 *     x_u= CyLPArray([2., 3.5])
 * 
 */
  __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_float_4_2);
  __Pyx_GIVEREF(__pyx_float_4_2);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_4_2);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_3);
  __Pyx_INCREF(__pyx_v_CyLPArray);
  __pyx_t_2 = __pyx_v_CyLPArray; __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2195
 *     a = CyLPArray([5, 2.5])
 *     b = CyLPArray([4.2, 3])
 *     x_u= CyLPArray([2., 3.5])             # <<<<<<<<<<<<<<
 * 
 *     model += A * x <= a
 */
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_float_2_);
  __Pyx_GIVEREF(__pyx_float_2_);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_2_);
  __Pyx_INCREF(__pyx_float_3_5);
  __Pyx_GIVEREF(__pyx_float_3_5);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_3_5);
  __Pyx_INCREF(__pyx_v_CyLPArray);
  __pyx_t_5 = __pyx_v_CyLPArray; __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_x_u = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2197
 *     x_u= CyLPArray([2., 3.5])
 * 
 *     model += A * x <= a             # <<<<<<<<<<<<<<
 *     model += 2 <= B * x + D * y <= b
 *     model += y >= 0
 */
  __pyx_t_1 = PyNumber_Multiply(__pyx_v_A, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_model, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF_SET(__pyx_v_model, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2198
 * 
 *     model += A * x <= a
 *     model += 2 <= B * x + D * y <= b             # <<<<<<<<<<<<<<
 *     model += y >= 0
 *     model += 1.1 <= x[1:3] <= x_u
 */
  __pyx_t_1 = PyNumber_Multiply(__pyx_v_B, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyNumber_Multiply(__pyx_v_D, __pyx_v_y); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __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)
  if (__Pyx_PyObject_IsTrue(__pyx_t_5)) {
    __Pyx_DECREF(__pyx_t_5);
    __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)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_model, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF_SET(__pyx_v_model, __pyx_t_2);
  __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2199
 *     model += A * x <= a
 *     model += 2 <= B * x + D * y <= b
 *     model += y >= 0             # <<<<<<<<<<<<<<
 *     model += 1.1 <= x[1:3] <= x_u
 * 
 */
  __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)
  __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_model, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF_SET(__pyx_v_model, __pyx_t_5);
  __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2200
 *     model += 2 <= B * x + D * y <= b
 *     model += y >= 0
 *     model += 1.1 <= x[1:3] <= x_u             # <<<<<<<<<<<<<<
 * 
 *     c = CyLPArray([1., -2., 3.])
 */
  __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)
  __Pyx_GOTREF(__pyx_t_5);
  __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)
  if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
    __Pyx_DECREF(__pyx_t_2);
    __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)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_model, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF_SET(__pyx_v_model, __pyx_t_5);
  __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2202
 *     model += 1.1 <= x[1:3] <= x_u
 * 
 *     c = CyLPArray([1., -2., 3.])             # <<<<<<<<<<<<<<
 *     model.objective = c * x + 2 * y.sum()
 * 
 */
  __pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_float_1_);
  __Pyx_GIVEREF(__pyx_float_1_);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_1_);
  __Pyx_INCREF(__pyx_float_neg_2_);
  __Pyx_GIVEREF(__pyx_float_neg_2_);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_neg_2_);
  __Pyx_INCREF(__pyx_float_3_);
  __Pyx_GIVEREF(__pyx_float_3_);
  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_3_);
  __Pyx_INCREF(__pyx_v_CyLPArray);
  __pyx_t_1 = __pyx_v_CyLPArray; __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_c = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2203
 * 
 *     c = CyLPArray([1., -2., 3.])
 *     model.objective = c * x + 2 * y.sum()             # <<<<<<<<<<<<<<
 * 
 *     return model
 */
  __pyx_t_5 = PyNumber_Multiply(__pyx_v_c, __pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Multiply(__pyx_int_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_model, __pyx_n_s_objective, __pyx_t_1) < 0) __PYX_ERR(0, 2203, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2205
 *     model.objective = c * x + 2 * y.sum()
 * 
 *     return model             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_model);
  __pyx_r = __pyx_v_model;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2178
 * 
 * 
 * def getModelExample():             # <<<<<<<<<<<<<<
 *     '''
 *     Return a model example to be used in doctests.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.getModelExample", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_np);
  __Pyx_XDECREF(__pyx_v_CyLPModel);
  __Pyx_XDECREF(__pyx_v_CyLPArray);
  __Pyx_XDECREF(__pyx_v_CyClpSimplex);
  __Pyx_XDECREF(__pyx_v_model);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_A);
  __Pyx_XDECREF(__pyx_v_B);
  __Pyx_XDECREF(__pyx_v_D);
  __Pyx_XDECREF(__pyx_v_a);
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_XDECREF(__pyx_v_x_u);
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2208
 * 
 * 
 * cpdef cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2):             # <<<<<<<<<<<<<<
 *     return cdot(v1.CppSelf, v2.CppSelf)
 * 
 */

static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_3cydot(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cydot", 0);
  __Pyx_TraceCall("cydot", __pyx_f[0], 2208, 0, __PYX_ERR(0, 2208, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2209
 * 
 * cpdef cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2):
 *     return cdot(v1.CppSelf, v2.CppSelf)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2208
 * 
 * 
 * cpdef cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2):             # <<<<<<<<<<<<<<
 *     return cdot(v1.CppSelf, v2.CppSelf)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.cydot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_3cydot(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_2cydot[] = "cydot(CyCoinIndexedVector v1, CyCoinIndexedVector v2)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_3cydot(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v1 = 0;
  struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *__pyx_v_v2 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cydot (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_v1,&__pyx_n_s_v2,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v1)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cydot", 1, 2, 2, 1); __PYX_ERR(0, 2208, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cydot") < 0)) __PYX_ERR(0, 2208, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_v1 = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[0]);
    __pyx_v_v2 = ((struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cydot", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2208, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.cydot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v1), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "v1", 0))) __PYX_ERR(0, 2208, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v2), __pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, 1, "v2", 0))) __PYX_ERR(0, 2208, __pyx_L1_error)
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_2cydot(__pyx_self, __pyx_v_v1, __pyx_v_v2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cydot", 0);
  __Pyx_TraceCall("cydot (wrapper)", __pyx_f[0], 2208, 0, __PYX_ERR(0, 2208, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.cydot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2212
 * 
 * 
 * def getMpsExample():             # <<<<<<<<<<<<<<
 *     '''
 *     Return full path to an MPS example file for doctests
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_5getMpsExample(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_4getMpsExample[] = "getMpsExample()\n\n    Return full path to an MPS example file for doctests\n    ";
static PyMethodDef __pyx_mdef_4cylp_2cy_12CyClpSimplex_5getMpsExample = {"getMpsExample", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_5getMpsExample, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_4getMpsExample};
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_5getMpsExample(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getMpsExample (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_4getMpsExample(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_4getMpsExample(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_v_os = NULL;
  PyObject *__pyx_v_inspect = NULL;
  PyObject *__pyx_v_curpath = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__27)
  __Pyx_RefNannySetupContext("getMpsExample", 0);
  __Pyx_TraceCall("getMpsExample", __pyx_f[0], 2212, 0, __PYX_ERR(0, 2212, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2216
 *     Return full path to an MPS example file for doctests
 *     '''
 *     import os             # <<<<<<<<<<<<<<
 *     import inspect
 *     curpath = os.path.dirname(inspect.getfile(inspect.currentframe()))
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_os, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_os = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2217
 *     '''
 *     import os
 *     import inspect             # <<<<<<<<<<<<<<
 *     curpath = os.path.dirname(inspect.getfile(inspect.currentframe()))
 *     return os.path.join(curpath, '../input/p0033.mps')
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_inspect = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2218
 *     import os
 *     import inspect
 *     curpath = os.path.dirname(inspect.getfile(inspect.currentframe()))             # <<<<<<<<<<<<<<
 *     return os.path.join(curpath, '../input/p0033.mps')
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_4);
  __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)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_curpath = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2219
 *     import inspect
 *     curpath = os.path.dirname(inspect.getfile(inspect.currentframe()))
 *     return os.path.join(curpath, '../input/p0033.mps')             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_curpath, __pyx_kp_s_input_p0033_mps};
    __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)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_curpath, __pyx_kp_s_input_p0033_mps};
    __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)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  {
    __pyx_t_4 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(__pyx_v_curpath);
    __Pyx_GIVEREF(__pyx_v_curpath);
    PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_v_curpath);
    __Pyx_INCREF(__pyx_kp_s_input_p0033_mps);
    __Pyx_GIVEREF(__pyx_kp_s_input_p0033_mps);
    PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_kp_s_input_p0033_mps);
    __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)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2212
 * 
 * 
 * def getMpsExample():             # <<<<<<<<<<<<<<
 *     '''
 *     Return full path to an MPS example file for doctests
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.getMpsExample", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_os);
  __Pyx_XDECREF(__pyx_v_inspect);
  __Pyx_XDECREF(__pyx_v_curpath);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2222
 * 
 * 
 * cdef int RunIsPivotAcceptable(void * ptr):             # <<<<<<<<<<<<<<
 *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
 *     return CyWrapper.isPivotAcceptable()
 */

static int __pyx_f_4cylp_2cy_12CyClpSimplex_RunIsPivotAcceptable(void *__pyx_v_ptr) {
  struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_CyWrapper = 0;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("RunIsPivotAcceptable", 0);
  __Pyx_TraceCall("RunIsPivotAcceptable", __pyx_f[0], 2222, 0, __PYX_ERR(0, 2222, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2223
 * 
 * cdef int RunIsPivotAcceptable(void * ptr):
 *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)             # <<<<<<<<<<<<<<
 *     return CyWrapper.isPivotAcceptable()
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_ptr);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_CyWrapper = ((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2224
 * cdef int RunIsPivotAcceptable(void * ptr):
 *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
 *     return CyWrapper.isPivotAcceptable()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2222
 * 
 * 
 * cdef int RunIsPivotAcceptable(void * ptr):             # <<<<<<<<<<<<<<
 *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
 *     return CyWrapper.isPivotAcceptable()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.RunIsPivotAcceptable", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_CyWrapper);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cylp/cy/CyClpSimplex.pyx":2227
 * 
 * 
 * cdef int RunVarSelCriteria(void * ptr, int varInd):             # <<<<<<<<<<<<<<
 *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
 *     return CyWrapper.checkVar(varInd)
 */

static int __pyx_f_4cylp_2cy_12CyClpSimplex_RunVarSelCriteria(void *__pyx_v_ptr, int __pyx_v_varInd) {
  struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *__pyx_v_CyWrapper = 0;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("RunVarSelCriteria", 0);
  __Pyx_TraceCall("RunVarSelCriteria", __pyx_f[0], 2227, 0, __PYX_ERR(0, 2227, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":2228
 * 
 * cdef int RunVarSelCriteria(void * ptr, int varInd):
 *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)             # <<<<<<<<<<<<<<
 *     return CyWrapper.checkVar(varInd)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_ptr);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_CyWrapper = ((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2229
 * cdef int RunVarSelCriteria(void * ptr, int varInd):
 *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
 *     return CyWrapper.checkVar(varInd)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_varInd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "cylp/cy/CyClpSimplex.pyx":2227
 * 
 * 
 * cdef int RunVarSelCriteria(void * ptr, int varInd):             # <<<<<<<<<<<<<<
 *     cdef CyClpSimplex CyWrapper = <CyClpSimplex>(ptr)
 *     return CyWrapper.checkVar(varInd)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("cylp.cy.CyClpSimplex.RunVarSelCriteria", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_CyWrapper);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__[] = "VarStatus.__reduce_cython__(self)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__(((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);
  __Pyx_TraceCall("__reduce_cython__", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state
 *     else:
 */
  __pyx_t_3 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_3) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_VarStatus); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_222419149);
    __Pyx_GIVEREF(__pyx_int_222419149);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_222419149);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, None), state
 *     else:
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_VarStatus__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_VarStatus); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_222419149);
    __Pyx_GIVEREF(__pyx_int_222419149);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_222419149);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.VarStatus.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_VarStatus__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_9VarStatus_2__setstate_cython__[] = "VarStatus.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __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));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);
  __Pyx_TraceCall("__setstate_cython__", __pyx_f[1], 16, 0, __PYX_ERR(1, 16, __pyx_L1_error));

  /* "(tree fragment)":17
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_VarStatus__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  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)
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_VarStatus, (type(self), 0xd41d8cd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_VarStatus__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.VarStatus.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_7__pyx_unpickle_VarStatus(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4cylp_2cy_12CyClpSimplex_6__pyx_unpickle_VarStatus[] = "__pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state)";
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};
static PyObject *__pyx_pw_4cylp_2cy_12CyClpSimplex_7__pyx_unpickle_VarStatus(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_VarStatus (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_VarStatus", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_VarStatus", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_VarStatus") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __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)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_VarStatus", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.__pyx_unpickle_VarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __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);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

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) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_TraceFrameInit(__pyx_codeobj__28)
  __Pyx_RefNannySetupContext("__pyx_unpickle_VarStatus", 0);
  __Pyx_TraceCall("__pyx_unpickle_VarStatus", __pyx_f[1], 1, 0, __PYX_ERR(1, 1, __pyx_L1_error));

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd41d8cd:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xd41d8cd) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd41d8cd:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = VarStatus.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xd41d8cd:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = VarStatus.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __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)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd41d8cd:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = VarStatus.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
 */
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = VarStatus.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = VarStatus.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
 */
    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)
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = VarStatus.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.__pyx_unpickle_VarStatus", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_VarStatus__set_state", 0);
  __Pyx_TraceCall("__pyx_unpickle_VarStatus__set_state", __pyx_f[1], 11, 0, __PYX_ERR(1, 11, __pyx_L1_error));

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __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)
  __pyx_t_3 = ((__pyx_t_2 > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __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)
  __pyx_t_4 = (__pyx_t_3 != 0);
  __pyx_t_1 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __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)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 13, __pyx_L1_error)
    }
    __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)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __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);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_VarStatus__set_state(<VarStatus> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_VarStatus__set_state(VarStatus __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("cylp.cy.CyClpSimplex.__pyx_unpickle_VarStatus__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":258
 *         # experimental exception made for __getbuffer__ and __releasebuffer__
 *         # -- the details of this may change.
 *         def __getbuffer__(ndarray self, Py_buffer* info, int flags):             # <<<<<<<<<<<<<<
 *             # This implementation of getbuffer is geared towards Cython
 *             # requirements, and does not yet fulfill the PEP.
 */

/* Python wrapper */
static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
  __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
  int __pyx_v_i;
  int __pyx_v_ndim;
  int __pyx_v_endian_detector;
  int __pyx_v_little_endian;
  int __pyx_v_t;
  char *__pyx_v_f;
  PyArray_Descr *__pyx_v_descr = 0;
  int __pyx_v_offset;
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyArray_Descr *__pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  char *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_v_info == NULL) {
    PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
    return -1;
  }
  __Pyx_RefNannySetupContext("__getbuffer__", 0);
  __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(__pyx_v_info->obj);
  __Pyx_TraceCall("__getbuffer__", __pyx_f[2], 258, 0, __PYX_ERR(2, 258, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":265
 * 
 *             cdef int i, ndim
 *             cdef int endian_detector = 1             # <<<<<<<<<<<<<<
 *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
 * 
 */
  __pyx_v_endian_detector = 1;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":266
 *             cdef int i, ndim
 *             cdef int endian_detector = 1
 *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
 * 
 *             ndim = PyArray_NDIM(self)
 */
  __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":268
 *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
 * 
 *             ndim = PyArray_NDIM(self)             # <<<<<<<<<<<<<<
 * 
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
 */
  __pyx_v_ndim = PyArray_NDIM(__pyx_v_self);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":270
 *             ndim = PyArray_NDIM(self)
 * 
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)             # <<<<<<<<<<<<<<
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not C contiguous")
 */
  __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":271
 * 
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):             # <<<<<<<<<<<<<<
 *                 raise ValueError(u"ndarray is not C contiguous")
 * 
 */
  __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":270
 *             ndim = PyArray_NDIM(self)
 * 
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)             # <<<<<<<<<<<<<<
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not C contiguous")
 */
  if (unlikely(__pyx_t_1)) {

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":272
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not C contiguous")             # <<<<<<<<<<<<<<
 * 
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(2, 272, __pyx_L1_error)

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":270
 *             ndim = PyArray_NDIM(self)
 * 
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)             # <<<<<<<<<<<<<<
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not C contiguous")
 */
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":274
 *                 raise ValueError(u"ndarray is not C contiguous")
 * 
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)             # <<<<<<<<<<<<<<
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not Fortran contiguous")
 */
  __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":275
 * 
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):             # <<<<<<<<<<<<<<
 *                 raise ValueError(u"ndarray is not Fortran contiguous")
 * 
 */
  __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L7_bool_binop_done:;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":274
 *                 raise ValueError(u"ndarray is not C contiguous")
 * 
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)             # <<<<<<<<<<<<<<
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not Fortran contiguous")
 */
  if (unlikely(__pyx_t_1)) {

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":276
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not Fortran contiguous")             # <<<<<<<<<<<<<<
 * 
 *             info.buf = PyArray_DATA(self)
 */
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(2, 276, __pyx_L1_error)

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":274
 *                 raise ValueError(u"ndarray is not C contiguous")
 * 
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)             # <<<<<<<<<<<<<<
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not Fortran contiguous")
 */
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":278
 *                 raise ValueError(u"ndarray is not Fortran contiguous")
 * 
 *             info.buf = PyArray_DATA(self)             # <<<<<<<<<<<<<<
 *             info.ndim = ndim
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 */
  __pyx_v_info->buf = PyArray_DATA(__pyx_v_self);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":279
 * 
 *             info.buf = PyArray_DATA(self)
 *             info.ndim = ndim             # <<<<<<<<<<<<<<
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 *                 # Allocate new buffer for strides and shape info.
 */
  __pyx_v_info->ndim = __pyx_v_ndim;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":280
 *             info.buf = PyArray_DATA(self)
 *             info.ndim = ndim
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
 *                 # Allocate new buffer for strides and shape info.
 *                 # This is allocated as one block, strides first.
 */
  __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0);
  if (__pyx_t_1) {

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":283
 *                 # Allocate new buffer for strides and shape info.
 *                 # This is allocated as one block, strides first.
 *                 info.strides = <Py_ssize_t*>PyObject_Malloc(sizeof(Py_ssize_t) * 2 * <size_t>ndim)             # <<<<<<<<<<<<<<
 *                 info.shape = info.strides + ndim
 *                 for i in range(ndim):
 */
    __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim))));

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":284
 *                 # This is allocated as one block, strides first.
 *                 info.strides = <Py_ssize_t*>PyObject_Malloc(sizeof(Py_ssize_t) * 2 * <size_t>ndim)
 *                 info.shape = info.strides + ndim             # <<<<<<<<<<<<<<
 *                 for i in range(ndim):
 *                     info.strides[i] = PyArray_STRIDES(self)[i]
 */
    __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim);

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":285
 *                 info.strides = <Py_ssize_t*>PyObject_Malloc(sizeof(Py_ssize_t) * 2 * <size_t>ndim)
 *                 info.shape = info.strides + ndim
 *                 for i in range(ndim):             # <<<<<<<<<<<<<<
 *                     info.strides[i] = PyArray_STRIDES(self)[i]
 *                     info.shape[i] = PyArray_DIMS(self)[i]
 */
    __pyx_t_4 = __pyx_v_ndim;
    __pyx_t_5 = __pyx_t_4;
    for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
      __pyx_v_i = __pyx_t_6;

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":286
 *                 info.shape = info.strides + ndim
 *                 for i in range(ndim):
 *                     info.strides[i] = PyArray_STRIDES(self)[i]             # <<<<<<<<<<<<<<
 *                     info.shape[i] = PyArray_DIMS(self)[i]
 *             else:
 */
      (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]);

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":287
 *                 for i in range(ndim):
 *                     info.strides[i] = PyArray_STRIDES(self)[i]
 *                     info.shape[i] = PyArray_DIMS(self)[i]             # <<<<<<<<<<<<<<
 *             else:
 *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
 */
      (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]);
    }

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":280
 *             info.buf = PyArray_DATA(self)
 *             info.ndim = ndim
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
 *                 # Allocate new buffer for strides and shape info.
 *                 # This is allocated as one block, strides first.
 */
    goto __pyx_L9;
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":289
 *                     info.shape[i] = PyArray_DIMS(self)[i]
 *             else:
 *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)             # <<<<<<<<<<<<<<
 *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
 *             info.suboffsets = NULL
 */
  /*else*/ {
    __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self));

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":290
 *             else:
 *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
 *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)             # <<<<<<<<<<<<<<
 *             info.suboffsets = NULL
 *             info.itemsize = PyArray_ITEMSIZE(self)
 */
    __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self));
  }
  __pyx_L9:;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":291
 *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
 *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
 *             info.suboffsets = NULL             # <<<<<<<<<<<<<<
 *             info.itemsize = PyArray_ITEMSIZE(self)
 *             info.readonly = not PyArray_ISWRITEABLE(self)
 */
  __pyx_v_info->suboffsets = NULL;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":292
 *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
 *             info.suboffsets = NULL
 *             info.itemsize = PyArray_ITEMSIZE(self)             # <<<<<<<<<<<<<<
 *             info.readonly = not PyArray_ISWRITEABLE(self)
 * 
 */
  __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":293
 *             info.suboffsets = NULL
 *             info.itemsize = PyArray_ITEMSIZE(self)
 *             info.readonly = not PyArray_ISWRITEABLE(self)             # <<<<<<<<<<<<<<
 * 
 *             cdef int t
 */
  __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":296
 * 
 *             cdef int t
 *             cdef char* f = NULL             # <<<<<<<<<<<<<<
 *             cdef dtype descr = <dtype>PyArray_DESCR(self)
 *             cdef int offset
 */
  __pyx_v_f = NULL;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":297
 *             cdef int t
 *             cdef char* f = NULL
 *             cdef dtype descr = <dtype>PyArray_DESCR(self)             # <<<<<<<<<<<<<<
 *             cdef int offset
 * 
 */
  __pyx_t_7 = PyArray_DESCR(__pyx_v_self);
  __pyx_t_3 = ((PyObject *)__pyx_t_7);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":300
 *             cdef int offset
 * 
 *             info.obj = self             # <<<<<<<<<<<<<<
 * 
 *             if not PyDataType_HASFIELDS(descr):
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  __Pyx_GOTREF(__pyx_v_info->obj);
  __Pyx_DECREF(__pyx_v_info->obj);
  __pyx_v_info->obj = ((PyObject *)__pyx_v_self);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":302
 *             info.obj = self
 * 
 *             if not PyDataType_HASFIELDS(descr):             # <<<<<<<<<<<<<<
 *                 t = descr.type_num
 *                 if ((descr.byteorder == c'>' and little_endian) or
 */
  __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0);
  if (__pyx_t_1) {

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":303
 * 
 *             if not PyDataType_HASFIELDS(descr):
 *                 t = descr.type_num             # <<<<<<<<<<<<<<
 *                 if ((descr.byteorder == c'>' and little_endian) or
 *                     (descr.byteorder == c'<' and not little_endian)):
 */
    __pyx_t_4 = __pyx_v_descr->type_num;
    __pyx_v_t = __pyx_t_4;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":304
 *             if not PyDataType_HASFIELDS(descr):
 *                 t = descr.type_num
 *                 if ((descr.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 *                     (descr.byteorder == c'<' and not little_endian)):
 *                     raise ValueError(u"Non-native byte order not supported")
 */
    __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0);
    if (!__pyx_t_2) {
      goto __pyx_L15_next_or;
    } else {
    }
    __pyx_t_2 = (__pyx_v_little_endian != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L14_bool_binop_done;
    }
    __pyx_L15_next_or:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":305
 *                 t = descr.type_num
 *                 if ((descr.byteorder == c'>' and little_endian) or
 *                     (descr.byteorder == c'<' and not little_endian)):             # <<<<<<<<<<<<<<
 *                     raise ValueError(u"Non-native byte order not supported")
 *                 if   t == NPY_BYTE:        f = "b"
 */
    __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L14_bool_binop_done;
    }
    __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L14_bool_binop_done:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":304
 *             if not PyDataType_HASFIELDS(descr):
 *                 t = descr.type_num
 *                 if ((descr.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 *                     (descr.byteorder == c'<' and not little_endian)):
 *                     raise ValueError(u"Non-native byte order not supported")
 */
    if (unlikely(__pyx_t_1)) {

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":306
 *                 if ((descr.byteorder == c'>' and little_endian) or
 *                     (descr.byteorder == c'<' and not little_endian)):
 *                     raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
 *                 if   t == NPY_BYTE:        f = "b"
 *                 elif t == NPY_UBYTE:       f = "B"
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(2, 306, __pyx_L1_error)

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":304
 *             if not PyDataType_HASFIELDS(descr):
 *                 t = descr.type_num
 *                 if ((descr.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 *                     (descr.byteorder == c'<' and not little_endian)):
 *                     raise ValueError(u"Non-native byte order not supported")
 */
    }

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":307
 *                     (descr.byteorder == c'<' and not little_endian)):
 *                     raise ValueError(u"Non-native byte order not supported")
 *                 if   t == NPY_BYTE:        f = "b"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_UBYTE:       f = "B"
 *                 elif t == NPY_SHORT:       f = "h"
 */
    switch (__pyx_v_t) {
      case NPY_BYTE:
      __pyx_v_f = ((char *)"b");
      break;
      case NPY_UBYTE:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":308
 *                     raise ValueError(u"Non-native byte order not supported")
 *                 if   t == NPY_BYTE:        f = "b"
 *                 elif t == NPY_UBYTE:       f = "B"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_SHORT:       f = "h"
 *                 elif t == NPY_USHORT:      f = "H"
 */
      __pyx_v_f = ((char *)"B");
      break;
      case NPY_SHORT:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":309
 *                 if   t == NPY_BYTE:        f = "b"
 *                 elif t == NPY_UBYTE:       f = "B"
 *                 elif t == NPY_SHORT:       f = "h"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_USHORT:      f = "H"
 *                 elif t == NPY_INT:         f = "i"
 */
      __pyx_v_f = ((char *)"h");
      break;
      case NPY_USHORT:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":310
 *                 elif t == NPY_UBYTE:       f = "B"
 *                 elif t == NPY_SHORT:       f = "h"
 *                 elif t == NPY_USHORT:      f = "H"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_INT:         f = "i"
 *                 elif t == NPY_UINT:        f = "I"
 */
      __pyx_v_f = ((char *)"H");
      break;
      case NPY_INT:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":311
 *                 elif t == NPY_SHORT:       f = "h"
 *                 elif t == NPY_USHORT:      f = "H"
 *                 elif t == NPY_INT:         f = "i"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_UINT:        f = "I"
 *                 elif t == NPY_LONG:        f = "l"
 */
      __pyx_v_f = ((char *)"i");
      break;
      case NPY_UINT:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":312
 *                 elif t == NPY_USHORT:      f = "H"
 *                 elif t == NPY_INT:         f = "i"
 *                 elif t == NPY_UINT:        f = "I"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_LONG:        f = "l"
 *                 elif t == NPY_ULONG:       f = "L"
 */
      __pyx_v_f = ((char *)"I");
      break;
      case NPY_LONG:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":313
 *                 elif t == NPY_INT:         f = "i"
 *                 elif t == NPY_UINT:        f = "I"
 *                 elif t == NPY_LONG:        f = "l"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_ULONG:       f = "L"
 *                 elif t == NPY_LONGLONG:    f = "q"
 */
      __pyx_v_f = ((char *)"l");
      break;
      case NPY_ULONG:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":314
 *                 elif t == NPY_UINT:        f = "I"
 *                 elif t == NPY_LONG:        f = "l"
 *                 elif t == NPY_ULONG:       f = "L"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_LONGLONG:    f = "q"
 *                 elif t == NPY_ULONGLONG:   f = "Q"
 */
      __pyx_v_f = ((char *)"L");
      break;
      case NPY_LONGLONG:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":315
 *                 elif t == NPY_LONG:        f = "l"
 *                 elif t == NPY_ULONG:       f = "L"
 *                 elif t == NPY_LONGLONG:    f = "q"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_ULONGLONG:   f = "Q"
 *                 elif t == NPY_FLOAT:       f = "f"
 */
      __pyx_v_f = ((char *)"q");
      break;
      case NPY_ULONGLONG:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":316
 *                 elif t == NPY_ULONG:       f = "L"
 *                 elif t == NPY_LONGLONG:    f = "q"
 *                 elif t == NPY_ULONGLONG:   f = "Q"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_FLOAT:       f = "f"
 *                 elif t == NPY_DOUBLE:      f = "d"
 */
      __pyx_v_f = ((char *)"Q");
      break;
      case NPY_FLOAT:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":317
 *                 elif t == NPY_LONGLONG:    f = "q"
 *                 elif t == NPY_ULONGLONG:   f = "Q"
 *                 elif t == NPY_FLOAT:       f = "f"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_DOUBLE:      f = "d"
 *                 elif t == NPY_LONGDOUBLE:  f = "g"
 */
      __pyx_v_f = ((char *)"f");
      break;
      case NPY_DOUBLE:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":318
 *                 elif t == NPY_ULONGLONG:   f = "Q"
 *                 elif t == NPY_FLOAT:       f = "f"
 *                 elif t == NPY_DOUBLE:      f = "d"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_LONGDOUBLE:  f = "g"
 *                 elif t == NPY_CFLOAT:      f = "Zf"
 */
      __pyx_v_f = ((char *)"d");
      break;
      case NPY_LONGDOUBLE:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":319
 *                 elif t == NPY_FLOAT:       f = "f"
 *                 elif t == NPY_DOUBLE:      f = "d"
 *                 elif t == NPY_LONGDOUBLE:  f = "g"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_CFLOAT:      f = "Zf"
 *                 elif t == NPY_CDOUBLE:     f = "Zd"
 */
      __pyx_v_f = ((char *)"g");
      break;
      case NPY_CFLOAT:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":320
 *                 elif t == NPY_DOUBLE:      f = "d"
 *                 elif t == NPY_LONGDOUBLE:  f = "g"
 *                 elif t == NPY_CFLOAT:      f = "Zf"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_CDOUBLE:     f = "Zd"
 *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
 */
      __pyx_v_f = ((char *)"Zf");
      break;
      case NPY_CDOUBLE:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":321
 *                 elif t == NPY_LONGDOUBLE:  f = "g"
 *                 elif t == NPY_CFLOAT:      f = "Zf"
 *                 elif t == NPY_CDOUBLE:     f = "Zd"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
 *                 elif t == NPY_OBJECT:      f = "O"
 */
      __pyx_v_f = ((char *)"Zd");
      break;
      case NPY_CLONGDOUBLE:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":322
 *                 elif t == NPY_CFLOAT:      f = "Zf"
 *                 elif t == NPY_CDOUBLE:     f = "Zd"
 *                 elif t == NPY_CLONGDOUBLE: f = "Zg"             # <<<<<<<<<<<<<<
 *                 elif t == NPY_OBJECT:      f = "O"
 *                 else:
 */
      __pyx_v_f = ((char *)"Zg");
      break;
      case NPY_OBJECT:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":323
 *                 elif t == NPY_CDOUBLE:     f = "Zd"
 *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
 *                 elif t == NPY_OBJECT:      f = "O"             # <<<<<<<<<<<<<<
 *                 else:
 *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 */
      __pyx_v_f = ((char *)"O");
      break;
      default:

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":325
 *                 elif t == NPY_OBJECT:      f = "O"
 *                 else:
 *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
 *                 info.format = f
 *                 return
 */
      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(2, 325, __pyx_L1_error)
      break;
    }

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":326
 *                 else:
 *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 *                 info.format = f             # <<<<<<<<<<<<<<
 *                 return
 *             else:
 */
    __pyx_v_info->format = __pyx_v_f;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":327
 *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 *                 info.format = f
 *                 return             # <<<<<<<<<<<<<<
 *             else:
 *                 info.format = <char*>PyObject_Malloc(_buffer_format_string_len)
 */
    __pyx_r = 0;
    goto __pyx_L0;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":302
 *             info.obj = self
 * 
 *             if not PyDataType_HASFIELDS(descr):             # <<<<<<<<<<<<<<
 *                 t = descr.type_num
 *                 if ((descr.byteorder == c'>' and little_endian) or
 */
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":329
 *                 return
 *             else:
 *                 info.format = <char*>PyObject_Malloc(_buffer_format_string_len)             # <<<<<<<<<<<<<<
 *                 info.format[0] = c'^' # Native data types, manual alignment
 *                 offset = 0
 */
  /*else*/ {
    __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF));

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":330
 *             else:
 *                 info.format = <char*>PyObject_Malloc(_buffer_format_string_len)
 *                 info.format[0] = c'^' # Native data types, manual alignment             # <<<<<<<<<<<<<<
 *                 offset = 0
 *                 f = _util_dtypestring(descr, info.format + 1,
 */
    (__pyx_v_info->format[0]) = '^';

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":331
 *                 info.format = <char*>PyObject_Malloc(_buffer_format_string_len)
 *                 info.format[0] = c'^' # Native data types, manual alignment
 *                 offset = 0             # <<<<<<<<<<<<<<
 *                 f = _util_dtypestring(descr, info.format + 1,
 *                                       info.format + _buffer_format_string_len,
 */
    __pyx_v_offset = 0;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":332
 *                 info.format[0] = c'^' # Native data types, manual alignment
 *                 offset = 0
 *                 f = _util_dtypestring(descr, info.format + 1,             # <<<<<<<<<<<<<<
 *                                       info.format + _buffer_format_string_len,
 *                                       &offset)
 */
    __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)
    __pyx_v_f = __pyx_t_9;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":335
 *                                       info.format + _buffer_format_string_len,
 *                                       &offset)
 *                 f[0] = c'\0' # Terminate format string             # <<<<<<<<<<<<<<
 * 
 *         def __releasebuffer__(ndarray self, Py_buffer* info):
 */
    (__pyx_v_f[0]) = '\x00';
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":258
 *         # experimental exception made for __getbuffer__ and __releasebuffer__
 *         # -- the details of this may change.
 *         def __getbuffer__(ndarray self, Py_buffer* info, int flags):             # <<<<<<<<<<<<<<
 *             # This implementation of getbuffer is geared towards Cython
 *             # requirements, and does not yet fulfill the PEP.
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  if (__pyx_v_info->obj != NULL) {
    __Pyx_GOTREF(__pyx_v_info->obj);
    __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
  }
  goto __pyx_L2;
  __pyx_L0:;
  if (__pyx_v_info->obj == Py_None) {
    __Pyx_GOTREF(__pyx_v_info->obj);
    __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
  }
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_descr);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":337
 *                 f[0] = c'\0' # Terminate format string
 * 
 *         def __releasebuffer__(ndarray self, Py_buffer* info):             # <<<<<<<<<<<<<<
 *             if PyArray_HASFIELDS(self):
 *                 PyObject_Free(info.format)
 */

/* Python wrapper */
static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/
static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0);
  __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__releasebuffer__", 0);
  __Pyx_TraceCall("__releasebuffer__", __pyx_f[2], 337, 0, __PYX_ERR(2, 337, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":338
 * 
 *         def __releasebuffer__(ndarray self, Py_buffer* info):
 *             if PyArray_HASFIELDS(self):             # <<<<<<<<<<<<<<
 *                 PyObject_Free(info.format)
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 */
  __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0);
  if (__pyx_t_1) {

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":339
 *         def __releasebuffer__(ndarray self, Py_buffer* info):
 *             if PyArray_HASFIELDS(self):
 *                 PyObject_Free(info.format)             # <<<<<<<<<<<<<<
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 *                 PyObject_Free(info.strides)
 */
    PyObject_Free(__pyx_v_info->format);

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":338
 * 
 *         def __releasebuffer__(ndarray self, Py_buffer* info):
 *             if PyArray_HASFIELDS(self):             # <<<<<<<<<<<<<<
 *                 PyObject_Free(info.format)
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 */
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":340
 *             if PyArray_HASFIELDS(self):
 *                 PyObject_Free(info.format)
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
 *                 PyObject_Free(info.strides)
 *                 # info.shape was stored after info.strides in the same block
 */
  __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0);
  if (__pyx_t_1) {

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":341
 *                 PyObject_Free(info.format)
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 *                 PyObject_Free(info.strides)             # <<<<<<<<<<<<<<
 *                 # info.shape was stored after info.strides in the same block
 * 
 */
    PyObject_Free(__pyx_v_info->strides);

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":340
 *             if PyArray_HASFIELDS(self):
 *                 PyObject_Free(info.format)
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
 *                 PyObject_Free(info.strides)
 *                 # info.shape was stored after info.strides in the same block
 */
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":337
 *                 f[0] = c'\0' # Terminate format string
 * 
 *         def __releasebuffer__(ndarray self, Py_buffer* info):             # <<<<<<<<<<<<<<
 *             if PyArray_HASFIELDS(self):
 *                 PyObject_Free(info.format)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("numpy.ndarray.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":820
 * ctypedef npy_cdouble     complex_t
 * 
 * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
  __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[2], 820, 0, __PYX_ERR(2, 820, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":821
 * 
 * cdef inline object PyArray_MultiIterNew1(a):
 *     return PyArray_MultiIterNew(1, <void*>a)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":820
 * ctypedef npy_cdouble     complex_t
 * 
 * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":823
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
  __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[2], 823, 0, __PYX_ERR(2, 823, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":824
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew3(a, b, c):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":823
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":826
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 * 
 * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
  __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[2], 826, 0, __PYX_ERR(2, 826, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":827
 * 
 * cdef inline object PyArray_MultiIterNew3(a, b, c):
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":826
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 * 
 * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":829
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 * 
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 * 
 */

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
  __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[2], 829, 0, __PYX_ERR(2, 829, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":830
 * 
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":829
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 * 
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":832
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 * 
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 */

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) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
  __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[2], 832, 0, __PYX_ERR(2, 832, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":833
 * 
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)             # <<<<<<<<<<<<<<
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 */
  __Pyx_XDECREF(__pyx_r);
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":832
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 * 
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":835
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
 *     if PyDataType_HASSUBARRAY(d):
 *         return <tuple>d.subarray.shape
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
  __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[2], 835, 0, __PYX_ERR(2, 835, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":836
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
 *         return <tuple>d.subarray.shape
 *     else:
 */
  __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0);
  if (__pyx_t_1) {

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":837
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):
 *         return <tuple>d.subarray.shape             # <<<<<<<<<<<<<<
 *     else:
 *         return ()
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape));
    __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
    goto __pyx_L0;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":836
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
 *         return <tuple>d.subarray.shape
 *     else:
 */
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":839
 *         return <tuple>d.subarray.shape
 *     else:
 *         return ()             # <<<<<<<<<<<<<<
 * 
 * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_empty_tuple);
    __pyx_r = __pyx_empty_tuple;
    goto __pyx_L0;
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":835
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
 *     if PyDataType_HASSUBARRAY(d):
 *         return <tuple>d.subarray.shape
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("numpy.PyDataType_SHAPE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":841
 *         return ()
 * 
 * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:             # <<<<<<<<<<<<<<
 *     # Recursive utility function used in __getbuffer__ to get format
 *     # string. The new location in the format string is returned.
 */

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) {
  PyArray_Descr *__pyx_v_child = 0;
  int __pyx_v_endian_detector;
  int __pyx_v_little_endian;
  PyObject *__pyx_v_fields = 0;
  PyObject *__pyx_v_childname = NULL;
  PyObject *__pyx_v_new_offset = NULL;
  PyObject *__pyx_v_t = NULL;
  char *__pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  long __pyx_t_8;
  char *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_util_dtypestring", 0);
  __Pyx_TraceCall("_util_dtypestring", __pyx_f[2], 841, 0, __PYX_ERR(2, 841, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":846
 * 
 *     cdef dtype child
 *     cdef int endian_detector = 1             # <<<<<<<<<<<<<<
 *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
 *     cdef tuple fields
 */
  __pyx_v_endian_detector = 1;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":847
 *     cdef dtype child
 *     cdef int endian_detector = 1
 *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
 *     cdef tuple fields
 * 
 */
  __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":850
 *     cdef tuple fields
 * 
 *     for childname in descr.names:             # <<<<<<<<<<<<<<
 *         fields = descr.fields[childname]
 *         child, new_offset = fields
 */
  if (unlikely(__pyx_v_descr->names == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(2, 850, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
  for (;;) {
    if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __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)
    #else
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":851
 * 
 *     for childname in descr.names:
 *         fields = descr.fields[childname]             # <<<<<<<<<<<<<<
 *         child, new_offset = fields
 * 
 */
    if (unlikely(__pyx_v_descr->fields == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 851, __pyx_L1_error)
    }
    __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)
    __Pyx_GOTREF(__pyx_t_3);
    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)
    __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":852
 *     for childname in descr.names:
 *         fields = descr.fields[childname]
 *         child, new_offset = fields             # <<<<<<<<<<<<<<
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:
 */
    if (likely(__pyx_v_fields != Py_None)) {
      PyObject* sequence = __pyx_v_fields;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(2, 852, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 852, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
    } else {
      __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 852, __pyx_L1_error)
    }
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 852, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3));
    __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":854
 *         child, new_offset = fields
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:             # <<<<<<<<<<<<<<
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 */
    __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __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)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0);
    if (unlikely(__pyx_t_6)) {

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":855
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
 * 
 *         if ((child.byteorder == c'>' and little_endian) or
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(2, 855, __pyx_L1_error)

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":854
 *         child, new_offset = fields
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:             # <<<<<<<<<<<<<<
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 */
    }

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":857
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 *             (child.byteorder == c'<' and not little_endian)):
 *             raise ValueError(u"Non-native byte order not supported")
 */
    __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0);
    if (!__pyx_t_7) {
      goto __pyx_L8_next_or;
    } else {
    }
    __pyx_t_7 = (__pyx_v_little_endian != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_L8_next_or:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":858
 * 
 *         if ((child.byteorder == c'>' and little_endian) or
 *             (child.byteorder == c'<' and not little_endian)):             # <<<<<<<<<<<<<<
 *             raise ValueError(u"Non-native byte order not supported")
 *             # One could encode it in the format string and have Cython
 */
    __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0);
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L7_bool_binop_done:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":857
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 *             (child.byteorder == c'<' and not little_endian)):
 *             raise ValueError(u"Non-native byte order not supported")
 */
    if (unlikely(__pyx_t_6)) {

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":859
 *         if ((child.byteorder == c'>' and little_endian) or
 *             (child.byteorder == c'<' and not little_endian)):
 *             raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
 *             # One could encode it in the format string and have Cython
 *             # complain instead, BUT: < and > in format strings also imply
 */
      __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)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(2, 859, __pyx_L1_error)

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":857
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 *             (child.byteorder == c'<' and not little_endian)):
 *             raise ValueError(u"Non-native byte order not supported")
 */
    }

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":869
 * 
 *         # Output padding bytes
 *         while offset[0] < new_offset:             # <<<<<<<<<<<<<<
 *             f[0] = 120 # "x"; pad byte
 *             f += 1
 */
    while (1) {
      __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 869, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 869, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!__pyx_t_6) break;

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":870
 *         # Output padding bytes
 *         while offset[0] < new_offset:
 *             f[0] = 120 # "x"; pad byte             # <<<<<<<<<<<<<<
 *             f += 1
 *             offset[0] += 1
 */
      (__pyx_v_f[0]) = 0x78;

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":871
 *         while offset[0] < new_offset:
 *             f[0] = 120 # "x"; pad byte
 *             f += 1             # <<<<<<<<<<<<<<
 *             offset[0] += 1
 * 
 */
      __pyx_v_f = (__pyx_v_f + 1);

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":872
 *             f[0] = 120 # "x"; pad byte
 *             f += 1
 *             offset[0] += 1             # <<<<<<<<<<<<<<
 * 
 *         offset[0] += child.itemsize
 */
      __pyx_t_8 = 0;
      (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1);
    }

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":874
 *             offset[0] += 1
 * 
 *         offset[0] += child.itemsize             # <<<<<<<<<<<<<<
 * 
 *         if not PyDataType_HASFIELDS(child):
 */
    __pyx_t_8 = 0;
    (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize);

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":876
 *         offset[0] += child.itemsize
 * 
 *         if not PyDataType_HASFIELDS(child):             # <<<<<<<<<<<<<<
 *             t = child.type_num
 *             if end - f < 5:
 */
    __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0);
    if (__pyx_t_6) {

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":877
 * 
 *         if not PyDataType_HASFIELDS(child):
 *             t = child.type_num             # <<<<<<<<<<<<<<
 *             if end - f < 5:
 *                 raise RuntimeError(u"Format string allocated too short.")
 */
      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":878
 *         if not PyDataType_HASFIELDS(child):
 *             t = child.type_num
 *             if end - f < 5:             # <<<<<<<<<<<<<<
 *                 raise RuntimeError(u"Format string allocated too short.")
 * 
 */
      __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0);
      if (unlikely(__pyx_t_6)) {

        /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":879
 *             t = child.type_num
 *             if end - f < 5:
 *                 raise RuntimeError(u"Format string allocated too short.")             # <<<<<<<<<<<<<<
 * 
 *             # Until ticket #99 is fixed, use integers to avoid warnings
 */
        __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)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_Raise(__pyx_t_4, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __PYX_ERR(2, 879, __pyx_L1_error)

        /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":878
 *         if not PyDataType_HASFIELDS(child):
 *             t = child.type_num
 *             if end - f < 5:             # <<<<<<<<<<<<<<
 *                 raise RuntimeError(u"Format string allocated too short.")
 * 
 */
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":882
 * 
 *             # Until ticket #99 is fixed, use integers to avoid warnings
 *             if   t == NPY_BYTE:        f[0] =  98 #"b"             # <<<<<<<<<<<<<<
 *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 882, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 882, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 98;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":883
 *             # Until ticket #99 is fixed, use integers to avoid warnings
 *             if   t == NPY_BYTE:        f[0] =  98 #"b"
 *             elif t == NPY_UBYTE:       f[0] =  66 #"B"             # <<<<<<<<<<<<<<
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 66;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":884
 *             if   t == NPY_BYTE:        f[0] =  98 #"b"
 *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"             # <<<<<<<<<<<<<<
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"
 *             elif t == NPY_INT:         f[0] = 105 #"i"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x68;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":885
 *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"             # <<<<<<<<<<<<<<
 *             elif t == NPY_INT:         f[0] = 105 #"i"
 *             elif t == NPY_UINT:        f[0] =  73 #"I"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 72;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":886
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"
 *             elif t == NPY_INT:         f[0] = 105 #"i"             # <<<<<<<<<<<<<<
 *             elif t == NPY_UINT:        f[0] =  73 #"I"
 *             elif t == NPY_LONG:        f[0] = 108 #"l"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x69;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":887
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"
 *             elif t == NPY_INT:         f[0] = 105 #"i"
 *             elif t == NPY_UINT:        f[0] =  73 #"I"             # <<<<<<<<<<<<<<
 *             elif t == NPY_LONG:        f[0] = 108 #"l"
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 73;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":888
 *             elif t == NPY_INT:         f[0] = 105 #"i"
 *             elif t == NPY_UINT:        f[0] =  73 #"I"
 *             elif t == NPY_LONG:        f[0] = 108 #"l"             # <<<<<<<<<<<<<<
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x6C;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":889
 *             elif t == NPY_UINT:        f[0] =  73 #"I"
 *             elif t == NPY_LONG:        f[0] = 108 #"l"
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"             # <<<<<<<<<<<<<<
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 76;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":890
 *             elif t == NPY_LONG:        f[0] = 108 #"l"
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"             # <<<<<<<<<<<<<<
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x71;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":891
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"             # <<<<<<<<<<<<<<
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 81;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":892
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"             # <<<<<<<<<<<<<<
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x66;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":893
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"             # <<<<<<<<<<<<<<
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x64;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":894
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"             # <<<<<<<<<<<<<<
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x67;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":895
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf             # <<<<<<<<<<<<<<
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
 *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 90;
        (__pyx_v_f[1]) = 0x66;
        __pyx_v_f = (__pyx_v_f + 1);
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":896
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd             # <<<<<<<<<<<<<<
 *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
 *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 90;
        (__pyx_v_f[1]) = 0x64;
        __pyx_v_f = (__pyx_v_f + 1);
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":897
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
 *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg             # <<<<<<<<<<<<<<
 *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
 *             else:
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 90;
        (__pyx_v_f[1]) = 0x67;
        __pyx_v_f = (__pyx_v_f + 1);
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":898
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
 *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
 *             elif t == NPY_OBJECT:      f[0] = 79 #"O"             # <<<<<<<<<<<<<<
 *             else:
 *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __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)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (likely(__pyx_t_6)) {
        (__pyx_v_f[0]) = 79;
        goto __pyx_L15;
      }

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":900
 *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
 *             else:
 *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
 *             f += 1
 *         else:
 */
      /*else*/ {
        __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)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 900, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_Raise(__pyx_t_4, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __PYX_ERR(2, 900, __pyx_L1_error)
      }
      __pyx_L15:;

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":901
 *             else:
 *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 *             f += 1             # <<<<<<<<<<<<<<
 *         else:
 *             # Cython ignores struct boundary information ("T{...}"),
 */
      __pyx_v_f = (__pyx_v_f + 1);

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":876
 *         offset[0] += child.itemsize
 * 
 *         if not PyDataType_HASFIELDS(child):             # <<<<<<<<<<<<<<
 *             t = child.type_num
 *             if end - f < 5:
 */
      goto __pyx_L13;
    }

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":905
 *             # Cython ignores struct boundary information ("T{...}"),
 *             # so don't output it
 *             f = _util_dtypestring(child, f, end, offset)             # <<<<<<<<<<<<<<
 *     return f
 * 
 */
    /*else*/ {
      __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)
      __pyx_v_f = __pyx_t_9;
    }
    __pyx_L13:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":850
 *     cdef tuple fields
 * 
 *     for childname in descr.names:             # <<<<<<<<<<<<<<
 *         fields = descr.fields[childname]
 *         child, new_offset = fields
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":906
 *             # so don't output it
 *             f = _util_dtypestring(child, f, end, offset)
 *     return f             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_f;
  goto __pyx_L0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":841
 *         return ()
 * 
 * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:             # <<<<<<<<<<<<<<
 *     # Recursive utility function used in __getbuffer__ to get format
 *     # string. The new location in the format string is returned.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_child);
  __Pyx_XDECREF(__pyx_v_fields);
  __Pyx_XDECREF(__pyx_v_childname);
  __Pyx_XDECREF(__pyx_v_new_offset);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1021
 *     int _import_umath() except -1
 * 
 * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
 *     Py_INCREF(base) # important to do this before stealing the reference below!
 *     PyArray_SetBaseObject(arr, base)
 */

static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_array_base", 0);
  __Pyx_TraceCall("set_array_base", __pyx_f[2], 1021, 0, __PYX_ERR(2, 1021, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1022
 * 
 * cdef inline void set_array_base(ndarray arr, object base):
 *     Py_INCREF(base) # important to do this before stealing the reference below!             # <<<<<<<<<<<<<<
 *     PyArray_SetBaseObject(arr, base)
 * 
 */
  Py_INCREF(__pyx_v_base);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1023
 * cdef inline void set_array_base(ndarray arr, object base):
 *     Py_INCREF(base) # important to do this before stealing the reference below!
 *     PyArray_SetBaseObject(arr, base)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object get_array_base(ndarray arr):
 */
  (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1021
 *     int _import_umath() except -1
 * 
 * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
 *     Py_INCREF(base) # important to do this before stealing the reference below!
 *     PyArray_SetBaseObject(arr, base)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1025
 *     PyArray_SetBaseObject(arr, base)
 * 
 * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
 *     base = PyArray_BASE(arr)
 *     if base is NULL:
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
  PyObject *__pyx_v_base;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_array_base", 0);
  __Pyx_TraceCall("get_array_base", __pyx_f[2], 1025, 0, __PYX_ERR(2, 1025, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1026
 * 
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)             # <<<<<<<<<<<<<<
 *     if base is NULL:
 *         return None
 */
  __pyx_v_base = PyArray_BASE(__pyx_v_arr);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1027
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)
 *     if base is NULL:             # <<<<<<<<<<<<<<
 *         return None
 *     return <object>base
 */
  __pyx_t_1 = ((__pyx_v_base == NULL) != 0);
  if (__pyx_t_1) {

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1028
 *     base = PyArray_BASE(arr)
 *     if base is NULL:
 *         return None             # <<<<<<<<<<<<<<
 *     return <object>base
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1027
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)
 *     if base is NULL:             # <<<<<<<<<<<<<<
 *         return None
 *     return <object>base
 */
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1029
 *     if base is NULL:
 *         return None
 *     return <object>base             # <<<<<<<<<<<<<<
 * 
 * # Versions of the import_* functions which are more suitable for
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_base));
  __pyx_r = ((PyObject *)__pyx_v_base);
  goto __pyx_L0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1025
 *     PyArray_SetBaseObject(arr, base)
 * 
 * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
 *     base = PyArray_BASE(arr)
 *     if base is NULL:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("numpy.get_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033
 * # Versions of the import_* functions which are more suitable for
 * # Cython code.
 * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_array()
 */

static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_array", 0);
  __Pyx_TraceCall("import_array", __pyx_f[2], 1033, 0, __PYX_ERR(2, 1033, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_array()
 *     except Exception:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1035
 * cdef inline int import_array() except -1:
 *     try:
 *         _import_array()             # <<<<<<<<<<<<<<
 *     except Exception:
 *         raise ImportError("numpy.core.multiarray failed to import")
 */
      __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1035, __pyx_L3_error)

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_array()
 *     except Exception:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1036
 *     try:
 *         _import_array()
 *     except Exception:             # <<<<<<<<<<<<<<
 *         raise ImportError("numpy.core.multiarray failed to import")
 * 
 */
    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1036, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037
 *         _import_array()
 *     except Exception:
 *         raise ImportError("numpy.core.multiarray failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_umath() except -1:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(2, 1037, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_array()
 *     except Exception:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033
 * # Versions of the import_* functions which are more suitable for
 * # Cython code.
 * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_array()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039
 *         raise ImportError("numpy.core.multiarray failed to import")
 * 
 * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_umath", 0);
  __Pyx_TraceCall("import_umath", __pyx_f[2], 1039, 0, __PYX_ERR(2, 1039, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1041
 * cdef inline int import_umath() except -1:
 *     try:
 *         _import_umath()             # <<<<<<<<<<<<<<
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")
 */
      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1041, __pyx_L3_error)

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1042
 *     try:
 *         _import_umath()
 *     except Exception:             # <<<<<<<<<<<<<<
 *         raise ImportError("numpy.core.umath failed to import")
 * 
 */
    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1042, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_ufunc() except -1:
 */
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(2, 1043, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039
 *         raise ImportError("numpy.core.multiarray failed to import")
 * 
 * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045
 *         raise ImportError("numpy.core.umath failed to import")
 * 
 * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
  int __pyx_r;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_ufunc", 0);
  __Pyx_TraceCall("import_ufunc", __pyx_f[2], 1045, 0, __PYX_ERR(2, 1045, __pyx_L1_error));

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1047
 * cdef inline int import_ufunc() except -1:
 *     try:
 *         _import_umath()             # <<<<<<<<<<<<<<
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")
 */
      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1047, __pyx_L3_error)

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1048
 *     try:
 *         _import_umath()
 *     except Exception:             # <<<<<<<<<<<<<<
 *         raise ImportError("numpy.core.umath failed to import")
 */
    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1048, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1049
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
 */
      __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)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(2, 1049, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045
 *         raise ImportError("numpy.core.umath failed to import")
 * 
 * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_TraceReturn(Py_None, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex;

static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)o);
  p->__pyx_vtab = __pyx_vtabptr_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
  p->vars = Py_None; Py_INCREF(Py_None);
  p->varSelCriteria = Py_None; Py_INCREF(Py_None);
  p->coinModel = ((struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *)Py_None); Py_INCREF(Py_None);
  p->cyLPModel = Py_None; Py_INCREF(Py_None);
  p->cbcModel = ((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)Py_None); Py_INCREF(Py_None);
  p->_Hessian = Py_None; Py_INCREF(Py_None);
  p->cyPivot = ((struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *)Py_None); Py_INCREF(Py_None);
  p->cyDualPivot = ((struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyObject *o) {
  struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *p = (struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->vars);
  Py_CLEAR(p->varSelCriteria);
  Py_CLEAR(p->coinModel);
  Py_CLEAR(p->cyLPModel);
  Py_CLEAR(p->cbcModel);
  Py_CLEAR(p->_Hessian);
  Py_CLEAR(p->cyPivot);
  Py_CLEAR(p->cyDualPivot);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *p = (struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)o;
  if (p->vars) {
    e = (*v)(p->vars, a); if (e) return e;
  }
  if (p->varSelCriteria) {
    e = (*v)(p->varSelCriteria, a); if (e) return e;
  }
  if (p->coinModel) {
    e = (*v)(((PyObject *)p->coinModel), a); if (e) return e;
  }
  if (p->cyLPModel) {
    e = (*v)(p->cyLPModel, a); if (e) return e;
  }
  if (p->cbcModel) {
    e = (*v)(((PyObject *)p->cbcModel), a); if (e) return e;
  }
  if (p->_Hessian) {
    e = (*v)(p->_Hessian, a); if (e) return e;
  }
  if (p->cyPivot) {
    e = (*v)(((PyObject *)p->cyPivot), a); if (e) return e;
  }
  if (p->cyDualPivot) {
    e = (*v)(((PyObject *)p->cyDualPivot), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *p = (struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *)o;
  tmp = ((PyObject*)p->vars);
  p->vars = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->varSelCriteria);
  p->varSelCriteria = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->coinModel);
  p->coinModel = ((struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cyLPModel);
  p->cyLPModel = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cbcModel);
  p->cbcModel = ((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_Hessian);
  p->_Hessian = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cyPivot);
  p->cyPivot = ((struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cyDualPivot);
  p->cyDualPivot = ((struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_basicVariables(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14basicVariables_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rhs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_3rhs_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_basisInverse(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12basisInverse_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_tableau(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7tableau_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objective(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_3__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objective(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9objective_1__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveCoefficients(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_3__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveCoefficients(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21objectiveCoefficients_1__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_iteration(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9iteration_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nRows(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nRows_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nConstraints(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12nConstraints_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nVariables(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10nVariables_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nCols(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5nCols_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_coefMatrix(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_coefMatrix(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10coefMatrix_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_matrix(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_matrix(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6matrix_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraints(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11constraints_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variableNames(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableNames_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variables(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9variables_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveValue(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14objectiveValue_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalVariableSolution(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22primalVariableSolution_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalVariableSolutionAll(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25primalVariableSolutionAll_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_solution(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8solution_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_cost(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4cost_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualVariableSolution(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20dualVariableSolution_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalConstraintSolution(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24primalConstraintSolution_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualConstraintSolution(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22dualConstraintSolution_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_reducedCosts(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_reducedCosts(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12reducedCosts_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveOffset(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveOffset(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15objectiveOffset_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesUpper(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesUpper(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesUpper_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesLower(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variablesLower(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14variablesLower_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsUpper(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsUpper(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsUpper_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsLower(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintsLower(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16constraintsLower_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_lower(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5lower_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_upper(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5upper_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variableScale(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13variableScale_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintScale(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15constraintScale_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_integerInformation(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18integerInformation_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_status(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6status_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_freeOrSuperBasicVarInds(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23freeOrSuperBasicVarInds_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_notBasicOrFixedOrFlaggedVarInds(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31notBasicOrFixedOrFlaggedVarInds_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFree(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9varIsFree_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsBasic(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsBasic_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsAtUpperBound(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtUpperBound_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsAtLowerBound(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17varIsAtLowerBound_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsSuperBasic(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15varIsSuperBasic_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFixed(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varIsFixed_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFlagged(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12varIsFlagged_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFree(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10varNotFree_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotBasic(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotBasic_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotAtUpperBound(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtUpperBound_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotAtLowerBound(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18varNotAtLowerBound_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotSuperBasic(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16varNotSuperBasic_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFixed(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11varNotFixed_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFlagged(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13varNotFlagged_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_Hessian(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_Hessian(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7Hessian_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualTolerance(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualTolerance(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13dualTolerance_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalTolerance(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalTolerance(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15primalTolerance_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_maxNumIteration(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_maxNumIteration(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15maxNumIteration_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_logLevel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_logLevel(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8logLevel_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_automaticScaling(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_automaticScaling(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16automaticScaling_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_scaling(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_scaling(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7scaling_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_infeasibilityCost(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_infeasibilityCost(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17infeasibilityCost_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_numberPrimalInfeasibilities(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27numberPrimalInfeasibilities_1__get__(o);
}

static PyObject *__pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_optimizationDirection(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_1__get__(o);
}

static int __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_optimizationDirection(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21optimizationDirection_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4cylp_2cy_12CyClpSimplex_CyClpSimplex[] = {
  {"getReducedCosts", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_5getReducedCosts, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_4getReducedCosts},
  {"getStatusArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_7getStatusArray, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_6getStatusArray},
  {"getRightHandSide", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_9getRightHandSide, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_8getRightHandSide},
  {"getStatusCode", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_11getStatusCode, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_10getStatusCode},
  {"getStatusString", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_13getStatusString, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_12getStatusString},
  {"setColumnLower", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_15setColumnLower, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_14setColumnLower},
  {"setColumnUpper", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_17setColumnUpper, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_16setColumnUpper},
  {"setRowLower", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_19setRowLower, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_18setRowLower},
  {"setRowUpper", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_21setRowUpper, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_20setRowUpper},
  {"useCustomPrimal", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_23useCustomPrimal, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_22useCustomPrimal},
  {"getUseCustomPrimal", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_25getUseCustomPrimal, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_24getUseCustomPrimal},
  {"flagged", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_27flagged, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_26flagged},
  {"setFlagged", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_29setFlagged, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_28setFlagged},
  {"largestDualError", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_31largestDualError, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_30largestDualError},
  {"pivotRow", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_33pivotRow, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_32pivotRow},
  {"setPivotRow", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_35setPivotRow, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_34setPivotRow},
  {"sequenceIn", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_37sequenceIn, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_36sequenceIn},
  {"setSequenceIn", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_39setSequenceIn, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_38setSequenceIn},
  {"getVariableNames", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_41getVariableNames, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_40getVariableNames},
  {"setVariableName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_43setVariableName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_42setVariableName},
  {"setConstraintName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_45setConstraintName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_44setConstraintName},
  {"getPivotVariable", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_47getPivotVariable, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_46getPivotVariable},
  {"CLP_getVarStatus", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_49CLP_getVarStatus, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_48CLP_getVarStatus},
  {"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},
  {"setVariableStatus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_53setVariableStatus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_52setVariableStatus},
  {"getVariableStatus", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_55getVariableStatus, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_54getVariableStatus},
  {"setConstraintStatus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_57setConstraintStatus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_56setConstraintStatus},
  {"getConstraintStatus", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_59getConstraintStatus, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_58getConstraintStatus},
  {"setColumnUpperArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_61setColumnUpperArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_60setColumnUpperArray},
  {"setColumnUpperFirstElements", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_63setColumnUpperFirstElements, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_62setColumnUpperFirstElements},
  {"setColumnLowerArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_65setColumnLowerArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_64setColumnLowerArray},
  {"setColumnLowerFirstElements", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_67setColumnLowerFirstElements, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_66setColumnLowerFirstElements},
  {"setColumnLowerSubset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_69setColumnLowerSubset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_68setColumnLowerSubset},
  {"setColumnUpperSubset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_71setColumnUpperSubset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_70setColumnUpperSubset},
  {"setRowUpperArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_73setRowUpperArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_72setRowUpperArray},
  {"setRowLowerArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_75setRowLowerArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_74setRowLowerArray},
  {"setObjectiveArray", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_77setObjectiveArray, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_76setObjectiveArray},
  {"CLP_dualConstraintSolution", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_79CLP_dualConstraintSolution, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_78CLP_dualConstraintSolution},
  {"initialSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_81initialSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_80initialSolve},
  {"initialPrimalSolve", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_83initialPrimalSolve, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_82initialPrimalSolve},
  {"initialDualSolve", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_85initialDualSolve, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_84initialDualSolve},
  {"addConstraint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_89addConstraint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_88addConstraint},
  {"removeConstraint", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_91removeConstraint, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_90removeConstraint},
  {"addVariable", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_93addVariable, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_92addVariable},
  {"removeVariable", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_95removeVariable, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_94removeVariable},
  {"getVarByName", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_97getVarByName, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_96getVarByName},
  {"getVarNameByIndex", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_99getVarNameByIndex, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_98getVarNameByIndex},
  {"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},
  {"CLP_deleteConstraints", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_103CLP_deleteConstraints, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_102CLP_deleteConstraints},
  {"CLP_deleteVariables", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_105CLP_deleteVariables, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_104CLP_deleteVariables},
  {"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},
  {"addVariables", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_109addVariables, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_108addVariables},
  {"addConstraints", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_111addConstraints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_110addConstraints},
  {"readMps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_113readMps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_112readMps},
  {"extractCyLPModel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_115extractCyLPModel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_114extractCyLPModel},
  {"_extractStartFinish", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_117_extractStartFinish, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_116_extractStartFinish},
  {"primal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_119primal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_118primal},
  {"dual", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_121dual, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_120dual},
  {"setPerturbation", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_123setPerturbation, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_122setPerturbation},
  {"resize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_125resize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_124resize},
  {"getBInvACol", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_127getBInvACol, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_126getBInvACol},
  {"getBInvCol", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_129getBInvCol, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_128getBInvCol},
  {"transposeTimes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_131transposeTimes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_130transposeTimes},
  {"transposeTimesSubset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_133transposeTimesSubset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_132transposeTimesSubset},
  {"transposeTimesSubsetAll", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_135transposeTimesSubsetAll, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_134transposeTimesSubsetAll},
  {"isInteger", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_137isInteger, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_136isInteger},
  {"setInteger", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_139setInteger, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_138setInteger},
  {"copyInIntegerInformation", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_141copyInIntegerInformation, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_140copyInIntegerInformation},
  {"replaceMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_143replaceMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_142replaceMatrix},
  {"loadQuadraticObjective", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_145loadQuadraticObjective, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_144loadQuadraticObjective},
  {"preSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_147preSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_146preSolve},
  {"postSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_149postSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_148postSolve},
  {"dualWithPresolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_151dualWithPresolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_150dualWithPresolve},
  {"primalWithPresolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_153primalWithPresolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_152primalWithPresolve},
  {"writeMps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_155writeMps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_154writeMps},
  {"writeLp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_157writeLp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_156writeLp},
  {"readLp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_159readLp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_158readLp},
  {"updateColumnFT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_161updateColumnFT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_160updateColumnFT},
  {"updateColumnTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_163updateColumnTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_162updateColumnTranspose},
  {"loadFromCyLPModel", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_165loadFromCyLPModel, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_164loadFromCyLPModel},
  {"evaluateAt", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_167evaluateAt, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_166evaluateAt},
  {"gradientAt", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_169gradientAt, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_168gradientAt},
  {"getCbcModel", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_171getCbcModel, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_170getCbcModel},
  {"isPivotAcceptable", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_173isPivotAcceptable, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_172isPivotAcceptable},
  {"checkVar", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_175checkVar, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_174checkVar},
  {"setPrimalColumnPivotAlgorithmToWolfe", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_177setPrimalColumnPivotAlgorithmToWolfe, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_176setPrimalColumnPivotAlgorithmToWolfe},
  {"setPrimalColumnPivotAlgorithmToPE", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_179setPrimalColumnPivotAlgorithmToPE, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_178setPrimalColumnPivotAlgorithmToPE},
  {"setPivotMethod", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_181setPivotMethod, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_180setPivotMethod},
  {"setDualPivotMethod", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_183setDualPivotMethod, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_182setDualPivotMethod},
  {"filterVars", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_185filterVars, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_184filterVars},
  {"setObjectiveCoefficient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_187setObjectiveCoefficient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_186setObjectiveCoefficient},
  {"partialPricing", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_189partialPricing, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_188partialPricing},
  {"setComplementarityList", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_191setComplementarityList, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_190setComplementarityList},
  {"getACol", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_193getACol, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_192getACol},
  {"vectorTimesB_1", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_195vectorTimesB_1, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_194vectorTimesB_1},
  {"argWeightedMax", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_197argWeightedMax, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_196argWeightedMax},
  {"getComplementarityList", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_199getComplementarityList, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_198getComplementarityList},
  {"setComplement", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_201setComplement, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_200setComplement},
  {"loadProblemFromCyCoinModel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_203loadProblemFromCyCoinModel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_202loadProblemFromCyCoinModel},
  {"loadProblem", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_205loadProblem, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_204loadProblem},
  {"getCoinInfinity", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_207getCoinInfinity, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_206getCoinInfinity},
  {"setBasisStatus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_209setBasisStatus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_208setBasisStatus},
  {"getBasisStatus", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_211getBasisStatus, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_210getBasisStatus},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_213__reduce_cython__, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_212__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_215__setstate_cython__, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_214__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4cylp_2cy_12CyClpSimplex_CyClpSimplex[] = {
  {(char *)"basicVariables", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_basicVariables, 0, (char *)0, 0},
  {(char *)"rhs", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rhs, 0, (char *)0, 0},
  {(char *)"basisInverse", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_basisInverse, 0, (char *)0, 0},
  {(char *)"tableau", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_tableau, 0, (char *)0, 0},
  {(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},
  {(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},
  {(char *)"iteration", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_iteration, 0, (char *)"\n        Number of iterations.\n        ", 0},
  {(char *)"nRows", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nRows, 0, (char *)"\n        Number of rows, constraints.\n        ", 0},
  {(char *)"nConstraints", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nConstraints, 0, (char *)"\n        Number of constraints, rows.\n        ", 0},
  {(char *)"nVariables", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nVariables, 0, (char *)"\n        Number of variables, columns.\n        ", 0},
  {(char *)"nCols", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_nCols, 0, (char *)"\n        Number of columns, variables.\n        ", 0},
  {(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},
  {(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},
  {(char *)"constraints", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraints, 0, (char *)"\n        Constraints.\n        ", 0},
  {(char *)"variableNames", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variableNames, 0, (char *)"\n        variable names\n        ", 0},
  {(char *)"variables", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variables, 0, (char *)"\n        Variables.\n        ", 0},
  {(char *)"objectiveValue", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_objectiveValue, 0, (char *)"\n        The objective value. Readonly.\n        ", 0},
  {(char *)"primalVariableSolution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalVariableSolution, 0, (char *)"\n        Solution to the primal variables.\n\n        :rtype: Numpy array\n        ", 0},
  {(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},
  {(char *)"solution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_solution, 0, (char *)"\n        Return the current point.\n\n        :rtype: Numpy array\n        ", 0},
  {(char *)"cost", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_cost, 0, (char *)"\n        Return the cost vector.\n\n        :rtype: Numpy array\n        ", 0},
  {(char *)"dualVariableSolution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualVariableSolution, 0, (char *)"\n        Variables' reduced costs\n\n        :rtype: Numpy array\n        ", 0},
  {(char *)"primalConstraintSolution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalConstraintSolution, 0, (char *)"\n        Slack variables' solution\n\n        :rtype: Numpy array\n        ", 0},
  {(char *)"dualConstraintSolution", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualConstraintSolution, 0, (char *)"\n        Dual variables' solution\n\n        :rtype: Numpy array\n        ", 0},
  {(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},
  {(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},
  {(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},
  {(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},
  {(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},
  {(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},
  {(char *)"lower", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_lower, 0, (char *)"\n        lower bounds (CLP's lower_)\n\n        :rtype: Numpy array\n        ", 0},
  {(char *)"upper", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_upper, 0, (char *)"\n        upper bounds (CLP's upper_)\n\n        :rtype: Numpy array\n        ", 0},
  {(char *)"variableScale", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_variableScale, 0, (char *)"\n        Array of variables' scale factors\n\n        :rtype: Numpy array\n        ", 0},
  {(char *)"constraintScale", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_constraintScale, 0, (char *)"\n        Array of constraints' scale factors\n\n        :rtype: Numpy array\n        ", 0},
  {(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},
  {(char *)"status", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_status, 0, (char *)"\n        A Numpy array of all the variables' status\n        ", 0},
  {(char *)"freeOrSuperBasicVarInds", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_freeOrSuperBasicVarInds, 0, (char *)"\n        The index set of variables that are *free* or *superbasic*.\n        ", 0},
  {(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},
  {(char *)"varIsFree", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFree, 0, (char *)"\n        The index set of variables that are *free*.\n        ", 0},
  {(char *)"varIsBasic", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsBasic, 0, (char *)"\n        The index set of variables that are *basic*.\n        ", 0},
  {(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},
  {(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},
  {(char *)"varIsSuperBasic", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsSuperBasic, 0, (char *)"\n        The index set of variables that are *superbasic*.\n        ", 0},
  {(char *)"varIsFixed", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFixed, 0, (char *)"\n        The index set of variables that are *fixed*.\n        ", 0},
  {(char *)"varIsFlagged", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varIsFlagged, 0, (char *)"\n        The index set of variables that are *flagged*.\n        ", 0},
  {(char *)"varNotFree", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFree, 0, (char *)"\n        The index set of variables that are NOT *free*.\n        ", 0},
  {(char *)"varNotBasic", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotBasic, 0, (char *)"\n        The index set of variables that are NOT *basic*.\n        ", 0},
  {(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},
  {(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},
  {(char *)"varNotSuperBasic", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotSuperBasic, 0, (char *)"\n        The index set of variables that are NOT *superbasic*.\n        ", 0},
  {(char *)"varNotFixed", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFixed, 0, (char *)"\n        The index set of variables that are NOT *fixed*.\n        ", 0},
  {(char *)"varNotFlagged", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_varNotFlagged, 0, (char *)"\n        The index set of variables that are NOT flagged.\n        ", 0},
  {(char *)"Hessian", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_Hessian, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_Hessian, (char *)0, 0},
  {(char *)"dualTolerance", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualTolerance, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualTolerance, (char *)0, 0},
  {(char *)"primalTolerance", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalTolerance, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalTolerance, (char *)0, 0},
  {(char *)"maxNumIteration", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_maxNumIteration, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_maxNumIteration, (char *)0, 0},
  {(char *)"logLevel", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_logLevel, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_logLevel, (char *)0, 0},
  {(char *)"automaticScaling", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_automaticScaling, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_automaticScaling, (char *)0, 0},
  {(char *)"scaling", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_scaling, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_scaling, (char *)0, 0},
  {(char *)"infeasibilityCost", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_infeasibilityCost, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_infeasibilityCost, (char *)0, 0},
  {(char *)"numberPrimalInfeasibilities", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_numberPrimalInfeasibilities, 0, (char *)0, 0},
  {(char *)"optimizationDirection", __pyx_getprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_optimizationDirection, __pyx_setprop_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_optimizationDirection, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_CyClpSimplex = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  0, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  __pyx_pw_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_87__iadd__, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex = {
  PyVarObject_HEAD_INIT(0, 0)
  "cylp.cy.CyClpSimplex.CyClpSimplex", /*tp_name*/
  sizeof(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  &__pyx_tp_as_number_CyClpSimplex, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\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*/
  __pyx_tp_traverse_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_traverse*/
  __pyx_tp_clear_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cylp_2cy_12CyClpSimplex_CyClpSimplex, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_VarStatus(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_4cylp_2cy_12CyClpSimplex_VarStatus(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  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))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4cylp_2cy_12CyClpSimplex_VarStatus[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_1__reduce_cython__, METH_NOARGS, __pyx_doc_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_12CyClpSimplex_9VarStatus_3__setstate_cython__, METH_O, __pyx_doc_4cylp_2cy_12CyClpSimplex_9VarStatus_2__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus = {
  PyVarObject_HEAD_INIT(0, 0)
  "cylp.cy.CyClpSimplex.VarStatus", /*tp_name*/
  sizeof(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4cylp_2cy_12CyClpSimplex_VarStatus, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4cylp_2cy_12CyClpSimplex_VarStatus, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4cylp_2cy_12CyClpSimplex_VarStatus, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyMethodDef __pyx_methods[] = {
  {"cydot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4cylp_2cy_12CyClpSimplex_3cydot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4cylp_2cy_12CyClpSimplex_2cydot},
  {0, 0, 0, 0}
};

#if PY_MAJOR_VERSION >= 3
#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_CyClpSimplex(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_CyClpSimplex},
  {0, NULL}
};
#endif

static struct PyModuleDef __pyx_moduledef = {
    PyModuleDef_HEAD_INIT,
    "CyClpSimplex",
    0, /* m_doc */
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    0, /* m_size */
  #else
    -1, /* m_size */
  #endif
    __pyx_methods /* m_methods */,
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    __pyx_moduledef_slots, /* m_slots */
  #else
    NULL, /* m_reload */
  #endif
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_n_s_A, __pyx_k_A, sizeof(__pyx_k_A), 0, 0, 1, 1},
  {&__pyx_n_s_B, __pyx_k_B, sizeof(__pyx_k_B), 0, 0, 1, 1},
  {&__pyx_n_s_CLP_deleteConstraints, __pyx_k_CLP_deleteConstraints, sizeof(__pyx_k_CLP_deleteConstraints), 0, 0, 1, 1},
  {&__pyx_n_s_CLP_getVarStatus, __pyx_k_CLP_getVarStatus, sizeof(__pyx_k_CLP_getVarStatus), 0, 0, 1, 1},
  {&__pyx_n_s_CLP_setVarStatus, __pyx_k_CLP_setVarStatus, sizeof(__pyx_k_CLP_setVarStatus), 0, 0, 1, 1},
  {&__pyx_n_s_CLP_variableStatusEnum, __pyx_k_CLP_variableStatusEnum, sizeof(__pyx_k_CLP_variableStatusEnum), 0, 0, 1, 1},
  {&__pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_p, __pyx_k_CyClpPrimalColumnPivotBase_pyx_p, sizeof(__pyx_k_CyClpPrimalColumnPivotBase_pyx_p), 0, 0, 1, 0},
  {&__pyx_n_s_CyClpSimplex, __pyx_k_CyClpSimplex, sizeof(__pyx_k_CyClpSimplex), 0, 0, 1, 1},
  {&__pyx_kp_u_CyClpSimplex_dual_line_1577, __pyx_k_CyClpSimplex_dual_line_1577, sizeof(__pyx_k_CyClpSimplex_dual_line_1577), 0, 1, 0, 0},
  {&__pyx_kp_u_CyClpSimplex_initialDualSolve_li, __pyx_k_CyClpSimplex_initialDualSolve_li, sizeof(__pyx_k_CyClpSimplex_initialDualSolve_li), 0, 1, 0, 0},
  {&__pyx_kp_u_CyClpSimplex_initialPrimalSolve, __pyx_k_CyClpSimplex_initialPrimalSolve, sizeof(__pyx_k_CyClpSimplex_initialPrimalSolve), 0, 1, 0, 0},
  {&__pyx_kp_u_CyClpSimplex_initialSolve_line_1, __pyx_k_CyClpSimplex_initialSolve_line_1, sizeof(__pyx_k_CyClpSimplex_initialSolve_line_1), 0, 1, 0, 0},
  {&__pyx_kp_u_CyClpSimplex_loadFromCyLPModel_l, __pyx_k_CyClpSimplex_loadFromCyLPModel_l, sizeof(__pyx_k_CyClpSimplex_loadFromCyLPModel_l), 0, 1, 0, 0},
  {&__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},
  {&__pyx_kp_s_CyClpSimplex_pyx_addConstraint_C, __pyx_k_CyClpSimplex_pyx_addConstraint_C, sizeof(__pyx_k_CyClpSimplex_pyx_addConstraint_C), 0, 0, 1, 0},
  {&__pyx_kp_s_CyClpSimplex_pyx_deleteConstrain, __pyx_k_CyClpSimplex_pyx_deleteConstrain, sizeof(__pyx_k_CyClpSimplex_pyx_deleteConstrain), 0, 0, 1, 0},
  {&__pyx_kp_s_CyClpSimplex_pyx_deleteVariables, __pyx_k_CyClpSimplex_pyx_deleteVariables, sizeof(__pyx_k_CyClpSimplex_pyx_deleteVariables), 0, 0, 1, 0},
  {&__pyx_kp_u_CyClpSimplex_setConstraintStatus, __pyx_k_CyClpSimplex_setConstraintStatus, sizeof(__pyx_k_CyClpSimplex_setConstraintStatus), 0, 1, 0, 0},
  {&__pyx_kp_u_CyClpSimplex_setInteger_line_167, __pyx_k_CyClpSimplex_setInteger_line_167, sizeof(__pyx_k_CyClpSimplex_setInteger_line_167), 0, 1, 0, 0},
  {&__pyx_kp_u_CyClpSimplex_setVariableStatus_l, __pyx_k_CyClpSimplex_setVariableStatus_l, sizeof(__pyx_k_CyClpSimplex_setVariableStatus_l), 0, 1, 0, 0},
  {&__pyx_n_s_CyLPArray, __pyx_k_CyLPArray, sizeof(__pyx_k_CyLPArray), 0, 0, 1, 1},
  {&__pyx_n_s_CyLPModel, __pyx_k_CyLPModel, sizeof(__pyx_k_CyLPModel), 0, 0, 1, 1},
  {&__pyx_n_s_CyLPSolution, __pyx_k_CyLPSolution, sizeof(__pyx_k_CyLPSolution), 0, 0, 1, 1},
  {&__pyx_n_s_CyLPVar, __pyx_k_CyLPVar, sizeof(__pyx_k_CyLPVar), 0, 0, 1, 1},
  {&__pyx_n_s_D, __pyx_k_D, sizeof(__pyx_k_D), 0, 0, 1, 1},
  {&__pyx_n_s_DualPivotPythonBase, __pyx_k_DualPivotPythonBase, sizeof(__pyx_k_DualPivotPythonBase), 0, 0, 1, 1},
  {&__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},
  {&__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},
  {&__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},
  {&__pyx_n_s_Hessian, __pyx_k_Hessian, sizeof(__pyx_k_Hessian), 0, 0, 1, 1},
  {&__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},
  {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
  {&__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},
  {&__pyx_n_s_IntToStatus, __pyx_k_IntToStatus, sizeof(__pyx_k_IntToStatus), 0, 0, 1, 1},
  {&__pyx_kp_s_No_CyClpSimplex_cyLPModel, __pyx_k_No_CyClpSimplex_cyLPModel, sizeof(__pyx_k_No_CyClpSimplex_cyLPModel), 0, 0, 1, 0},
  {&__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},
  {&__pyx_kp_s_No_such_constraint_s, __pyx_k_No_such_constraint_s, sizeof(__pyx_k_No_such_constraint_s), 0, 0, 1, 0},
  {&__pyx_kp_s_No_such_variable_s, __pyx_k_No_such_variable_s, sizeof(__pyx_k_No_such_variable_s), 0, 0, 1, 0},
  {&__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},
  {&__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},
  {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
  {&__pyx_n_s_PivotPythonBase, __pyx_k_PivotPythonBase, sizeof(__pyx_k_PivotPythonBase), 0, 0, 1, 1},
  {&__pyx_kp_s_Presolve_says_problem_infeasible, __pyx_k_Presolve_says_problem_infeasible, sizeof(__pyx_k_Presolve_says_problem_infeasible), 0, 0, 1, 0},
  {&__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},
  {&__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},
  {&__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},
  {&__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},
  {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
  {&__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},
  {&__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},
  {&__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},
  {&__pyx_n_s_StatusToInt, __pyx_k_StatusToInt, sizeof(__pyx_k_StatusToInt), 0, 0, 1, 1},
  {&__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},
  {&__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},
  {&__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},
  {&__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},
  {&__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},
  {&__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},
  {&__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},
  {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
  {&__pyx_n_s_VarStatus, __pyx_k_VarStatus, sizeof(__pyx_k_VarStatus), 0, 0, 1, 1},
  {&__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},
  {&__pyx_kp_s__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 0, 1, 0},
  {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1},
  {&__pyx_n_s_addConstraint, __pyx_k_addConstraint, sizeof(__pyx_k_addConstraint), 0, 0, 1, 1},
  {&__pyx_n_s_addConstraints, __pyx_k_addConstraints, sizeof(__pyx_k_addConstraints), 0, 0, 1, 1},
  {&__pyx_n_s_addMpsNames, __pyx_k_addMpsNames, sizeof(__pyx_k_addMpsNames), 0, 0, 1, 1},
  {&__pyx_n_s_addVariable, __pyx_k_addVariable, sizeof(__pyx_k_addVariable), 0, 0, 1, 1},
  {&__pyx_n_s_any, __pyx_k_any, sizeof(__pyx_k_any), 0, 0, 1, 1},
  {&__pyx_n_s_appendCol, __pyx_k_appendCol, sizeof(__pyx_k_appendCol), 0, 0, 1, 1},
  {&__pyx_n_s_appendRow, __pyx_k_appendRow, sizeof(__pyx_k_appendRow), 0, 0, 1, 1},
  {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1},
  {&__pyx_n_s_arr, __pyx_k_arr, sizeof(__pyx_k_arr), 0, 0, 1, 1},
  {&__pyx_n_s_arr_ind, __pyx_k_arr_ind, sizeof(__pyx_k_arr_ind), 0, 0, 1, 1},
  {&__pyx_n_s_array, __pyx_k_array, sizeof(__pyx_k_array), 0, 0, 1, 1},
  {&__pyx_n_s_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 0, 1, 1},
  {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1},
  {&__pyx_n_s_atLowerBound, __pyx_k_atLowerBound, sizeof(__pyx_k_atLowerBound), 0, 0, 1, 1},
  {&__pyx_n_s_atUpperBound, __pyx_k_atUpperBound, sizeof(__pyx_k_atUpperBound), 0, 0, 1, 1},
  {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1},
  {&__pyx_n_s_basic, __pyx_k_basic, sizeof(__pyx_k_basic), 0, 0, 1, 1},
  {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1},
  {&__pyx_n_s_checkVar, __pyx_k_checkVar, sizeof(__pyx_k_checkVar), 0, 0, 1, 1},
  {&__pyx_n_s_cl, __pyx_k_cl, sizeof(__pyx_k_cl), 0, 0, 1, 1},
  {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
  {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
  {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
  {&__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},
  {&__pyx_n_s_col, __pyx_k_col, sizeof(__pyx_k_col), 0, 0, 1, 1},
  {&__pyx_n_s_colArray, __pyx_k_colArray, sizeof(__pyx_k_colArray), 0, 0, 1, 1},
  {&__pyx_n_s_collb, __pyx_k_collb, sizeof(__pyx_k_collb), 0, 0, 1, 1},
  {&__pyx_n_s_colub, __pyx_k_colub, sizeof(__pyx_k_colub), 0, 0, 1, 1},
  {&__pyx_n_s_columnLower, __pyx_k_columnLower, sizeof(__pyx_k_columnLower), 0, 0, 1, 1},
  {&__pyx_n_s_columnStarts, __pyx_k_columnStarts, sizeof(__pyx_k_columnStarts), 0, 0, 1, 1},
  {&__pyx_n_s_columnUpper, __pyx_k_columnUpper, sizeof(__pyx_k_columnUpper), 0, 0, 1, 1},
  {&__pyx_n_s_columns, __pyx_k_columns, sizeof(__pyx_k_columns), 0, 0, 1, 1},
  {&__pyx_n_s_cons, __pyx_k_cons, sizeof(__pyx_k_cons), 0, 0, 1, 1},
  {&__pyx_n_s_constInd, __pyx_k_constInd, sizeof(__pyx_k_constInd), 0, 0, 1, 1},
  {&__pyx_n_s_constIndex, __pyx_k_constIndex, sizeof(__pyx_k_constIndex), 0, 0, 1, 1},
  {&__pyx_n_s_constraints, __pyx_k_constraints, sizeof(__pyx_k_constraints), 0, 0, 1, 1},
  {&__pyx_n_s_constraintsLower, __pyx_k_constraintsLower, sizeof(__pyx_k_constraintsLower), 0, 0, 1, 1},
  {&__pyx_n_s_constraintsUpper, __pyx_k_constraintsUpper, sizeof(__pyx_k_constraintsUpper), 0, 0, 1, 1},
  {&__pyx_n_s_coo_matrix, __pyx_k_coo_matrix, sizeof(__pyx_k_coo_matrix), 0, 0, 1, 1},
  {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
  {&__pyx_n_s_csc_matrixPlus, __pyx_k_csc_matrixPlus, sizeof(__pyx_k_csc_matrixPlus), 0, 0, 1, 1},
  {&__pyx_n_s_cstat, __pyx_k_cstat, sizeof(__pyx_k_cstat), 0, 0, 1, 1},
  {&__pyx_n_s_curpath, __pyx_k_curpath, sizeof(__pyx_k_curpath), 0, 0, 1, 1},
  {&__pyx_n_s_currentframe, __pyx_k_currentframe, sizeof(__pyx_k_currentframe), 0, 0, 1, 1},
  {&__pyx_n_s_cyLPModel, __pyx_k_cyLPModel, sizeof(__pyx_k_cyLPModel), 0, 0, 1, 1},
  {&__pyx_n_s_cylp_cy, __pyx_k_cylp_cy, sizeof(__pyx_k_cylp_cy), 0, 0, 1, 1},
  {&__pyx_n_s_cylp_cy_CyClpSimplex, __pyx_k_cylp_cy_CyClpSimplex, sizeof(__pyx_k_cylp_cy_CyClpSimplex), 0, 0, 1, 1},
  {&__pyx_kp_s_cylp_cy_CyClpSimplex_pyx, __pyx_k_cylp_cy_CyClpSimplex_pyx, sizeof(__pyx_k_cylp_cy_CyClpSimplex_pyx), 0, 0, 1, 0},
  {&__pyx_n_s_cylp_py_modeling_CyLPModel, __pyx_k_cylp_py_modeling_CyLPModel, sizeof(__pyx_k_cylp_py_modeling_CyLPModel), 0, 0, 1, 1},
  {&__pyx_n_s_cylp_py_pivots_DualPivotPythonBa, __pyx_k_cylp_py_pivots_DualPivotPythonBa, sizeof(__pyx_k_cylp_py_pivots_DualPivotPythonBa), 0, 0, 1, 1},
  {&__pyx_n_s_cylp_py_pivots_PivotPythonBase, __pyx_k_cylp_py_pivots_PivotPythonBase, sizeof(__pyx_k_cylp_py_pivots_PivotPythonBase), 0, 0, 1, 1},
  {&__pyx_n_s_cylp_py_utils_sparseUtil, __pyx_k_cylp_py_utils_sparseUtil, sizeof(__pyx_k_cylp_py_utils_sparseUtil), 0, 0, 1, 1},
  {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
  {&__pyx_n_s_decimals, __pyx_k_decimals, sizeof(__pyx_k_decimals), 0, 0, 1, 1},
  {&__pyx_n_s_deleteCurrent, __pyx_k_deleteCurrent, sizeof(__pyx_k_deleteCurrent), 0, 0, 1, 1},
  {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
  {&__pyx_n_s_dim, __pyx_k_dim, sizeof(__pyx_k_dim), 0, 0, 1, 1},
  {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1},
  {&__pyx_n_s_dirname, __pyx_k_dirname, sizeof(__pyx_k_dirname), 0, 0, 1, 1},
  {&__pyx_n_s_doRowObjective, __pyx_k_doRowObjective, sizeof(__pyx_k_doRowObjective), 0, 0, 1, 1},
  {&__pyx_n_s_dot, __pyx_k_dot, sizeof(__pyx_k_dot), 0, 0, 1, 1},
  {&__pyx_n_s_double, __pyx_k_double, sizeof(__pyx_k_double), 0, 0, 1, 1},
  {&__pyx_n_s_dropNames, __pyx_k_dropNames, sizeof(__pyx_k_dropNames), 0, 0, 1, 1},
  {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1},
  {&__pyx_kp_s_dualPivotMethodObject_should_be, __pyx_k_dualPivotMethodObject_should_be, sizeof(__pyx_k_dualPivotMethodObject_should_be), 0, 0, 1, 0},
  {&__pyx_n_s_dualWithPresolve, __pyx_k_dualWithPresolve, sizeof(__pyx_k_dualWithPresolve), 0, 0, 1, 1},
  {&__pyx_kp_s_dual_infeasible, __pyx_k_dual_infeasible, sizeof(__pyx_k_dual_infeasible), 0, 0, 1, 0},
  {&__pyx_n_s_elementIndex, __pyx_k_elementIndex, sizeof(__pyx_k_elementIndex), 0, 0, 1, 1},
  {&__pyx_n_s_elementValue, __pyx_k_elementValue, sizeof(__pyx_k_elementValue), 0, 0, 1, 1},
  {&__pyx_n_s_elements, __pyx_k_elements, sizeof(__pyx_k_elements), 0, 0, 1, 1},
  {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1},
  {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
  {&__pyx_n_s_end, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1},
  {&__pyx_n_s_epsilon, __pyx_k_epsilon, sizeof(__pyx_k_epsilon), 0, 0, 1, 1},
  {&__pyx_n_s_extension, __pyx_k_extension, sizeof(__pyx_k_extension), 0, 0, 1, 1},
  {&__pyx_n_s_extractStartFinish, __pyx_k_extractStartFinish, sizeof(__pyx_k_extractStartFinish), 0, 0, 1, 1},
  {&__pyx_n_s_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1},
  {&__pyx_n_s_feasibilityTolerance, __pyx_k_feasibilityTolerance, sizeof(__pyx_k_feasibilityTolerance), 0, 0, 1, 1},
  {&__pyx_n_s_fileName, __pyx_k_fileName, sizeof(__pyx_k_fileName), 0, 0, 1, 1},
  {&__pyx_n_s_filename, __pyx_k_filename, sizeof(__pyx_k_filename), 0, 0, 1, 1},
  {&__pyx_n_s_filterVars, __pyx_k_filterVars, sizeof(__pyx_k_filterVars), 0, 0, 1, 1},
  {&__pyx_n_s_fixed, __pyx_k_fixed, sizeof(__pyx_k_fixed), 0, 0, 1, 1},
  {&__pyx_n_s_formatType, __pyx_k_formatType, sizeof(__pyx_k_formatType), 0, 0, 1, 1},
  {&__pyx_n_s_free, __pyx_k_free, sizeof(__pyx_k_free), 0, 0, 1, 1},
  {&__pyx_n_s_fromInd, __pyx_k_fromInd, sizeof(__pyx_k_fromInd), 0, 0, 1, 1},
  {&__pyx_n_s_getACol, __pyx_k_getACol, sizeof(__pyx_k_getACol), 0, 0, 1, 1},
  {&__pyx_n_s_getBInvACol, __pyx_k_getBInvACol, sizeof(__pyx_k_getBInvACol), 0, 0, 1, 1},
  {&__pyx_n_s_getBInvCol, __pyx_k_getBInvCol, sizeof(__pyx_k_getBInvCol), 0, 0, 1, 1},
  {&__pyx_n_s_getComplementarityList, __pyx_k_getComplementarityList, sizeof(__pyx_k_getComplementarityList), 0, 0, 1, 1},
  {&__pyx_n_s_getModelExample, __pyx_k_getModelExample, sizeof(__pyx_k_getModelExample), 0, 0, 1, 1},
  {&__pyx_n_s_getMpsExample, __pyx_k_getMpsExample, sizeof(__pyx_k_getMpsExample), 0, 0, 1, 1},
  {&__pyx_n_s_getPivotVariable, __pyx_k_getPivotVariable, sizeof(__pyx_k_getPivotVariable), 0, 0, 1, 1},
  {&__pyx_n_s_getReducedCosts, __pyx_k_getReducedCosts, sizeof(__pyx_k_getReducedCosts), 0, 0, 1, 1},
  {&__pyx_n_s_getRightHandSide, __pyx_k_getRightHandSide, sizeof(__pyx_k_getRightHandSide), 0, 0, 1, 1},
  {&__pyx_n_s_getStatusArray, __pyx_k_getStatusArray, sizeof(__pyx_k_getStatusArray), 0, 0, 1, 1},
  {&__pyx_n_s_getStatusCode, __pyx_k_getStatusCode, sizeof(__pyx_k_getStatusCode), 0, 0, 1, 1},
  {&__pyx_n_s_getVarByName, __pyx_k_getVarByName, sizeof(__pyx_k_getVarByName), 0, 0, 1, 1},
  {&__pyx_n_s_getVariableNames, __pyx_k_getVariableNames, sizeof(__pyx_k_getVariableNames), 0, 0, 1, 1},
  {&__pyx_n_s_getfile, __pyx_k_getfile, sizeof(__pyx_k_getfile), 0, 0, 1, 1},
  {&__pyx_n_s_getitem, __pyx_k_getitem, sizeof(__pyx_k_getitem), 0, 0, 1, 1},
  {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
  {&__pyx_n_s_h, __pyx_k_h, sizeof(__pyx_k_h), 0, 0, 1, 1},
  {&__pyx_n_s_hasConst, __pyx_k_hasConst, sizeof(__pyx_k_hasConst), 0, 0, 1, 1},
  {&__pyx_n_s_hasGaps, __pyx_k_hasGaps, sizeof(__pyx_k_hasGaps), 0, 0, 1, 1},
  {&__pyx_n_s_hasVar, __pyx_k_hasVar, sizeof(__pyx_k_hasVar), 0, 0, 1, 1},
  {&__pyx_n_s_ifValuesPass, __pyx_k_ifValuesPass, sizeof(__pyx_k_ifValuesPass), 0, 0, 1, 1},
  {&__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},
  {&__pyx_n_s_ignore, __pyx_k_ignore, sizeof(__pyx_k_ignore), 0, 0, 1, 1},
  {&__pyx_n_s_ignoreErrors, __pyx_k_ignoreErrors, sizeof(__pyx_k_ignoreErrors), 0, 0, 1, 1},
  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
  {&__pyx_n_s_ind, __pyx_k_ind, sizeof(__pyx_k_ind), 0, 0, 1, 1},
  {&__pyx_n_s_indices, __pyx_k_indices, sizeof(__pyx_k_indices), 0, 0, 1, 1},
  {&__pyx_n_s_indicesOfIndices, __pyx_k_indicesOfIndices, sizeof(__pyx_k_indicesOfIndices), 0, 0, 1, 1},
  {&__pyx_n_s_indptr, __pyx_k_indptr, sizeof(__pyx_k_indptr), 0, 0, 1, 1},
  {&__pyx_n_s_inds, __pyx_k_inds, sizeof(__pyx_k_inds), 0, 0, 1, 1},
  {&__pyx_kp_s_input_p0033_mps, __pyx_k_input_p0033_mps, sizeof(__pyx_k_input_p0033_mps), 0, 0, 1, 0},
  {&__pyx_n_s_inspect, __pyx_k_inspect, sizeof(__pyx_k_inspect), 0, 0, 1, 1},
  {&__pyx_n_s_int32, __pyx_k_int32, sizeof(__pyx_k_int32), 0, 0, 1, 1},
  {&__pyx_n_s_isInt, __pyx_k_isInt, sizeof(__pyx_k_isInt), 0, 0, 1, 1},
  {&__pyx_n_s_isPivotAcceptable, __pyx_k_isPivotAcceptable, sizeof(__pyx_k_isPivotAcceptable), 0, 0, 1, 1},
  {&__pyx_n_s_isRange, __pyx_k_isRange, sizeof(__pyx_k_isRange), 0, 0, 1, 1},
  {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1},
  {&__pyx_n_s_izip, __pyx_k_izip, sizeof(__pyx_k_izip), 0, 0, 1, 1},
  {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1},
  {&__pyx_n_s_keepIntegers, __pyx_k_keepIntegers, sizeof(__pyx_k_keepIntegers), 0, 0, 1, 1},
  {&__pyx_n_s_keepNames, __pyx_k_keepNames, sizeof(__pyx_k_keepNames), 0, 0, 1, 1},
  {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1},
  {&__pyx_n_s_loadFromCyLPModel, __pyx_k_loadFromCyLPModel, sizeof(__pyx_k_loadFromCyLPModel), 0, 0, 1, 1},
  {&__pyx_n_s_loadQuadraticObjective, __pyx_k_loadQuadraticObjective, sizeof(__pyx_k_loadQuadraticObjective), 0, 0, 1, 1},
  {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1},
  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
  {&__pyx_n_s_majorDim, __pyx_k_majorDim, sizeof(__pyx_k_majorDim), 0, 0, 1, 1},
  {&__pyx_n_s_makeMatrices, __pyx_k_makeMatrices, sizeof(__pyx_k_makeMatrices), 0, 0, 1, 1},
  {&__pyx_n_s_matrix, __pyx_k_matrix, sizeof(__pyx_k_matrix), 0, 0, 1, 1},
  {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1},
  {&__pyx_n_s_min, __pyx_k_min, sizeof(__pyx_k_min), 0, 0, 1, 1},
  {&__pyx_n_s_minorDim, __pyx_k_minorDim, sizeof(__pyx_k_minorDim), 0, 0, 1, 1},
  {&__pyx_n_s_model, __pyx_k_model, sizeof(__pyx_k_model), 0, 0, 1, 1},
  {&__pyx_n_s_modelObject, __pyx_k_modelObject, sizeof(__pyx_k_modelObject), 0, 0, 1, 1},
  {&__pyx_kp_b_mps, __pyx_k_mps, sizeof(__pyx_k_mps), 0, 0, 0, 0},
  {&__pyx_n_s_mpsNames, __pyx_k_mpsNames, sizeof(__pyx_k_mpsNames), 0, 0, 1, 1},
  {&__pyx_n_s_nCons, __pyx_k_nCons, sizeof(__pyx_k_nCons), 0, 0, 1, 1},
  {&__pyx_n_s_nConstraints, __pyx_k_nConstraints, sizeof(__pyx_k_nConstraints), 0, 0, 1, 1},
  {&__pyx_n_s_nRows, __pyx_k_nRows, sizeof(__pyx_k_nRows), 0, 0, 1, 1},
  {&__pyx_n_s_nVariables, __pyx_k_nVariables, sizeof(__pyx_k_nVariables), 0, 0, 1, 1},
  {&__pyx_n_s_nVars, __pyx_k_nVars, sizeof(__pyx_k_nVars), 0, 0, 1, 1},
  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
  {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
  {&__pyx_n_s_ncol, __pyx_k_ncol, sizeof(__pyx_k_ncol), 0, 0, 1, 1},
  {&__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},
  {&__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},
  {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
  {&__pyx_n_s_newNumberColumns, __pyx_k_newNumberColumns, sizeof(__pyx_k_newNumberColumns), 0, 0, 1, 1},
  {&__pyx_n_s_newNumberRows, __pyx_k_newNumberRows, sizeof(__pyx_k_newNumberRows), 0, 0, 1, 1},
  {&__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},
  {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1},
  {&__pyx_n_s_number, __pyx_k_number, sizeof(__pyx_k_number), 0, 0, 1, 1},
  {&__pyx_n_s_numberAcross, __pyx_k_numberAcross, sizeof(__pyx_k_numberAcross), 0, 0, 1, 1},
  {&__pyx_n_s_numberInColumn, __pyx_k_numberInColumn, sizeof(__pyx_k_numberInColumn), 0, 0, 1, 1},
  {&__pyx_n_s_numberInRow, __pyx_k_numberInRow, sizeof(__pyx_k_numberInRow), 0, 0, 1, 1},
  {&__pyx_n_s_numberPasses, __pyx_k_numberPasses, sizeof(__pyx_k_numberPasses), 0, 0, 1, 1},
  {&__pyx_n_s_numberWanted, __pyx_k_numberWanted, sizeof(__pyx_k_numberWanted), 0, 0, 1, 1},
  {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
  {&__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},
  {&__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},
  {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
  {&__pyx_n_s_objSense, __pyx_k_objSense, sizeof(__pyx_k_objSense), 0, 0, 1, 1},
  {&__pyx_n_s_objective, __pyx_k_objective, sizeof(__pyx_k_objective), 0, 0, 1, 1},
  {&__pyx_n_s_objectiveCoefficients, __pyx_k_objectiveCoefficients, sizeof(__pyx_k_objectiveCoefficients), 0, 0, 1, 1},
  {&__pyx_n_s_objectiveOffset, __pyx_k_objectiveOffset, sizeof(__pyx_k_objectiveOffset), 0, 0, 1, 1},
  {&__pyx_n_s_on, __pyx_k_on, sizeof(__pyx_k_on), 0, 0, 1, 1},
  {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1},
  {&__pyx_n_s_optimal, __pyx_k_optimal, sizeof(__pyx_k_optimal), 0, 0, 1, 1},
  {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1},
  {&__pyx_n_s_os_path, __pyx_k_os_path, sizeof(__pyx_k_os_path), 0, 0, 1, 1},
  {&__pyx_n_s_parent, __pyx_k_parent, sizeof(__pyx_k_parent), 0, 0, 1, 1},
  {&__pyx_n_s_parentDim, __pyx_k_parentDim, sizeof(__pyx_k_parentDim), 0, 0, 1, 1},
  {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1},
  {&__pyx_n_s_pi, __pyx_k_pi, sizeof(__pyx_k_pi), 0, 0, 1, 1},
  {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
  {&__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},
  {&__pyx_n_s_presolve, __pyx_k_presolve, sizeof(__pyx_k_presolve), 0, 0, 1, 1},
  {&__pyx_n_s_primalWithPresolve, __pyx_k_primalWithPresolve, sizeof(__pyx_k_primalWithPresolve), 0, 0, 1, 1},
  {&__pyx_kp_s_primal_infeasible, __pyx_k_primal_infeasible, sizeof(__pyx_k_primal_infeasible), 0, 0, 1, 0},
  {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1},
  {&__pyx_n_s_problemStatus, __pyx_k_problemStatus, sizeof(__pyx_k_problemStatus), 0, 0, 1, 1},
  {&__pyx_n_s_product, __pyx_k_product, sizeof(__pyx_k_product), 0, 0, 1, 1},
  {&__pyx_n_s_pvdims, __pyx_k_pvdims, sizeof(__pyx_k_pvdims), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_VarStatus, __pyx_k_pyx_unpickle_VarStatus, sizeof(__pyx_k_pyx_unpickle_VarStatus), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
  {&__pyx_kp_b_qps, __pyx_k_qps, sizeof(__pyx_k_qps), 0, 0, 0, 0},
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
  {&__pyx_n_s_readMps, __pyx_k_readMps, sizeof(__pyx_k_readMps), 0, 0, 1, 1},
  {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
  {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
  {&__pyx_n_s_regionSparse1, __pyx_k_regionSparse1, sizeof(__pyx_k_regionSparse1), 0, 0, 1, 1},
  {&__pyx_n_s_regionSparse2, __pyx_k_regionSparse2, sizeof(__pyx_k_regionSparse2), 0, 0, 1, 1},
  {&__pyx_n_s_removeConstraint, __pyx_k_removeConstraint, sizeof(__pyx_k_removeConstraint), 0, 0, 1, 1},
  {&__pyx_n_s_removeGaps, __pyx_k_removeGaps, sizeof(__pyx_k_removeGaps), 0, 0, 1, 1},
  {&__pyx_n_s_removeVariable, __pyx_k_removeVariable, sizeof(__pyx_k_removeVariable), 0, 0, 1, 1},
  {&__pyx_n_s_replaceMatrix, __pyx_k_replaceMatrix, sizeof(__pyx_k_replaceMatrix), 0, 0, 1, 1},
  {&__pyx_n_s_resize, __pyx_k_resize, sizeof(__pyx_k_resize), 0, 0, 1, 1},
  {&__pyx_n_s_reverseVarSearch, __pyx_k_reverseVarSearch, sizeof(__pyx_k_reverseVarSearch), 0, 0, 1, 1},
  {&__pyx_n_s_row, __pyx_k_row, sizeof(__pyx_k_row), 0, 0, 1, 1},
  {&__pyx_n_s_rowLower, __pyx_k_rowLower, sizeof(__pyx_k_rowLower), 0, 0, 1, 1},
  {&__pyx_n_s_rowObjective, __pyx_k_rowObjective, sizeof(__pyx_k_rowObjective), 0, 0, 1, 1},
  {&__pyx_n_s_rowStarts, __pyx_k_rowStarts, sizeof(__pyx_k_rowStarts), 0, 0, 1, 1},
  {&__pyx_n_s_rowUpper, __pyx_k_rowUpper, sizeof(__pyx_k_rowUpper), 0, 0, 1, 1},
  {&__pyx_n_s_rowlb, __pyx_k_rowlb, sizeof(__pyx_k_rowlb), 0, 0, 1, 1},
  {&__pyx_n_s_rows, __pyx_k_rows, sizeof(__pyx_k_rows), 0, 0, 1, 1},
  {&__pyx_n_s_rowub, __pyx_k_rowub, sizeof(__pyx_k_rowub), 0, 0, 1, 1},
  {&__pyx_n_s_rstat, __pyx_k_rstat, sizeof(__pyx_k_rstat), 0, 0, 1, 1},
  {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1},
  {&__pyx_n_s_scalar, __pyx_k_scalar, sizeof(__pyx_k_scalar), 0, 0, 1, 1},
  {&__pyx_n_s_scipy, __pyx_k_scipy, sizeof(__pyx_k_scipy), 0, 0, 1, 1},
  {&__pyx_n_s_sequence, __pyx_k_sequence, sizeof(__pyx_k_sequence), 0, 0, 1, 1},
  {&__pyx_n_s_setColumnLower, __pyx_k_setColumnLower, sizeof(__pyx_k_setColumnLower), 0, 0, 1, 1},
  {&__pyx_n_s_setColumnLowerFirstElements, __pyx_k_setColumnLowerFirstElements, sizeof(__pyx_k_setColumnLowerFirstElements), 0, 0, 1, 1},
  {&__pyx_n_s_setColumnLowerSubset, __pyx_k_setColumnLowerSubset, sizeof(__pyx_k_setColumnLowerSubset), 0, 0, 1, 1},
  {&__pyx_n_s_setColumnUpper, __pyx_k_setColumnUpper, sizeof(__pyx_k_setColumnUpper), 0, 0, 1, 1},
  {&__pyx_n_s_setColumnUpperFirstElements, __pyx_k_setColumnUpperFirstElements, sizeof(__pyx_k_setColumnUpperFirstElements), 0, 0, 1, 1},
  {&__pyx_n_s_setColumnUpperSubset, __pyx_k_setColumnUpperSubset, sizeof(__pyx_k_setColumnUpperSubset), 0, 0, 1, 1},
  {&__pyx_n_s_setConstraintName, __pyx_k_setConstraintName, sizeof(__pyx_k_setConstraintName), 0, 0, 1, 1},
  {&__pyx_n_s_setInteger, __pyx_k_setInteger, sizeof(__pyx_k_setInteger), 0, 0, 1, 1},
  {&__pyx_n_s_setObjectiveArray, __pyx_k_setObjectiveArray, sizeof(__pyx_k_setObjectiveArray), 0, 0, 1, 1},
  {&__pyx_n_s_setRowLower, __pyx_k_setRowLower, sizeof(__pyx_k_setRowLower), 0, 0, 1, 1},
  {&__pyx_n_s_setRowLowerArray, __pyx_k_setRowLowerArray, sizeof(__pyx_k_setRowLowerArray), 0, 0, 1, 1},
  {&__pyx_n_s_setRowUpper, __pyx_k_setRowUpper, sizeof(__pyx_k_setRowUpper), 0, 0, 1, 1},
  {&__pyx_n_s_setRowUpperArray, __pyx_k_setRowUpperArray, sizeof(__pyx_k_setRowUpperArray), 0, 0, 1, 1},
  {&__pyx_n_s_setVariableName, __pyx_k_setVariableName, sizeof(__pyx_k_setVariableName), 0, 0, 1, 1},
  {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
  {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1},
  {&__pyx_n_s_spare, __pyx_k_spare, sizeof(__pyx_k_spare), 0, 0, 1, 1},
  {&__pyx_n_s_sparse, __pyx_k_sparse, sizeof(__pyx_k_sparse), 0, 0, 1, 1},
  {&__pyx_n_s_sparseConcat, __pyx_k_sparseConcat, sizeof(__pyx_k_sparseConcat), 0, 0, 1, 1},
  {&__pyx_n_s_splitext, __pyx_k_splitext, sizeof(__pyx_k_splitext), 0, 0, 1, 1},
  {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
  {&__pyx_n_s_startFinishOptions, __pyx_k_startFinishOptions, sizeof(__pyx_k_startFinishOptions), 0, 0, 1, 1},
  {&__pyx_n_s_startFinishOptionsDic, __pyx_k_startFinishOptionsDic, sizeof(__pyx_k_startFinishOptionsDic), 0, 0, 1, 1},
  {&__pyx_n_s_status, __pyx_k_status, sizeof(__pyx_k_status), 0, 0, 1, 1},
  {&__pyx_n_s_status_2, __pyx_k_status_2, sizeof(__pyx_k_status_2), 0, 0, 1, 1},
  {&__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},
  {&__pyx_kp_s_stopped_due_to_errors, __pyx_k_stopped_due_to_errors, sizeof(__pyx_k_stopped_due_to_errors), 0, 0, 1, 0},
  {&__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},
  {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
  {&__pyx_n_s_sum, __pyx_k_sum, sizeof(__pyx_k_sum), 0, 0, 1, 1},
  {&__pyx_n_s_superBasic, __pyx_k_superBasic, sizeof(__pyx_k_superBasic), 0, 0, 1, 1},
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
  {&__pyx_n_s_toarray, __pyx_k_toarray, sizeof(__pyx_k_toarray), 0, 0, 1, 1},
  {&__pyx_n_s_tocoo, __pyx_k_tocoo, sizeof(__pyx_k_tocoo), 0, 0, 1, 1},
  {&__pyx_n_s_tryPlusMinusOne, __pyx_k_tryPlusMinusOne, sizeof(__pyx_k_tryPlusMinusOne), 0, 0, 1, 1},
  {&__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},
  {&__pyx_kp_s_unrecognised_extension_s, __pyx_k_unrecognised_extension_s, sizeof(__pyx_k_unrecognised_extension_s), 0, 0, 1, 0},
  {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
  {&__pyx_n_s_updateStatus, __pyx_k_updateStatus, sizeof(__pyx_k_updateStatus), 0, 0, 1, 1},
  {&__pyx_n_s_updatedColumn, __pyx_k_updatedColumn, sizeof(__pyx_k_updatedColumn), 0, 0, 1, 1},
  {&__pyx_n_s_upper, __pyx_k_upper, sizeof(__pyx_k_upper), 0, 0, 1, 1},
  {&__pyx_n_s_useRowNames, __pyx_k_useRowNames, sizeof(__pyx_k_useRowNames), 0, 0, 1, 1},
  {&__pyx_n_s_v1, __pyx_k_v1, sizeof(__pyx_k_v1), 0, 0, 1, 1},
  {&__pyx_n_s_v2, __pyx_k_v2, sizeof(__pyx_k_v2), 0, 0, 1, 1},
  {&__pyx_n_s_val, __pyx_k_val, sizeof(__pyx_k_val), 0, 0, 1, 1},
  {&__pyx_n_s_var1, __pyx_k_var1, sizeof(__pyx_k_var1), 0, 0, 1, 1},
  {&__pyx_n_s_var2, __pyx_k_var2, sizeof(__pyx_k_var2), 0, 0, 1, 1},
  {&__pyx_n_s_varCoefs, __pyx_k_varCoefs, sizeof(__pyx_k_varCoefs), 0, 0, 1, 1},
  {&__pyx_n_s_varInd, __pyx_k_varInd, sizeof(__pyx_k_varInd), 0, 0, 1, 1},
  {&__pyx_n_s_varIndex, __pyx_k_varIndex, sizeof(__pyx_k_varIndex), 0, 0, 1, 1},
  {&__pyx_n_s_varNames, __pyx_k_varNames, sizeof(__pyx_k_varNames), 0, 0, 1, 1},
  {&__pyx_n_s_variableNames, __pyx_k_variableNames, sizeof(__pyx_k_variableNames), 0, 0, 1, 1},
  {&__pyx_n_s_variables, __pyx_k_variables, sizeof(__pyx_k_variables), 0, 0, 1, 1},
  {&__pyx_n_s_variablesLower, __pyx_k_variablesLower, sizeof(__pyx_k_variablesLower), 0, 0, 1, 1},
  {&__pyx_n_s_variablesUpper, __pyx_k_variablesUpper, sizeof(__pyx_k_variablesUpper), 0, 0, 1, 1},
  {&__pyx_n_s_varname, __pyx_k_varname, sizeof(__pyx_k_varname), 0, 0, 1, 1},
  {&__pyx_n_s_vectorStarts, __pyx_k_vectorStarts, sizeof(__pyx_k_vectorStarts), 0, 0, 1, 1},
  {&__pyx_n_s_vectorTimesB_1, __pyx_k_vectorTimesB_1, sizeof(__pyx_k_vectorTimesB_1), 0, 0, 1, 1},
  {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1},
  {&__pyx_n_s_w_ind, __pyx_k_w_ind, sizeof(__pyx_k_w_ind), 0, 0, 1, 1},
  {&__pyx_n_s_where, __pyx_k_where, sizeof(__pyx_k_where), 0, 0, 1, 1},
  {&__pyx_n_s_which, __pyx_k_which, sizeof(__pyx_k_which), 0, 0, 1, 1},
  {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1},
  {&__pyx_n_s_x_u, __pyx_k_x_u, sizeof(__pyx_k_x_u), 0, 0, 1, 1},
  {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1},
  {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1},
  {&__pyx_n_s_z, __pyx_k_z, sizeof(__pyx_k_z), 0, 0, 1, 1},
  {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1},
  {&__pyx_n_s_zip, __pyx_k_zip, sizeof(__pyx_k_zip), 0, 0, 1, 1},
  {0, 0, 0, 0, 0, 0, 0}
};
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 12, __pyx_L1_error)
  __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 13, __pyx_L1_error)
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 88, __pyx_L1_error)
  #if PY_MAJOR_VERSION >= 3
  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(0, 120, __pyx_L1_error)
  #else
  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(0, 120, __pyx_L1_error)
  #endif
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 1500, __pyx_L1_error)
  __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(0, 1807, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error)
  __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 855, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "cylp/cy/CyClpSimplex.pyx":122
 *             for colInd in xrange(self.nConstraints):
 *                 self.getBInvCol(colInd, c)
 *                 b[:, colInd] = c             # <<<<<<<<<<<<<<
 *             return b
 * 
 */
  __pyx_slice_ = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice_)) __PYX_ERR(0, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_slice_);
  __Pyx_GIVEREF(__pyx_slice_);

  /* "cylp/cy/CyClpSimplex.pyx":169
 *                 #       self.cyLPModel.objective.astype(np.double))
 *             else:
 *                 raise Exception('To set the objective function of ' \             # <<<<<<<<<<<<<<
 *                                 'CyClpSimplex set cylpSimplex.cyLPModel ' \
 *                                 'first.')
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__2);
  __Pyx_GIVEREF(__pyx_tuple__2);

  /* "cylp/cy/CyClpSimplex.pyx":236
 *                 m = sparseMatrix.tocoo()
 *             except:
 *                 raise Exception('coefMatrix must be a scipy sparse matrix.')             # <<<<<<<<<<<<<<
 *             self.matrix = CyCoinPackedMatrix(True, m.row, m.col, m.data)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__3);
  __Pyx_GIVEREF(__pyx_tuple__3);

  /* "cylp/cy/CyClpSimplex.pyx":258
 *         def __get__(self):
 *             if not self.cyLPModel:
 *                 raise Exception('No CyClpSimplex cyLPModel.')             # <<<<<<<<<<<<<<
 *             else:
 *                 return self.cyLPModel.constraints
 */
  __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_No_CyClpSimplex_cyLPModel); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);

  /* "cylp/cy/CyClpSimplex.pyx":710
 *                 m = mat.tocoo()
 *             except:
 *                 raise Exception('Hessian can be set to a matrix that ' \             # <<<<<<<<<<<<<<
 *                                             'implements *tocoo* method')
 *             if m:
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__5);
  __Pyx_GIVEREF(__pyx_tuple__5);

  /* "cylp/cy/CyClpSimplex.pyx":1036
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 *                 raise Exception('The argument of setVarStatus can be ' \             # <<<<<<<<<<<<<<
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__6);
  __Pyx_GIVEREF(__pyx_tuple__6);

  /* "cylp/cy/CyClpSimplex.pyx":1061
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 *                 raise Exception('The argument of getVarStatus can be ' \             # <<<<<<<<<<<<<<
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__7);
  __Pyx_GIVEREF(__pyx_tuple__7);

  /* "cylp/cy/CyClpSimplex.pyx":1350
 *                         mainCoef.indices, mainCoef.data)
 *         else:
 *             raise Exception('To add a constraint you must set ' \             # <<<<<<<<<<<<<<
 *                             'cylpSimplex.cyLPModel first.')
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__9);
  __Pyx_GIVEREF(__pyx_tuple__9);

  /* "cylp/cy/CyClpSimplex.pyx":1362
 *             #self.loadFromCyLPModel(self.cyLPModel)
 *         else:
 *             raise Exception('To remove a constraint you must set ' \             # <<<<<<<<<<<<<<
 *                             'cylpSimplex.cyLPModel first.')
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__10);
  __Pyx_GIVEREF(__pyx_tuple__10);

  /* "cylp/cy/CyClpSimplex.pyx":1386
 *             self.loadFromCyLPModel(self.cyLPModel)
 *         else:
 *             raise Exception('To remove a variable you must set ' \             # <<<<<<<<<<<<<<
 *                             'cylpSimplex.cyLPModel first.')
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__11);
  __Pyx_GIVEREF(__pyx_tuple__11);

  /* "cylp/cy/CyClpSimplex.pyx":1391
 *     def getVarByName(self, name):
 *         if not self.cyLPModel:
 *             raise Exception('No cylpSimplex.cyLPModel is set.')             # <<<<<<<<<<<<<<
 *         return self.cyLPModel.getVarByName(name)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__12);
  __Pyx_GIVEREF(__pyx_tuple__12);

  /* "cylp/cy/CyClpSimplex.pyx":1732
 *         elif True:  # isinstance(arg, CyLPVar):
 *             if self.cyLPModel is None:
 *                 raise Exception('The argument of setInteger can be ' \             # <<<<<<<<<<<<<<
 *                                 'a CyLPVar only if the object is built ' \
 *                                 'using a CyLPModel.')
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__13);
  __Pyx_GIVEREF(__pyx_tuple__13);

  /* "cylp/cy/CyClpSimplex.pyx":1771
 *         s = CyClpSimplex()
 *         if model == NULL:
 *             print("Presolve says problem infeasible.")             # <<<<<<<<<<<<<<
 *             return s
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);

  /* "cylp/cy/CyClpSimplex.pyx":2008
 *         '''
 *         if not issubclass(pivotMethodObject.__class__, PivotPythonBase):
 *             raise TypeError('pivotMethodObject should be of a \             # <<<<<<<<<<<<<<
 *                             class derived from PivotPythonBase')
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);

  /* "cylp/cy/CyClpSimplex.pyx":2024
 *         to solve LPs <custom-dual-pivot-usage>`.       '''
 *         if not issubclass(dualPivotMethodObject.__class__, DualPivotPythonBase):
 *             raise TypeError('dualPivotMethodObject should be of a \             # <<<<<<<<<<<<<<
 *                             class derived from DualPivotPythonBase')
 * 
 */
  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_dualPivotMethodObject_should_be); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 2024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__18);
  __Pyx_GIVEREF(__pyx_tuple__18);

  /* "cylp/cy/CyClpSimplex.pyx":2071
 *                                        CppCoinIndexedVector * spareArray2,
 *                                        int valuesPass):
 *         raise Exception('CyClpPrimalColumnPivotBase.pyx: pivot column ' \             # <<<<<<<<<<<<<<
 *                         'should be implemented.')
 * 
 */
  __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_p); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 2071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__21);
  __Pyx_GIVEREF(__pyx_tuple__21);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__22);
  __Pyx_GIVEREF(__pyx_tuple__22);

  /* "cylp/cy/CyClpSimplex.pyx":2187
 * 
 *     model = CyLPModel()
 *     x = model.addVariable('x', 3)             # <<<<<<<<<<<<<<
 *     y = model.addVariable('y', 2)
 * 
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);

  /* "cylp/cy/CyClpSimplex.pyx":2188
 *     model = CyLPModel()
 *     x = model.addVariable('x', 3)
 *     y = model.addVariable('y', 2)             # <<<<<<<<<<<<<<
 * 
 *     A = np.matrix([[1., 2., 0], [1., 0, 1.]])
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);

  /* "cylp/cy/CyClpSimplex.pyx":2200
 *     model += 2 <= B * x + D * y <= b
 *     model += y >= 0
 *     model += 1.1 <= x[1:3] <= x_u             # <<<<<<<<<<<<<<
 * 
 *     c = CyLPArray([1., -2., 3.])
 */
  __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)
  __Pyx_GOTREF(__pyx_slice__26);
  __Pyx_GIVEREF(__pyx_slice__26);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":272
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not C contiguous")             # <<<<<<<<<<<<<<
 * 
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":276
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 *                 and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
 *                 raise ValueError(u"ndarray is not Fortran contiguous")             # <<<<<<<<<<<<<<
 * 
 *             info.buf = PyArray_DATA(self)
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":306
 *                 if ((descr.byteorder == c'>' and little_endian) or
 *                     (descr.byteorder == c'<' and not little_endian)):
 *                     raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
 *                 if   t == NPY_BYTE:        f = "b"
 *                 elif t == NPY_UBYTE:       f = "B"
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":855
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
 * 
 *         if ((child.byteorder == c'>' and little_endian) or
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__32);
  __Pyx_GIVEREF(__pyx_tuple__32);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":879
 *             t = child.type_num
 *             if end - f < 5:
 *                 raise RuntimeError(u"Format string allocated too short.")             # <<<<<<<<<<<<<<
 * 
 *             # Until ticket #99 is fixed, use integers to avoid warnings
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__33);
  __Pyx_GIVEREF(__pyx_tuple__33);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037
 *         _import_array()
 *     except Exception:
 *         raise ImportError("numpy.core.multiarray failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_umath() except -1:
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_ufunc() except -1:
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);

  /* "cylp/cy/CyClpSimplex.pyx":2178
 * 
 * 
 * def getModelExample():             # <<<<<<<<<<<<<<
 *     '''
 *     Return a model example to be used in doctests.
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);
  __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)

  /* "cylp/cy/CyClpSimplex.pyx":2212
 * 
 * 
 * def getMpsExample():             # <<<<<<<<<<<<<<
 *     '''
 *     Return full path to an MPS example file for doctests
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__37);
  __Pyx_GIVEREF(__pyx_tuple__37);
  __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)

  /* "(tree fragment)":1
 * def __pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __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)
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);
  __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)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  __pyx_float_0_ = PyFloat_FromDouble(0.); if (unlikely(!__pyx_float_0_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_1_ = PyFloat_FromDouble(1.); if (unlikely(!__pyx_float_1_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_2_ = PyFloat_FromDouble(2.); if (unlikely(!__pyx_float_2_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_3_ = PyFloat_FromDouble(3.); if (unlikely(!__pyx_float_3_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_5 = PyFloat_FromDouble(0.5); if (unlikely(!__pyx_float_0_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_1_1 = PyFloat_FromDouble(1.1); if (unlikely(!__pyx_float_1_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_2_5 = PyFloat_FromDouble(2.5); if (unlikely(!__pyx_float_2_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_3_5 = PyFloat_FromDouble(3.5); if (unlikely(!__pyx_float_3_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_4_2 = PyFloat_FromDouble(4.2); if (unlikely(!__pyx_float_4_2)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg_1_ = PyFloat_FromDouble(-1.); if (unlikely(!__pyx_float_neg_1_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg_2_ = PyFloat_FromDouble(-2.); if (unlikely(!__pyx_float_neg_2_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_7 = PyInt_FromLong(7); if (unlikely(!__pyx_int_7)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_64 = PyInt_FromLong(64); if (unlikely(!__pyx_int_64)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_222419149 = PyInt_FromLong(222419149L); if (unlikely(!__pyx_int_222419149)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_neg_2000 = PyInt_FromLong(-2000); if (unlikely(!__pyx_int_neg_2000)) __PYX_ERR(0, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/

static int __Pyx_modinit_global_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_export_code(void) {
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  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)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __pyx_vtabptr_4cylp_2cy_12CyClpSimplex_CyClpSimplex = &__pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.setCppSelf = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, IClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setCppSelf;
  __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;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.setPrimalColumnPivotAlgorithm = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, void *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setPrimalColumnPivotAlgorithm;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.setDualRowPivotAlgorithm = (PyObject *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *, void *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_setDualRowPivotAlgorithm;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.primalColumnSolution = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalColumnSolution;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.dualColumnSolution = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualColumnSolution;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.primalRowSolution = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_primalRowSolution;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.dualRowSolution = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_dualRowSolution;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.rowLower = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowLower;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.rowUpper = (double *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_rowUpper;
  __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;
  __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;
  __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;
  __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;
  __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;
  __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;
  __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;
  __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;
  __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;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.ComplementarityList = (int *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_ComplementarityList;
  __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex.pivotVariable = (int *(*)(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex *))__pyx_f_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_pivotVariable;
  __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;
  __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;
  __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;
  if (PyType_Ready(&__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex.tp_print = 0;
  #endif
  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)) {
    __pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  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)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CyClpSimplex, (PyObject *)&__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
  __pyx_ptype_4cylp_2cy_12CyClpSimplex_CyClpSimplex = &__pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex;
  if (PyType_Ready(&__pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus) < 0) __PYX_ERR(0, 2232, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus.tp_print = 0;
  #endif
  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)) {
    __pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_VarStatus, (PyObject *)&__pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus) < 0) __PYX_ERR(0, 2232, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus) < 0) __PYX_ERR(0, 2232, __pyx_L1_error)
  __pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus = &__pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject),
  #else
  sizeof(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_7cpython_4bool_bool) __PYX_ERR(4, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(5, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinIndexedVector"); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector) __PYX_ERR(6, 22, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase) __PYX_ERR(7, 67, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error)
  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error)
  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error)
  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error)
  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 917, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase) __PYX_ERR(8, 72, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinModel"); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_11CyCoinModel_CyCoinModel) __PYX_ERR(9, 34, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinPackedMatrix"); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix) __PYX_ERR(10, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCgl"); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglCutGenerator) __PYX_ERR(11, 103, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglAllDifferent) __PYX_ERR(11, 108, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglClique) __PYX_ERR(11, 111, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglKnapsackCover) __PYX_ERR(11, 114, __pyx_L1_error)
  __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)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglOddHole) __PYX_ERR(11, 117, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglFlowCover) __PYX_ERR(11, 122, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglGomory) __PYX_ERR(11, 127, __pyx_L1_error)
  __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)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglRedSplit) __PYX_ERR(11, 132, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglLiftAndProject) __PYX_ERR(11, 137, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglLandP) __PYX_ERR(11, 140, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding) __PYX_ERR(11, 145, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2) __PYX_ERR(11, 148, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglTwomir) __PYX_ERR(11, 151, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglResidualCapacity) __PYX_ERR(11, 154, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglPreProcess) __PYX_ERR(11, 162, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglProbing) __PYX_ERR(11, 165, __pyx_L1_error)
  __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);
   if (!__pyx_ptype_4cylp_2cy_5CyCgl_CyCglSimpleRounding) __PYX_ERR(11, 168, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCbcNode"); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_9CyCbcNode_CyCbcNode) __PYX_ERR(12, 13, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyOsiSolverInterface"); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface) __PYX_ERR(13, 15, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCbcModel"); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_10CyCbcModel_CyCbcModel) __PYX_ERR(14, 82, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyWolfePivot"); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_12CyWolfePivot_CyWolfePivot) __PYX_ERR(15, 6, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyPEPivot"); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_9CyPEPivot_CyPEPivot) __PYX_ERR(16, 7, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyPivotPythonBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase) __PYX_ERR(17, 7, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyDualPivotPythonBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase) __PYX_ERR(18, 9, __pyx_L1_error)
  __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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinMpsIO"); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __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);
   if (!__pyx_ptype_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO) __PYX_ERR(19, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}


#ifndef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#elif PY_MAJOR_VERSION < 3
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" void
#else
#define __Pyx_PyMODINIT_FUNC void
#endif
#else
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
#else
#define __Pyx_PyMODINIT_FUNC PyObject *
#endif
#endif


#if PY_MAJOR_VERSION < 3
__Pyx_PyMODINIT_FUNC initCyClpSimplex(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC initCyClpSimplex(void)
#else
__Pyx_PyMODINIT_FUNC PyInit_CyClpSimplex(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_CyClpSimplex(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    #if PY_VERSION_HEX >= 0x030700A1
    static PY_INT64_T main_interpreter_id = -1;
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return (unlikely(current_id == -1)) ? -1 : 0;
    } else if (unlikely(main_interpreter_id != current_id))
    #else
    static PyInterpreterState *main_interpreter = NULL;
    PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
    if (!main_interpreter) {
        main_interpreter = current_interpreter;
    } else if (unlikely(main_interpreter != current_interpreter))
    #endif
    {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
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) {
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    if (__Pyx_check_single_interpreter())
        return NULL;
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyClpSimplex(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  __Pyx_TraceDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'CyClpSimplex' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #elif PY_MAJOR_VERSION >= 3
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  #if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
if (!__Pyx_RefNanny) {
  PyErr_Clear();
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
  if (!__Pyx_RefNanny)
      Py_FatalError("failed to import 'refnanny' module");
}
#endif
  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_CyClpSimplex(void)", 0);
  if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pxy_PyFrame_Initialize_Offsets
  __Pxy_PyFrame_Initialize_Offsets();
  #endif
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  #ifdef WITH_THREAD /* Python build with threading support? */
  PyEval_InitThreads();
  #endif
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_m = __pyx_pyinit_module;
  Py_INCREF(__pyx_m);
  #else
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("CyClpSimplex", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_b);
  __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_cython_runtime);
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_cylp__cy__CyClpSimplex) {
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "cylp.cy.CyClpSimplex")) {
      if (unlikely(PyDict_SetItemString(modules, "cylp.cy.CyClpSimplex", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code();
  (void)__Pyx_modinit_variable_export_code();
  if (unlikely(__Pyx_modinit_function_export_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code();
  (void)__Pyx_modinit_function_import_code();
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  __Pyx_TraceCall("__Pyx_PyMODINIT_FUNC PyInit_CyClpSimplex(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error));

  /* "cylp/cy/CyClpSimplex.pyx":7
 * from __future__ import print_function
 * 
 * import inspect             # <<<<<<<<<<<<<<
 * import os.path
 * from itertools import product
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_inspect, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":8
 * 
 * import inspect
 * import os.path             # <<<<<<<<<<<<<<
 * from itertools import product
 * try:
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_os_path, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_1) < 0) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":9
 * import inspect
 * import os.path
 * from itertools import product             # <<<<<<<<<<<<<<
 * try:
 *     from itertools import izip
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_product);
  __Pyx_GIVEREF(__pyx_n_s_product);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_product);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_product, __pyx_t_1) < 0) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":10
 * import os.path
 * from itertools import product
 * try:             # <<<<<<<<<<<<<<
 *     from itertools import izip
 * except ImportError: # Python 3 does not have izip, use zip
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "cylp/cy/CyClpSimplex.pyx":11
 * from itertools import product
 * try:
 *     from itertools import izip             # <<<<<<<<<<<<<<
 * except ImportError: # Python 3 does not have izip, use zip
 *     izip = zip
 */
      __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L2_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_n_s_izip);
      __Pyx_GIVEREF(__pyx_n_s_izip);
      PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_izip);
      __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)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_izip); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L2_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_izip, __pyx_t_2) < 0) __PYX_ERR(0, 11, __pyx_L2_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "cylp/cy/CyClpSimplex.pyx":10
 * import os.path
 * from itertools import product
 * try:             # <<<<<<<<<<<<<<
 *     from itertools import izip
 * except ImportError: # Python 3 does not have izip, use zip
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L7_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "cylp/cy/CyClpSimplex.pyx":12
 * try:
 *     from itertools import izip
 * except ImportError: # Python 3 does not have izip, use zip             # <<<<<<<<<<<<<<
 *     izip = zip
 * import numpy as np
 */
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_6) {
      __Pyx_AddTraceback("cylp.cy.CyClpSimplex", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(0, 12, __pyx_L4_except_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_7);

      /* "cylp/cy/CyClpSimplex.pyx":13
 *     from itertools import izip
 * except ImportError: # Python 3 does not have izip, use zip
 *     izip = zip             # <<<<<<<<<<<<<<
 * import numpy as np
 * cimport numpy as np
 */
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_izip, __pyx_builtin_zip) < 0) __PYX_ERR(0, 13, __pyx_L4_except_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L3_exception_handled;
    }
    goto __pyx_L4_except_error;
    __pyx_L4_except_error:;

    /* "cylp/cy/CyClpSimplex.pyx":10
 * import os.path
 * from itertools import product
 * try:             # <<<<<<<<<<<<<<
 *     from itertools import izip
 * except ImportError: # Python 3 does not have izip, use zip
 */
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L3_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    __pyx_L7_try_end:;
  }

  /* "cylp/cy/CyClpSimplex.pyx":14
 * except ImportError: # Python 3 does not have izip, use zip
 *     izip = zip
 * import numpy as np             # <<<<<<<<<<<<<<
 * cimport numpy as np
 * from scipy import sparse
 */
  __pyx_t_7 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_7) < 0) __PYX_ERR(0, 14, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":16
 * import numpy as np
 * cimport numpy as np
 * from scipy import sparse             # <<<<<<<<<<<<<<
 * cimport cpython.ref as cpy_ref
 * from CyWolfePivot cimport CyWolfePivot
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_sparse);
  __Pyx_GIVEREF(__pyx_n_s_sparse);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_sparse);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_sparse); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sparse, __pyx_t_7) < 0) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":24
 * from cylp.cy cimport CyClpSimplex
 * from cylp.cy cimport CyCoinModel
 * from cylp.py.utils.sparseUtil import sparseConcat, csc_matrixPlus             # <<<<<<<<<<<<<<
 * from cylp.py.modeling.CyLPModel import CyLPVar, CyLPArray, CyLPSolution
 * from cylp.py.pivots.PivotPythonBase import PivotPythonBase
 */
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_sparseConcat);
  __Pyx_GIVEREF(__pyx_n_s_sparseConcat);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_sparseConcat);
  __Pyx_INCREF(__pyx_n_s_csc_matrixPlus);
  __Pyx_GIVEREF(__pyx_n_s_csc_matrixPlus);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_csc_matrixPlus);
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_sparseConcat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sparseConcat, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_csc_matrixPlus, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":25
 * from cylp.cy cimport CyCoinModel
 * from cylp.py.utils.sparseUtil import sparseConcat, csc_matrixPlus
 * from cylp.py.modeling.CyLPModel import CyLPVar, CyLPArray, CyLPSolution             # <<<<<<<<<<<<<<
 * from cylp.py.pivots.PivotPythonBase import PivotPythonBase
 * from cylp.py.pivots.DualPivotPythonBase import DualPivotPythonBase
 */
  __pyx_t_7 = PyList_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_CyLPVar);
  __Pyx_GIVEREF(__pyx_n_s_CyLPVar);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_CyLPVar);
  __Pyx_INCREF(__pyx_n_s_CyLPArray);
  __Pyx_GIVEREF(__pyx_n_s_CyLPArray);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_s_CyLPArray);
  __Pyx_INCREF(__pyx_n_s_CyLPSolution);
  __Pyx_GIVEREF(__pyx_n_s_CyLPSolution);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_s_CyLPSolution);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPVar); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CyLPVar, __pyx_t_7) < 0) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPArray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CyLPArray, __pyx_t_7) < 0) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CyLPSolution, __pyx_t_7) < 0) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":26
 * from cylp.py.utils.sparseUtil import sparseConcat, csc_matrixPlus
 * from cylp.py.modeling.CyLPModel import CyLPVar, CyLPArray, CyLPSolution
 * from cylp.py.pivots.PivotPythonBase import PivotPythonBase             # <<<<<<<<<<<<<<
 * from cylp.py.pivots.DualPivotPythonBase import DualPivotPythonBase
 * from cylp.py.modeling.CyLPModel import CyLPModel
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_PivotPythonBase);
  __Pyx_GIVEREF(__pyx_n_s_PivotPythonBase);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PivotPythonBase);
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_PivotPythonBase); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_PivotPythonBase, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":27
 * from cylp.py.modeling.CyLPModel import CyLPVar, CyLPArray, CyLPSolution
 * from cylp.py.pivots.PivotPythonBase import PivotPythonBase
 * from cylp.py.pivots.DualPivotPythonBase import DualPivotPythonBase             # <<<<<<<<<<<<<<
 * from cylp.py.modeling.CyLPModel import CyLPModel
 * from cylp.cy cimport CyCoinMpsIO
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_DualPivotPythonBase);
  __Pyx_GIVEREF(__pyx_n_s_DualPivotPythonBase);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_DualPivotPythonBase);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_DualPivotPythonBase); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_DualPivotPythonBase, __pyx_t_7) < 0) __PYX_ERR(0, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":28
 * from cylp.py.pivots.PivotPythonBase import PivotPythonBase
 * from cylp.py.pivots.DualPivotPythonBase import DualPivotPythonBase
 * from cylp.py.modeling.CyLPModel import CyLPModel             # <<<<<<<<<<<<<<
 * from cylp.cy cimport CyCoinMpsIO
 * 
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_CyLPModel);
  __Pyx_GIVEREF(__pyx_n_s_CyLPModel);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_CyLPModel);
  __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)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_CyLPModel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CyLPModel, __pyx_t_2) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":32
 * 
 * # Initialize numpy
 * np.import_array()             # <<<<<<<<<<<<<<
 * 
 * problemStatus = ['optimal', 'primal infeasible', 'dual infeasible',
 */
  __pyx_t_6 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 32, __pyx_L1_error)

  /* "cylp/cy/CyClpSimplex.pyx":34
 * np.import_array()
 * 
 * problemStatus = ['optimal', 'primal infeasible', 'dual infeasible',             # <<<<<<<<<<<<<<
 *                 'stopped on iterations or time',
 *                 'stopped due to errors',
 */
  __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_optimal);
  __Pyx_GIVEREF(__pyx_n_s_optimal);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_optimal);
  __Pyx_INCREF(__pyx_kp_s_primal_infeasible);
  __Pyx_GIVEREF(__pyx_kp_s_primal_infeasible);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_kp_s_primal_infeasible);
  __Pyx_INCREF(__pyx_kp_s_dual_infeasible);
  __Pyx_GIVEREF(__pyx_kp_s_dual_infeasible);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_kp_s_dual_infeasible);
  __Pyx_INCREF(__pyx_kp_s_stopped_on_iterations_or_time);
  __Pyx_GIVEREF(__pyx_kp_s_stopped_on_iterations_or_time);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_kp_s_stopped_on_iterations_or_time);
  __Pyx_INCREF(__pyx_kp_s_stopped_due_to_errors);
  __Pyx_GIVEREF(__pyx_kp_s_stopped_due_to_errors);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_kp_s_stopped_due_to_errors);
  __Pyx_INCREF(__pyx_kp_s_stopped_by_event_handler_virtual);
  __Pyx_GIVEREF(__pyx_kp_s_stopped_by_event_handler_virtual);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_kp_s_stopped_by_event_handler_virtual);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_problemStatus, __pyx_t_7) < 0) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":40
 *                                     'ClpEventHandler::event())']
 * 
 * CLP_variableStatusEnum = [0x00, 0x01, 0x02, 0x03, 0x04, 0x05]             # <<<<<<<<<<<<<<
 * StatusToInt = {'free' : 0, 'basic' : 1, 'atUpperBound' : 2,
 *                              'atLowerBound' : 3, 'superBasic' : 4,'fixed' : 5}
 */
  __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_int_0);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_int_1);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_int_2);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_int_3);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_int_4);
  __Pyx_INCREF(__pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_int_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CLP_variableStatusEnum, __pyx_t_7) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":41
 * 
 * CLP_variableStatusEnum = [0x00, 0x01, 0x02, 0x03, 0x04, 0x05]
 * StatusToInt = {'free' : 0, 'basic' : 1, 'atUpperBound' : 2,             # <<<<<<<<<<<<<<
 *                              'atLowerBound' : 3, 'superBasic' : 4,'fixed' : 5}
 * IntToStatus = ['free', 'basic', 'atUpperBound',
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_free, __pyx_int_0) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_basic, __pyx_int_1) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_atUpperBound, __pyx_int_2) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_atLowerBound, __pyx_int_3) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_superBasic, __pyx_int_4) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fixed, __pyx_int_5) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_StatusToInt, __pyx_t_7) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":43
 * StatusToInt = {'free' : 0, 'basic' : 1, 'atUpperBound' : 2,
 *                              'atLowerBound' : 3, 'superBasic' : 4,'fixed' : 5}
 * IntToStatus = ['free', 'basic', 'atUpperBound',             # <<<<<<<<<<<<<<
 *                              'atLowerBound', 'superBasic','fixed']
 * 
 */
  __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_free);
  __Pyx_GIVEREF(__pyx_n_s_free);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_free);
  __Pyx_INCREF(__pyx_n_s_basic);
  __Pyx_GIVEREF(__pyx_n_s_basic);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_s_basic);
  __Pyx_INCREF(__pyx_n_s_atUpperBound);
  __Pyx_GIVEREF(__pyx_n_s_atUpperBound);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_s_atUpperBound);
  __Pyx_INCREF(__pyx_n_s_atLowerBound);
  __Pyx_GIVEREF(__pyx_n_s_atLowerBound);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_s_atLowerBound);
  __Pyx_INCREF(__pyx_n_s_superBasic);
  __Pyx_GIVEREF(__pyx_n_s_superBasic);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_s_superBasic);
  __Pyx_INCREF(__pyx_n_s_fixed);
  __Pyx_GIVEREF(__pyx_n_s_fixed);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_s_fixed);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_IntToStatus, __pyx_t_7) < 0) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":46
 *                              'atLowerBound', 'superBasic','fixed']
 * 
 * startFinishOptionsDic = {'x' : 1,  #do not delete work areas             # <<<<<<<<<<<<<<
 *                       'f' : 2, #use old factorization
 *                       's' : 4} #skip initialization of work areas
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_x, __pyx_int_1) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_f, __pyx_int_2) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_s, __pyx_int_4) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_startFinishOptionsDic, __pyx_t_7) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1828
 *                                      objSense)
 * 
 *     def writeLp(self, filename, extension="", epsilon=10**-5, numberAcross=10,             # <<<<<<<<<<<<<<
 *                         decimals=5, objSense=0.0, useRowNames=1):
 *         try:
 */
  __pyx_t_7 = __Pyx_PyInt_From_long(__Pyx_pow_long(10, -5L)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_k__15 = __pyx_t_7;
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1851
 *         self.CppSelf.writeLp(filename, extension, epsilon, numberAcross, decimals, objSense, useRowNames)
 * 
 *     def readLp(self, char *filename, epsilon=10**-5):             # <<<<<<<<<<<<<<
 *         return self.CppSelf.readLp(filename, epsilon)
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_long(__Pyx_pow_long(10, -5L)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_k__16 = __pyx_t_7;
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2145
 *                  np.ndarray[np.double_t, ndim=1] rowlb,
 *                  np.ndarray[np.double_t, ndim=1] rowub,
 *                  np.ndarray[np.double_t, ndim=1] rowObjective=np.array([])):             # <<<<<<<<<<<<<<
 *         cdef double* rd
 *         if len(rowObjective) == 0:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 2145, __pyx_L1_error)
  __pyx_k__20 = ((PyArrayObject *)__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2178
 * 
 * 
 * def getModelExample():             # <<<<<<<<<<<<<<
 *     '''
 *     Return a model example to be used in doctests.
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_getModelExample, __pyx_t_1) < 0) __PYX_ERR(0, 2178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2212
 * 
 * 
 * def getMpsExample():             # <<<<<<<<<<<<<<
 *     '''
 *     Return full path to an MPS example file for doctests
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_getMpsExample, __pyx_t_1) < 0) __PYX_ERR(0, 2212, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":2233
 * 
 * cdef class VarStatus:
 *     free = 0             # <<<<<<<<<<<<<<
 *     basic = 1
 *     atUpperBound = 2
 */
  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)
  PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);

  /* "cylp/cy/CyClpSimplex.pyx":2234
 * cdef class VarStatus:
 *     free = 0
 *     basic = 1             # <<<<<<<<<<<<<<
 *     atUpperBound = 2
 *     atLowerBound = 3
 */
  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)
  PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);

  /* "cylp/cy/CyClpSimplex.pyx":2235
 *     free = 0
 *     basic = 1
 *     atUpperBound = 2             # <<<<<<<<<<<<<<
 *     atLowerBound = 3
 *     superBasic = 4
 */
  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)
  PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);

  /* "cylp/cy/CyClpSimplex.pyx":2236
 *     basic = 1
 *     atUpperBound = 2
 *     atLowerBound = 3             # <<<<<<<<<<<<<<
 *     superBasic = 4
 *     fixed = 5
 */
  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)
  PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);

  /* "cylp/cy/CyClpSimplex.pyx":2237
 *     atUpperBound = 2
 *     atLowerBound = 3
 *     superBasic = 4             # <<<<<<<<<<<<<<
 *     fixed = 5
 *     status_ = np.array([free,
 */
  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)
  PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);

  /* "cylp/cy/CyClpSimplex.pyx":2238
 *     atLowerBound = 3
 *     superBasic = 4
 *     fixed = 5             # <<<<<<<<<<<<<<
 *     status_ = np.array([free,
 *                         basic,
 */
  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)
  PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);

  /* "cylp/cy/CyClpSimplex.pyx":2239
 *     superBasic = 4
 *     fixed = 5
 *     status_ = np.array([free,             # <<<<<<<<<<<<<<
 *                         basic,
 *                         atUpperBound,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __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)
  __Pyx_GOTREF(__pyx_t_7);

  /* "cylp/cy/CyClpSimplex.pyx":2240
 *     fixed = 5
 *     status_ = np.array([free,
 *                         basic,             # <<<<<<<<<<<<<<
 *                         atUpperBound,
 *                         atLowerBound,
 */
  __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)
  __Pyx_GOTREF(__pyx_t_8);

  /* "cylp/cy/CyClpSimplex.pyx":2241
 *     status_ = np.array([free,
 *                         basic,
 *                         atUpperBound,             # <<<<<<<<<<<<<<
 *                         atLowerBound,
 *                         superBasic,
 */
  __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)
  __Pyx_GOTREF(__pyx_t_9);

  /* "cylp/cy/CyClpSimplex.pyx":2242
 *                         basic,
 *                         atUpperBound,
 *                         atLowerBound,             # <<<<<<<<<<<<<<
 *                         superBasic,
 *                         fixed])
 */
  __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)
  __Pyx_GOTREF(__pyx_t_10);

  /* "cylp/cy/CyClpSimplex.pyx":2243
 *                         atUpperBound,
 *                         atLowerBound,
 *                         superBasic,             # <<<<<<<<<<<<<<
 *                         fixed])
 */
  __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)
  __Pyx_GOTREF(__pyx_t_11);

  /* "cylp/cy/CyClpSimplex.pyx":2244
 *                         atLowerBound,
 *                         superBasic,
 *                         fixed])             # <<<<<<<<<<<<<<
 */
  __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)
  __Pyx_GOTREF(__pyx_t_12);

  /* "cylp/cy/CyClpSimplex.pyx":2239
 *     superBasic = 4
 *     fixed = 5
 *     status_ = np.array([free,             # <<<<<<<<<<<<<<
 *                         basic,
 *                         atUpperBound,
 */
  __pyx_t_13 = PyList_New(6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_13, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_13, 1, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_13, 2, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_13, 3, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_11);
  PyList_SET_ITEM(__pyx_t_13, 4, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyList_SET_ITEM(__pyx_t_13, 5, __pyx_t_12);
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  __pyx_t_11 = 0;
  __pyx_t_12 = 0;
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __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);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  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)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4cylp_2cy_12CyClpSimplex_VarStatus);

  /* "(tree fragment)":1
 * def __pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __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)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_VarStatus, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "cylp/cy/CyClpSimplex.pyx":1
 * # cython: c_string_type=str, c_string_encoding=ascii             # <<<<<<<<<<<<<<
 * # cython: profile=True
 * # cython: embedsignature=True
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  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)
  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)
  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)
  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)
  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)
  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)
  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)
  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)
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045
 *         raise ImportError("numpy.core.umath failed to import")
 * 
 * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */
  __Pyx_TraceReturn(Py_None, 0);

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  if (__pyx_m) {
    if (__pyx_d) {
      __Pyx_AddTraceback("init cylp.cy.CyClpSimplex", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    Py_CLEAR(__pyx_m);
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init cylp.cy.CyClpSimplex");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #elif PY_MAJOR_VERSION >= 3
  return __pyx_m;
  #else
  return;
  #endif
}

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyObjectGetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
    if (unlikely(!result)) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
            continue;
        }
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (**name == key) ? 0 :
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key);
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
}
#endif

/* Profile */
#if CYTHON_PROFILE
static int __Pyx_TraceSetupAndCall(PyCodeObject** code,
                                   PyFrameObject** frame,
                                   PyThreadState* tstate,
                                   const char *funcname,
                                   const char *srcfile,
                                   int firstlineno) {
    PyObject *type, *value, *traceback;
    int retval;
    if (*frame == NULL || !CYTHON_PROFILE_REUSE_FRAME) {
        if (*code == NULL) {
            *code = __Pyx_createFrameCodeObject(funcname, srcfile, firstlineno);
            if (*code == NULL) return 0;
        }
        *frame = PyFrame_New(
            tstate,                          /*PyThreadState *tstate*/
            *code,                           /*PyCodeObject *code*/
            __pyx_d,                  /*PyObject *globals*/
            0                                /*PyObject *locals*/
        );
        if (*frame == NULL) return 0;
        if (CYTHON_TRACE && (*frame)->f_trace == NULL) {
            Py_INCREF(Py_None);
            (*frame)->f_trace = Py_None;
        }
#if PY_VERSION_HEX < 0x030400B1
    } else {
        (*frame)->f_tstate = tstate;
#endif
    }
      __Pyx_PyFrame_SetLineNumber(*frame, firstlineno);
    retval = 1;
    tstate->tracing++;
    tstate->use_tracing = 0;
    __Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
    #if CYTHON_TRACE
    if (tstate->c_tracefunc)
        retval = tstate->c_tracefunc(tstate->c_traceobj, *frame, PyTrace_CALL, NULL) == 0;
    if (retval && tstate->c_profilefunc)
    #endif
        retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0;
    tstate->use_tracing = (tstate->c_profilefunc ||
                           (CYTHON_TRACE && tstate->c_tracefunc));
    tstate->tracing--;
    if (retval) {
        __Pyx_ErrRestoreInState(tstate, type, value, traceback);
        return tstate->use_tracing && retval;
    } else {
        Py_XDECREF(type);
        Py_XDECREF(value);
        Py_XDECREF(traceback);
        return -1;
    }
}
static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno) {
    PyCodeObject *py_code = 0;
#if PY_MAJOR_VERSION >= 3
    py_code = PyCode_NewEmpty(srcfile, funcname, firstlineno);
    if (likely(py_code)) {
        py_code->co_flags |= CO_OPTIMIZED | CO_NEWLOCALS;
    }
#else
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    py_funcname = PyString_FromString(funcname);
    if (unlikely(!py_funcname)) goto bad;
    py_srcfile = PyString_FromString(srcfile);
    if (unlikely(!py_srcfile)) goto bad;
    py_code = PyCode_New(
        0,
        0,
        0,
        CO_OPTIMIZED | CO_NEWLOCALS,
        __pyx_empty_bytes,     /*PyObject *code,*/
        __pyx_empty_tuple,     /*PyObject *consts,*/
        __pyx_empty_tuple,     /*PyObject *names,*/
        __pyx_empty_tuple,     /*PyObject *varnames,*/
        __pyx_empty_tuple,     /*PyObject *freevars,*/
        __pyx_empty_tuple,     /*PyObject *cellvars,*/
        py_srcfile,       /*PyObject *filename,*/
        py_funcname,      /*PyObject *name,*/
        firstlineno,
        __pyx_empty_bytes      /*PyObject *lnotab*/
    );
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
#endif
    return py_code;
}
#endif

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
#if PY_MAJOR_VERSION >= 3
    PyObject *kwdefs;
#endif
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
        return NULL;
    }
    if (
#if PY_MAJOR_VERSION >= 3
            co->co_kwonlyargcount == 0 &&
#endif
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
#if PY_MAJOR_VERSION >= 3
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
#endif
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
#if PY_MAJOR_VERSION >= 3
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, closure);
#endif
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif
#endif

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = func->ob_type->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = PyCFunction_GET_FUNCTION(func);
    self = PyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallNoArg */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, NULL, 0);
    }
#endif
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
#else
    if (likely(PyCFunction_Check(func)))
#endif
    {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
            return __Pyx_PyObject_CallMethO(func, NULL);
        }
    }
    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
}
#endif

/* PyDictVersioning */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if !CYTHON_AVOID_BORROWED_REFS
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
    result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    } else if (unlikely(PyErr_Occurred())) {
        return NULL;
    }
#else
    result = PyDict_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
#endif
#else
    result = PyObject_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* PyCFunctionFastCall */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
    PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
    PyCFunction meth = PyCFunction_GET_FUNCTION(func);
    PyObject *self = PyCFunction_GET_SELF(func);
    int flags = PyCFunction_GET_FLAGS(func);
    assert(PyCFunction_Check(func));
    assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
    assert(nargs >= 0);
    assert(nargs == 0 || args != NULL);
    /* _PyCFunction_FastCallDict() must not be called with an exception set,
       because it may clear it (directly or indirectly) and so the
       caller loses its exception */
    assert(!PyErr_Occurred());
    if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
        return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
    } else {
        return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
    }
}
#endif

/* PyObjectCall2Args */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args, *result = NULL;
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyFunction_FastCall(function, args, 2);
    }
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyCFunction_FastCall(function, args, 2);
    }
    #endif
    args = PyTuple_New(2);
    if (unlikely(!args)) goto done;
    Py_INCREF(arg1);
    PyTuple_SET_ITEM(args, 0, arg1);
    Py_INCREF(arg2);
    PyTuple_SET_ITEM(args, 1, arg2);
    Py_INCREF(function);
    result = __Pyx_PyObject_Call(function, args, NULL);
    Py_DECREF(args);
    Py_DECREF(function);
done:
    return result;
}

/* PyObjectCallOneArg */
#if CYTHON_COMPILING_IN_CPYTHON
static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_New(1);
    if (unlikely(!args)) return NULL;
    Py_INCREF(arg);
    PyTuple_SET_ITEM(args, 0, arg);
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, &arg, 1);
    }
#endif
    if (likely(PyCFunction_Check(func))) {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
            return __Pyx_PyObject_CallMethO(func, arg);
#if CYTHON_FAST_PYCCALL
        } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
            return __Pyx_PyCFunction_FastCall(func, &arg, 1);
#endif
        }
    }
    return __Pyx__PyObject_CallOneArg(func, arg);
}
#else
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_Pack(1, arg);
    if (unlikely(!args)) return NULL;
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
#endif

/* RaiseException */
#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
                        CYTHON_UNUSED PyObject *cause) {
    __Pyx_PyThreadState_declare
    Py_XINCREF(type);
    if (!value || value == Py_None)
        value = NULL;
    else
        Py_INCREF(value);
    if (!tb || tb == Py_None)
        tb = NULL;
    else {
        Py_INCREF(tb);
        if (!PyTraceBack_Check(tb)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: arg 3 must be a traceback or None");
            goto raise_error;
        }
    }
    if (PyType_Check(type)) {
#if CYTHON_COMPILING_IN_PYPY
        if (!value) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#endif
        PyErr_NormalizeException(&type, &value, &tb);
    } else {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        value = type;
        type = (PyObject*) Py_TYPE(type);
        Py_INCREF(type);
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: exception class must be a subclass of BaseException");
            goto raise_error;
        }
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}
#else
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if CYTHON_COMPILING_IN_PYPY
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#else
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
                                  int full_traceback, CYTHON_UNUSED int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
#ifdef WITH_THREAD
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
#ifdef _MSC_VER
    else state = (PyGILState_STATE)-1;
#endif
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(1);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
#ifdef WITH_THREAD
    if (nogil)
        PyGILState_Release(state);
#endif
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
                 Py_TYPE(obj)->tp_name, type->tp_name);
    return 0;
}

/* IsLittleEndian */
static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)
{
  union {
    uint32_t u32;
    uint8_t u8[4];
  } S;
  S.u32 = 0x01020304;
  return S.u8[0] == 4;
}

/* BufferFormatCheck */
static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
                              __Pyx_BufFmt_StackElem* stack,
                              __Pyx_TypeInfo* type) {
  stack[0].field = &ctx->root;
  stack[0].parent_offset = 0;
  ctx->root.type = type;
  ctx->root.name = "buffer dtype";
  ctx->root.offset = 0;
  ctx->head = stack;
  ctx->head->field = &ctx->root;
  ctx->fmt_offset = 0;
  ctx->head->parent_offset = 0;
  ctx->new_packmode = '@';
  ctx->enc_packmode = '@';
  ctx->new_count = 1;
  ctx->enc_count = 0;
  ctx->enc_type = 0;
  ctx->is_complex = 0;
  ctx->is_valid_array = 0;
  ctx->struct_alignment = 0;
  while (type->typegroup == 'S') {
    ++ctx->head;
    ctx->head->field = type->fields;
    ctx->head->parent_offset = 0;
    type = type->fields->type;
  }
}
static int __Pyx_BufFmt_ParseNumber(const char** ts) {
    int count;
    const char* t = *ts;
    if (*t < '0' || *t > '9') {
      return -1;
    } else {
        count = *t++ - '0';
        while (*t >= '0' && *t <= '9') {
            count *= 10;
            count += *t++ - '0';
        }
    }
    *ts = t;
    return count;
}
static int __Pyx_BufFmt_ExpectNumber(const char **ts) {
    int number = __Pyx_BufFmt_ParseNumber(ts);
    if (number == -1)
        PyErr_Format(PyExc_ValueError,\
                     "Does not understand character buffer dtype format string ('%c')", **ts);
    return number;
}
static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
  PyErr_Format(PyExc_ValueError,
               "Unexpected format string character: '%c'", ch);
}
static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
  switch (ch) {
    case '?': return "'bool'";
    case 'c': return "'char'";
    case 'b': return "'signed char'";
    case 'B': return "'unsigned char'";
    case 'h': return "'short'";
    case 'H': return "'unsigned short'";
    case 'i': return "'int'";
    case 'I': return "'unsigned int'";
    case 'l': return "'long'";
    case 'L': return "'unsigned long'";
    case 'q': return "'long long'";
    case 'Q': return "'unsigned long long'";
    case 'f': return (is_complex ? "'complex float'" : "'float'");
    case 'd': return (is_complex ? "'complex double'" : "'double'");
    case 'g': return (is_complex ? "'complex long double'" : "'long double'");
    case 'T': return "a struct";
    case 'O': return "Python object";
    case 'P': return "a pointer";
    case 's': case 'p': return "a string";
    case 0: return "end";
    default: return "unparseable format string";
  }
}
static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) {
  switch (ch) {
    case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
    case 'h': case 'H': return 2;
    case 'i': case 'I': case 'l': case 'L': return 4;
    case 'q': case 'Q': return 8;
    case 'f': return (is_complex ? 8 : 4);
    case 'd': return (is_complex ? 16 : 8);
    case 'g': {
      PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g')..");
      return 0;
    }
    case 'O': case 'P': return sizeof(void*);
    default:
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
}
static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
  switch (ch) {
    case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
    case 'h': case 'H': return sizeof(short);
    case 'i': case 'I': return sizeof(int);
    case 'l': case 'L': return sizeof(long);
    #ifdef HAVE_LONG_LONG
    case 'q': case 'Q': return sizeof(PY_LONG_LONG);
    #endif
    case 'f': return sizeof(float) * (is_complex ? 2 : 1);
    case 'd': return sizeof(double) * (is_complex ? 2 : 1);
    case 'g': return sizeof(long double) * (is_complex ? 2 : 1);
    case 'O': case 'P': return sizeof(void*);
    default: {
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
  }
}
typedef struct { char c; short x; } __Pyx_st_short;
typedef struct { char c; int x; } __Pyx_st_int;
typedef struct { char c; long x; } __Pyx_st_long;
typedef struct { char c; float x; } __Pyx_st_float;
typedef struct { char c; double x; } __Pyx_st_double;
typedef struct { char c; long double x; } __Pyx_st_longdouble;
typedef struct { char c; void *x; } __Pyx_st_void_p;
#ifdef HAVE_LONG_LONG
typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
#endif
static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) {
  switch (ch) {
    case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
    case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short);
    case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int);
    case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long);
#ifdef HAVE_LONG_LONG
    case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG);
#endif
    case 'f': return sizeof(__Pyx_st_float) - sizeof(float);
    case 'd': return sizeof(__Pyx_st_double) - sizeof(double);
    case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double);
    case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*);
    default:
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
}
/* These are for computing the padding at the end of the struct to align
   on the first member of the struct. This will probably the same as above,
   but we don't have any guarantees.
 */
typedef struct { short x; char c; } __Pyx_pad_short;
typedef struct { int x; char c; } __Pyx_pad_int;
typedef struct { long x; char c; } __Pyx_pad_long;
typedef struct { float x; char c; } __Pyx_pad_float;
typedef struct { double x; char c; } __Pyx_pad_double;
typedef struct { long double x; char c; } __Pyx_pad_longdouble;
typedef struct { void *x; char c; } __Pyx_pad_void_p;
#ifdef HAVE_LONG_LONG
typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
#endif
static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) {
  switch (ch) {
    case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
    case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short);
    case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int);
    case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long);
#ifdef HAVE_LONG_LONG
    case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG);
#endif
    case 'f': return sizeof(__Pyx_pad_float) - sizeof(float);
    case 'd': return sizeof(__Pyx_pad_double) - sizeof(double);
    case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double);
    case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*);
    default:
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
}
static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
  switch (ch) {
    case 'c':
        return 'H';
    case 'b': case 'h': case 'i':
    case 'l': case 'q': case 's': case 'p':
        return 'I';
    case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
        return 'U';
    case 'f': case 'd': case 'g':
        return (is_complex ? 'C' : 'R');
    case 'O':
        return 'O';
    case 'P':
        return 'P';
    default: {
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
  }
}
static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
  if (ctx->head == NULL || ctx->head->field == &ctx->root) {
    const char* expected;
    const char* quote;
    if (ctx->head == NULL) {
      expected = "end";
      quote = "";
    } else {
      expected = ctx->head->field->type->name;
      quote = "'";
    }
    PyErr_Format(PyExc_ValueError,
                 "Buffer dtype mismatch, expected %s%s%s but got %s",
                 quote, expected, quote,
                 __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex));
  } else {
    __Pyx_StructField* field = ctx->head->field;
    __Pyx_StructField* parent = (ctx->head - 1)->field;
    PyErr_Format(PyExc_ValueError,
                 "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'",
                 field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex),
                 parent->type->name, field->name);
  }
}
static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
  char group;
  size_t size, offset, arraysize = 1;
  if (ctx->enc_type == 0) return 0;
  if (ctx->head->field->type->arraysize[0]) {
    int i, ndim = 0;
    if (ctx->enc_type == 's' || ctx->enc_type == 'p') {
        ctx->is_valid_array = ctx->head->field->type->ndim == 1;
        ndim = 1;
        if (ctx->enc_count != ctx->head->field->type->arraysize[0]) {
            PyErr_Format(PyExc_ValueError,
                         "Expected a dimension of size %zu, got %zu",
                         ctx->head->field->type->arraysize[0], ctx->enc_count);
            return -1;
        }
    }
    if (!ctx->is_valid_array) {
      PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d",
                   ctx->head->field->type->ndim, ndim);
      return -1;
    }
    for (i = 0; i < ctx->head->field->type->ndim; i++) {
      arraysize *= ctx->head->field->type->arraysize[i];
    }
    ctx->is_valid_array = 0;
    ctx->enc_count = 1;
  }
  group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex);
  do {
    __Pyx_StructField* field = ctx->head->field;
    __Pyx_TypeInfo* type = field->type;
    if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') {
      size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex);
    } else {
      size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex);
    }
    if (ctx->enc_packmode == '@') {
      size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex);
      size_t align_mod_offset;
      if (align_at == 0) return -1;
      align_mod_offset = ctx->fmt_offset % align_at;
      if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset;
      if (ctx->struct_alignment == 0)
          ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type,
                                                                 ctx->is_complex);
    }
    if (type->size != size || type->typegroup != group) {
      if (type->typegroup == 'C' && type->fields != NULL) {
        size_t parent_offset = ctx->head->parent_offset + field->offset;
        ++ctx->head;
        ctx->head->field = type->fields;
        ctx->head->parent_offset = parent_offset;
        continue;
      }
      if ((type->typegroup == 'H' || group == 'H') && type->size == size) {
      } else {
          __Pyx_BufFmt_RaiseExpected(ctx);
          return -1;
      }
    }
    offset = ctx->head->parent_offset + field->offset;
    if (ctx->fmt_offset != offset) {
      PyErr_Format(PyExc_ValueError,
                   "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected",
                   (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
      return -1;
    }
    ctx->fmt_offset += size;
    if (arraysize)
      ctx->fmt_offset += (arraysize - 1) * size;
    --ctx->enc_count;
    while (1) {
      if (field == &ctx->root) {
        ctx->head = NULL;
        if (ctx->enc_count != 0) {
          __Pyx_BufFmt_RaiseExpected(ctx);
          return -1;
        }
        break;
      }
      ctx->head->field = ++field;
      if (field->type == NULL) {
        --ctx->head;
        field = ctx->head->field;
        continue;
      } else if (field->type->typegroup == 'S') {
        size_t parent_offset = ctx->head->parent_offset + field->offset;
        if (field->type->fields->type == NULL) continue;
        field = field->type->fields;
        ++ctx->head;
        ctx->head->field = field;
        ctx->head->parent_offset = parent_offset;
        break;
      } else {
        break;
      }
    }
  } while (ctx->enc_count);
  ctx->enc_type = 0;
  ctx->is_complex = 0;
  return 0;
}
static PyObject *
__pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
{
    const char *ts = *tsp;
    int i = 0, number, ndim;
    ++ts;
    if (ctx->new_count != 1) {
        PyErr_SetString(PyExc_ValueError,
                        "Cannot handle repeated arrays in format string");
        return NULL;
    }
    if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
    ndim = ctx->head->field->type->ndim;
    while (*ts && *ts != ')') {
        switch (*ts) {
            case ' ': case '\f': case '\r': case '\n': case '\t': case '\v':  continue;
            default:  break;
        }
        number = __Pyx_BufFmt_ExpectNumber(&ts);
        if (number == -1) return NULL;
        if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i])
            return PyErr_Format(PyExc_ValueError,
                        "Expected a dimension of size %zu, got %d",
                        ctx->head->field->type->arraysize[i], number);
        if (*ts != ',' && *ts != ')')
            return PyErr_Format(PyExc_ValueError,
                                "Expected a comma in format string, got '%c'", *ts);
        if (*ts == ',') ts++;
        i++;
    }
    if (i != ndim)
        return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d",
                            ctx->head->field->type->ndim, i);
    if (!*ts) {
        PyErr_SetString(PyExc_ValueError,
                        "Unexpected end of format string, expected ')'");
        return NULL;
    }
    ctx->is_valid_array = 1;
    ctx->new_count = 1;
    *tsp = ++ts;
    return Py_None;
}
static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) {
  int got_Z = 0;
  while (1) {
    switch(*ts) {
      case 0:
        if (ctx->enc_type != 0 && ctx->head == NULL) {
          __Pyx_BufFmt_RaiseExpected(ctx);
          return NULL;
        }
        if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
        if (ctx->head != NULL) {
          __Pyx_BufFmt_RaiseExpected(ctx);
          return NULL;
        }
        return ts;
      case ' ':
      case '\r':
      case '\n':
        ++ts;
        break;
      case '<':
        if (!__Pyx_Is_Little_Endian()) {
          PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler");
          return NULL;
        }
        ctx->new_packmode = '=';
        ++ts;
        break;
      case '>':
      case '!':
        if (__Pyx_Is_Little_Endian()) {
          PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler");
          return NULL;
        }
        ctx->new_packmode = '=';
        ++ts;
        break;
      case '=':
      case '@':
      case '^':
        ctx->new_packmode = *ts++;
        break;
      case 'T':
        {
          const char* ts_after_sub;
          size_t i, struct_count = ctx->new_count;
          size_t struct_alignment = ctx->struct_alignment;
          ctx->new_count = 1;
          ++ts;
          if (*ts != '{') {
            PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'");
            return NULL;
          }
          if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
          ctx->enc_type = 0;
          ctx->enc_count = 0;
          ctx->struct_alignment = 0;
          ++ts;
          ts_after_sub = ts;
          for (i = 0; i != struct_count; ++i) {
            ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts);
            if (!ts_after_sub) return NULL;
          }
          ts = ts_after_sub;
          if (struct_alignment) ctx->struct_alignment = struct_alignment;
        }
        break;
      case '}':
        {
          size_t alignment = ctx->struct_alignment;
          ++ts;
          if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
          ctx->enc_type = 0;
          if (alignment && ctx->fmt_offset % alignment) {
            ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment);
          }
        }
        return ts;
      case 'x':
        if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
        ctx->fmt_offset += ctx->new_count;
        ctx->new_count = 1;
        ctx->enc_count = 0;
        ctx->enc_type = 0;
        ctx->enc_packmode = ctx->new_packmode;
        ++ts;
        break;
      case 'Z':
        got_Z = 1;
        ++ts;
        if (*ts != 'f' && *ts != 'd' && *ts != 'g') {
          __Pyx_BufFmt_RaiseUnexpectedChar('Z');
          return NULL;
        }
        CYTHON_FALLTHROUGH;
      case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
      case 'l': case 'L': case 'q': case 'Q':
      case 'f': case 'd': case 'g':
      case 'O': case 'p':
        if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
            (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
          ctx->enc_count += ctx->new_count;
          ctx->new_count = 1;
          got_Z = 0;
          ++ts;
          break;
        }
        CYTHON_FALLTHROUGH;
      case 's':
        if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
        ctx->enc_count = ctx->new_count;
        ctx->enc_packmode = ctx->new_packmode;
        ctx->enc_type = *ts;
        ctx->is_complex = got_Z;
        ++ts;
        ctx->new_count = 1;
        got_Z = 0;
        break;
      case ':':
        ++ts;
        while(*ts != ':') ++ts;
        ++ts;
        break;
      case '(':
        if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL;
        break;
      default:
        {
          int number = __Pyx_BufFmt_ExpectNumber(&ts);
          if (number == -1) return NULL;
          ctx->new_count = (size_t)number;
        }
    }
  }
}

/* BufferGetAndValidate */
  static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) {
  if (unlikely(info->buf == NULL)) return;
  if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL;
  __Pyx_ReleaseBuffer(info);
}
static void __Pyx_ZeroBuffer(Py_buffer* buf) {
  buf->buf = NULL;
  buf->obj = NULL;
  buf->strides = __Pyx_zeros;
  buf->shape = __Pyx_zeros;
  buf->suboffsets = __Pyx_minusones;
}
static int __Pyx__GetBufferAndValidate(
        Py_buffer* buf, PyObject* obj,  __Pyx_TypeInfo* dtype, int flags,
        int nd, int cast, __Pyx_BufFmt_StackElem* stack)
{
  buf->buf = NULL;
  if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) {
    __Pyx_ZeroBuffer(buf);
    return -1;
  }
  if (unlikely(buf->ndim != nd)) {
    PyErr_Format(PyExc_ValueError,
                 "Buffer has wrong number of dimensions (expected %d, got %d)",
                 nd, buf->ndim);
    goto fail;
  }
  if (!cast) {
    __Pyx_BufFmt_Context ctx;
    __Pyx_BufFmt_Init(&ctx, stack, dtype);
    if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail;
  }
  if (unlikely((size_t)buf->itemsize != dtype->size)) {
    PyErr_Format(PyExc_ValueError,
      "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)",
      buf->itemsize, (buf->itemsize > 1) ? "s" : "",
      dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : "");
    goto fail;
  }
  if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones;
  return 0;
fail:;
  __Pyx_SafeReleaseBuffer(buf);
  return -1;
}

/* PyObjectSetAttrStr */
  #if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_setattr))
        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* GetItemInt */
  static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (!j) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return m->sq_item(o, i);
        }
    }
#else
    if (is_list || PySequence_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* GetTopmostException */
  #if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
  #if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    #endif
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
#endif

/* GetException */
  #if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type, *local_value, *local_tb;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
    #endif
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}

/* ObjectGetItem */
  #if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) {
    PyObject *runerr;
    Py_ssize_t key_value;
    PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence;
    if (unlikely(!(m && m->sq_item))) {
        PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name);
        return NULL;
    }
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) {
    PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping;
    if (likely(m && m->mp_subscript)) {
        return m->mp_subscript(obj, key);
    }
    return __Pyx_PyObject_GetIndex(obj, key);
}
#endif

/* ArgTypeTest */
  static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (exact) {
        #if PY_MAJOR_VERSION == 2
        if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    }
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
        name, type->tp_name, Py_TYPE(obj)->tp_name);
    return 0;
}

/* PyIntCompare */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) {
    if (op1 == op2) {
        Py_RETURN_TRUE;
    }
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        int unequal;
        unsigned long uintval;
        Py_ssize_t size = Py_SIZE(op1);
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        if (intval == 0) {
            if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
        } else if (intval < 0) {
            if (size >= 0)
                Py_RETURN_FALSE;
            intval = -intval;
            size = -size;
        } else {
            if (size <= 0)
                Py_RETURN_FALSE;
        }
        uintval = (unsigned long) intval;
#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 4)) {
            unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (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));
        } else
#endif
#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 3)) {
            unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (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));
        } else
#endif
#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 2)) {
            unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 1)) {
            unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
            unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
        if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
        if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
    }
    return (
        PyObject_RichCompare(op1, op2, Py_EQ));
}

/* PyIntBinop */
  #if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AndObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
    (void)inplace;
    (void)zerodivision_check;
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
            return PyInt_FromLong(a & b);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        const Py_ssize_t size = Py_SIZE(op1);
        if (likely(__Pyx_sst_abs(size) <= 1)) {
            a = likely(size) ? digits[0] : 0;
            if (size == -1) a = -a;
        } else {
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        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]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        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]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        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]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        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]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_and(op1, op2);
            }
        }
                x = a & b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla & llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    return (inplace ? PyNumber_InPlaceAnd : PyNumber_And)(op1, op2);
}
#endif

/* PyIntCompare */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_NeObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) {
    if (op1 == op2) {
        Py_RETURN_FALSE;
    }
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        if (a != b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        int unequal;
        unsigned long uintval;
        Py_ssize_t size = Py_SIZE(op1);
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        if (intval == 0) {
            if (size != 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
        } else if (intval < 0) {
            if (size >= 0)
                Py_RETURN_TRUE;
            intval = -intval;
            size = -size;
        } else {
            if (size <= 0)
                Py_RETURN_TRUE;
        }
        uintval = (unsigned long) intval;
#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 4)) {
            unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (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));
        } else
#endif
#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 3)) {
            unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (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));
        } else
#endif
#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 2)) {
            unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 1)) {
            unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
            unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
        if (unequal != 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
        if ((double)a != (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
    }
    return (
        PyObject_RichCompare(op1, op2, Py_NE));
}

/* None */
  static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}

/* PyIntFromDouble */
  #if PY_MAJOR_VERSION < 3
static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value) {
    if (value >= (double)LONG_MIN && value <= (double)LONG_MAX) {
        return PyInt_FromLong((long)value);
    }
    return PyLong_FromDouble(value);
}
#endif

/* DictGetItem */
  #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (!PyErr_Occurred()) {
            if (unlikely(PyTuple_Check(key))) {
                PyObject* args = PyTuple_Pack(1, key);
                if (likely(args)) {
                    PyErr_SetObject(PyExc_KeyError, args);
                    Py_DECREF(args);
                }
            } else {
                PyErr_SetObject(PyExc_KeyError, key);
            }
        }
        return NULL;
    }
    Py_INCREF(value);
    return value;
}
#endif

/* BytesEquals */
  static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
  static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
        #if CYTHON_PEP393_ENABLED
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
        #else
            hash1 = ((PyUnicodeObject*)s1)->hash;
            hash2 = ((PyUnicodeObject*)s2)->hash;
        #endif
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        #if PY_MAJOR_VERSION < 3
        Py_XDECREF(owned_ref);
        #endif
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

/* RaiseTooManyValuesToUnpack */
  static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
  static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* IterFinish */
  static CYTHON_INLINE int __Pyx_IterFinish(void) {
#if CYTHON_FAST_THREAD_STATE
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject* exc_type = tstate->curexc_type;
    if (unlikely(exc_type)) {
        if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
            PyObject *exc_value, *exc_tb;
            exc_value = tstate->curexc_value;
            exc_tb = tstate->curexc_traceback;
            tstate->curexc_type = 0;
            tstate->curexc_value = 0;
            tstate->curexc_traceback = 0;
            Py_DECREF(exc_type);
            Py_XDECREF(exc_value);
            Py_XDECREF(exc_tb);
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#else
    if (unlikely(PyErr_Occurred())) {
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
            PyErr_Clear();
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#endif
}

/* UnpackItemEndCheck */
  static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    } else {
        return __Pyx_IterFinish();
    }
    return 0;
}

/* Import */
  static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (!py_import)
        goto bad;
    #endif
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
                module = PyImport_ImportModuleLevelObject(
                    name, global_dict, empty_dict, list, 1);
                if (!module) {
                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_MAJOR_VERSION < 3
            PyObject *py_level = PyInt_FromLong(level);
            if (!py_level)
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, global_dict, empty_dict, list, level);
            #endif
        }
    }
bad:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_import);
    #endif
    Py_XDECREF(empty_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* ImportFrom */
  static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

/* SliceObject */
  static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp;
#if PY_MAJOR_VERSION < 3
    PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
    if (likely(ms && ms->sq_slice)) {
        if (!has_cstart) {
            if (_py_start && (*_py_start != Py_None)) {
                cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
                if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstart = 0;
        }
        if (!has_cstop) {
            if (_py_stop && (*_py_stop != Py_None)) {
                cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
                if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstop = PY_SSIZE_T_MAX;
        }
        if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
            Py_ssize_t l = ms->sq_length(obj);
            if (likely(l >= 0)) {
                if (cstop < 0) {
                    cstop += l;
                    if (cstop < 0) cstop = 0;
                }
                if (cstart < 0) {
                    cstart += l;
                    if (cstart < 0) cstart = 0;
                }
            } else {
                if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                    goto bad;
                PyErr_Clear();
            }
        }
        return ms->sq_slice(obj, cstart, cstop);
    }
#endif
    mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_subscript))
#endif
    {
        PyObject* result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyInt_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyInt_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_subscript(obj, py_slice);
#else
        result = PyObject_GetItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    PyErr_Format(PyExc_TypeError,
        "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
bad:
    return NULL;
}

/* PatchModuleWithCoroutine */
  static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    int result;
    PyObject *globals, *result_obj;
    globals = PyDict_New();  if (unlikely(!globals)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_coroutine_type",
    #ifdef __Pyx_Coroutine_USED
        (PyObject*)__pyx_CoroutineType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_generator_type",
    #ifdef __Pyx_Generator_USED
        (PyObject*)__pyx_GeneratorType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore;
    result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
    if (unlikely(!result_obj)) goto ignore;
    Py_DECREF(result_obj);
    Py_DECREF(globals);
    return module;
ignore:
    Py_XDECREF(globals);
    PyErr_WriteUnraisable(module);
    if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) {
        Py_DECREF(module);
        module = NULL;
    }
#else
    py_code++;
#endif
    return module;
}

/* PatchInspect */
  static PyObject* __Pyx_patch_inspect(PyObject* module) {
#if defined(__Pyx_Generator_USED) && (!defined(CYTHON_PATCH_INSPECT) || CYTHON_PATCH_INSPECT)
    static int inspect_patched = 0;
    if (unlikely((!inspect_patched) && module)) {
        module = __Pyx_Coroutine_patch_module(
            module, ""
"old_types = getattr(_module.isgenerator, '_cython_generator_types', None)\n"
"if old_types is None or not isinstance(old_types, set):\n"
"    old_types = set()\n"
"    def cy_wrap(orig_func, type=type, cython_generator_types=old_types):\n"
"        def cy_isgenerator(obj): return type(obj) in cython_generator_types or orig_func(obj)\n"
"        cy_isgenerator._cython_generator_types = cython_generator_types\n"
"        return cy_isgenerator\n"
"    _module.isgenerator = cy_wrap(_module.isgenerator)\n"
"old_types.add(_cython_generator_type)\n"
        );
        inspect_patched = 1;
    }
#else
    if ((0)) return __Pyx_Coroutine_patch_module(module, NULL);
#endif
    return module;
}

/* PyErrExceptionMatches */
  #if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    PyObject *exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
    if (unlikely(PyTuple_Check(err)))
        return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
}
#endif

/* GetAttr */
  static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
#if CYTHON_USE_TYPE_SLOTS
#if PY_MAJOR_VERSION >= 3
    if (likely(PyUnicode_Check(n)))
#else
    if (likely(PyString_Check(n)))
#endif
        return __Pyx_PyObject_GetAttrStr(o, n);
#endif
    return PyObject_GetAttr(o, n);
}

/* GetAttr3 */
  static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    Py_INCREF(d);
    return d;
}
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
    PyObject *r = __Pyx_GetAttr(o, n);
    return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
}

/* HasAttr */
  static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
    PyObject *r;
    if (unlikely(!__Pyx_PyBaseString_Check(n))) {
        PyErr_SetString(PyExc_TypeError,
                        "hasattr(): attribute name must be string");
        return -1;
    }
    r = __Pyx_GetAttr(o, n);
    if (unlikely(!r)) {
        PyErr_Clear();
        return 0;
    } else {
        Py_DECREF(r);
        return 1;
    }
}

/* RaiseNoneIterError */
  static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

/* PyObject_GenericGetAttrNoDict */
  #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, attr_name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(attr_name));
#endif
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
    PyObject *descr;
    PyTypeObject *tp = Py_TYPE(obj);
    if (unlikely(!PyString_Check(attr_name))) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    assert(!tp->tp_dictoffset);
    descr = _PyType_Lookup(tp, attr_name);
    if (unlikely(!descr)) {
        return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
    }
    Py_INCREF(descr);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
    #endif
    {
        descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
        if (unlikely(f)) {
            PyObject *res = f(descr, obj, (PyObject *)tp);
            Py_DECREF(descr);
            return res;
        }
    }
    return descr;
}
#endif

/* PyObject_GenericGetAttr */
  #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
    if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
}
#endif

/* SetVTable */
  static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
#if PY_VERSION_HEX >= 0x02070000
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
#else
    PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
#endif
    if (!ob)
        goto bad;
    if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0)
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* PyObjectGetAttrStrNoError */
  static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
}

/* SetupReduce */
  static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
#else
    if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
#endif
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
            if (likely(reduce_cython)) {
                ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred())
        PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}

/* TypeImport */
  #ifndef __PYX_HAVE_RT_ImportType
#define __PYX_HAVE_RT_ImportType
static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
    size_t size, enum __Pyx_ImportType_CheckSize check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
#ifdef Py_LIMITED_API
    PyObject *py_basicsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#ifndef Py_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if ((size_t)basicsize < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* GetVTable */
  static void* __Pyx_GetVtable(PyObject *dict) {
    void* ptr;
    PyObject *ob = PyObject_GetItem(dict, __pyx_n_s_pyx_vtable);
    if (!ob)
        goto bad;
#if PY_VERSION_HEX >= 0x02070000
    ptr = PyCapsule_GetPointer(ob, 0);
#else
    ptr = PyCObject_AsVoidPtr(ob);
#endif
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* GetNameInClass */
  static PyObject *__Pyx_GetGlobalNameAfterAttributeLookup(PyObject *name) {
    PyObject *result;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    __Pyx_GetModuleGlobalNameUncached(result, name);
    return result;
}
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name) {
    PyObject *result;
    result = __Pyx_PyObject_GetAttrStr(nmspace, name);
    if (!result) {
        result = __Pyx_GetGlobalNameAfterAttributeLookup(name);
    }
    return result;
}

/* CLineInTraceback */
  #ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    if (unlikely(!__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
#if CYTHON_COMPILING_IN_CPYTHON
    cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, *cython_runtime_dict,
            __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
    } else
#endif
    {
      PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
  static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}

/* AddTraceback */
  #include "compile.h"
#include "frameobject.h"
#include "traceback.h"
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    #if PY_MAJOR_VERSION < 3
    py_srcfile = PyString_FromString(filename);
    #else
    py_srcfile = PyUnicode_FromString(filename);
    #endif
    if (!py_srcfile) goto bad;
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        #else
        py_funcname = PyUnicode_FromString(funcname);
        #endif
    }
    if (!py_funcname) goto bad;
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    Py_DECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

#if PY_MAJOR_VERSION < 3
static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) {
    if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags);
        if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags);
    PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name);
    return -1;
}
static void __Pyx_ReleaseBuffer(Py_buffer *view) {
    PyObject *obj = view->obj;
    if (!obj) return;
    if (PyObject_CheckBuffer(obj)) {
        PyBuffer_Release(view);
        return;
    }
    if ((0)) {}
        else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view);
    view->obj = NULL;
    Py_DECREF(obj);
}
#endif


  /* CIntFromPyVerify */
  #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* None */
  static CYTHON_INLINE long __Pyx_pow_long(long b, long e) {
    long t = b;
    switch (e) {
        case 3:
            t *= b;
        CYTHON_FALLTHROUGH;
        case 2:
            t *= b;
        CYTHON_FALLTHROUGH;
        case 1:
            return t;
        case 0:
            return 1;
    }
    #if 1
    if (unlikely(e<0)) return 0;
    #endif
    t = 1;
    while (likely(e)) {
        t *= (b * (e&1)) | ((~e)&1);
        b *= b;
        e >>= 1;
    }
    return t;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
    const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
    const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value) {
    const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) ((enum IClpSimplex::Status) 0 - (enum IClpSimplex::Status) 1), const_zero = (enum IClpSimplex::Status) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum IClpSimplex::Status) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum IClpSimplex::Status) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum IClpSimplex::Status) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum IClpSimplex::Status),
                                     little, !is_unsigned);
    }
}

/* Declarations */
  #if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
      return ::std::complex< float >(x, y);
    }
  #else
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
      return x + y*(__pyx_t_float_complex)_Complex_I;
    }
  #endif
#else
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
      __pyx_t_float_complex z;
      z.real = x;
      z.imag = y;
      return z;
    }
#endif

/* Arithmetic */
  #if CYTHON_CCOMPLEX
#else
    static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
       return (a.real == b.real) && (a.imag == b.imag);
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        __pyx_t_float_complex z;
        z.real = a.real + b.real;
        z.imag = a.imag + b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        __pyx_t_float_complex z;
        z.real = a.real - b.real;
        z.imag = a.imag - b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        __pyx_t_float_complex z;
        z.real = a.real * b.real - a.imag * b.imag;
        z.imag = a.real * b.imag + a.imag * b.real;
        return z;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        if (b.imag == 0) {
            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabsf(b.real) >= fabsf(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                float r = b.imag / b.real;
                float s = (float)(1.0) / (b.real + b.imag * r);
                return __pyx_t_float_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            float r = b.real / b.imag;
            float s = (float)(1.0) / (b.imag + b.real * r);
            return __pyx_t_float_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        if (b.imag == 0) {
            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            float denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_float_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
        __pyx_t_float_complex z;
        z.real = -a.real;
        z.imag = -a.imag;
        return z;
    }
    static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
        __pyx_t_float_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
            return sqrtf(z.real*z.real + z.imag*z.imag);
          #else
            return hypotf(z.real, z.imag);
          #endif
        }
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
            __pyx_t_float_complex z;
            float r, lnr, theta, z_r, z_theta;
            if (b.imag == 0 && b.real == (int)b.real) {
                if (b.real < 0) {
                    float denom = a.real * a.real + a.imag * a.imag;
                    a.real = a.real / denom;
                    a.imag = -a.imag / denom;
                    b.real = -b.real;
                }
                switch ((int)b.real) {
                    case 0:
                        z.real = 1;
                        z.imag = 0;
                        return z;
                    case 1:
                        return a;
                    case 2:
                        return __Pyx_c_prod_float(a, a);
                    case 3:
                        z = __Pyx_c_prod_float(a, a);
                        return __Pyx_c_prod_float(z, a);
                    case 4:
                        z = __Pyx_c_prod_float(a, a);
                        return __Pyx_c_prod_float(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if (b.imag == 0) {
                    z.real = powf(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2f(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_float(a);
                theta = atan2f(a.imag, a.real);
            }
            lnr = logf(r);
            z_r = expf(lnr * b.real - theta * b.imag);
            z_theta = theta * b.real + lnr * b.imag;
            z.real = z_r * cosf(z_theta);
            z.imag = z_r * sinf(z_theta);
            return z;
        }
    #endif
#endif

/* Declarations */
  #if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
      return ::std::complex< double >(x, y);
    }
  #else
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
      return x + y*(__pyx_t_double_complex)_Complex_I;
    }
  #endif
#else
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
      __pyx_t_double_complex z;
      z.real = x;
      z.imag = y;
      return z;
    }
#endif

/* Arithmetic */
  #if CYTHON_CCOMPLEX
#else
    static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
       return (a.real == b.real) && (a.imag == b.imag);
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        __pyx_t_double_complex z;
        z.real = a.real + b.real;
        z.imag = a.imag + b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        __pyx_t_double_complex z;
        z.real = a.real - b.real;
        z.imag = a.imag - b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        __pyx_t_double_complex z;
        z.real = a.real * b.real - a.imag * b.imag;
        z.imag = a.real * b.imag + a.imag * b.real;
        return z;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabs(b.real) >= fabs(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                double r = b.imag / b.real;
                double s = (double)(1.0) / (b.real + b.imag * r);
                return __pyx_t_double_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            double r = b.real / b.imag;
            double s = (double)(1.0) / (b.imag + b.real * r);
            return __pyx_t_double_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            double denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_double_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
        __pyx_t_double_complex z;
        z.real = -a.real;
        z.imag = -a.imag;
        return z;
    }
    static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
        __pyx_t_double_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
            return sqrt(z.real*z.real + z.imag*z.imag);
          #else
            return hypot(z.real, z.imag);
          #endif
        }
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
            __pyx_t_double_complex z;
            double r, lnr, theta, z_r, z_theta;
            if (b.imag == 0 && b.real == (int)b.real) {
                if (b.real < 0) {
                    double denom = a.real * a.real + a.imag * a.imag;
                    a.real = a.real / denom;
                    a.imag = -a.imag / denom;
                    b.real = -b.real;
                }
                switch ((int)b.real) {
                    case 0:
                        z.real = 1;
                        z.imag = 0;
                        return z;
                    case 1:
                        return a;
                    case 2:
                        return __Pyx_c_prod_double(a, a);
                    case 3:
                        z = __Pyx_c_prod_double(a, a);
                        return __Pyx_c_prod_double(z, a);
                    case 4:
                        z = __Pyx_c_prod_double(a, a);
                        return __Pyx_c_prod_double(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if (b.imag == 0) {
                    z.real = pow(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_double(a);
                theta = atan2(a.imag, a.real);
            }
            lnr = log(r);
            z_r = exp(lnr * b.real - theta * b.imag);
            z_theta = theta * b.real + lnr * b.imag;
            z.real = z_r * cos(z_theta);
            z.imag = z_r * sin(z_theta);
            return z;
        }
    #endif
#endif

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) {
    const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum NPY_TYPES) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum NPY_TYPES) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
  static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
    const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int) -1;
        }
    } else {
        int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
    const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(long) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (long) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(long) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(long) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            long val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (long) -1;
        }
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
    const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(size_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (size_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (size_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) {
                            return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) {
                            return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) {
                            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]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (size_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(size_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (size_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(size_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                            return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                            return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
                            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])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
                            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])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(size_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            size_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (size_t) -1;
        }
    } else {
        size_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (size_t) -1;
        val = __Pyx_PyInt_As_size_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to size_t");
    return (size_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to size_t");
    return (size_t) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE enum IClpSimplex::Status __Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(PyObject *x) {
    const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) ((enum IClpSimplex::Status) 0 - (enum IClpSimplex::Status) 1), const_zero = (enum IClpSimplex::Status) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum IClpSimplex::Status) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum IClpSimplex::Status) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum IClpSimplex::Status) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum IClpSimplex::Status) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum IClpSimplex::Status) >= 2 * PyLong_SHIFT) {
                            return (enum IClpSimplex::Status) (((((enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum IClpSimplex::Status) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(enum IClpSimplex::Status) >= 3 * PyLong_SHIFT) {
                            return (enum IClpSimplex::Status) (((((((enum IClpSimplex::Status)digits[2]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum IClpSimplex::Status) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(enum IClpSimplex::Status) >= 4 * PyLong_SHIFT) {
                            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]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum IClpSimplex::Status) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum IClpSimplex::Status, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum IClpSimplex::Status, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum IClpSimplex::Status) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum IClpSimplex::Status) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 2 * PyLong_SHIFT) {
                            return (enum IClpSimplex::Status) (((enum IClpSimplex::Status)-1)*(((((enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum IClpSimplex::Status) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum IClpSimplex::Status, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 2 * PyLong_SHIFT) {
                            return (enum IClpSimplex::Status) ((((((enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum IClpSimplex::Status) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 3 * PyLong_SHIFT) {
                            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])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum IClpSimplex::Status) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 3 * PyLong_SHIFT) {
                            return (enum IClpSimplex::Status) ((((((((enum IClpSimplex::Status)digits[2]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[1]) << PyLong_SHIFT) | (enum IClpSimplex::Status)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum IClpSimplex::Status) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 4 * PyLong_SHIFT) {
                            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])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum IClpSimplex::Status) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(enum IClpSimplex::Status) - 1 > 4 * PyLong_SHIFT) {
                            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])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum IClpSimplex::Status) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum IClpSimplex::Status, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum IClpSimplex::Status) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum IClpSimplex::Status, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum IClpSimplex::Status val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum IClpSimplex::Status) -1;
        }
    } else {
        enum IClpSimplex::Status val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum IClpSimplex::Status) -1;
        val = __Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum IClpSimplex::Status");
    return (enum IClpSimplex::Status) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum IClpSimplex::Status");
    return (enum IClpSimplex::Status) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE Py_intptr_t __Pyx_PyInt_As_Py_intptr_t(PyObject *x) {
    const Py_intptr_t neg_one = (Py_intptr_t) ((Py_intptr_t) 0 - (Py_intptr_t) 1), const_zero = (Py_intptr_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(Py_intptr_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(Py_intptr_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (Py_intptr_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (Py_intptr_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(Py_intptr_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(Py_intptr_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(Py_intptr_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(Py_intptr_t) >= 2 * PyLong_SHIFT) {
                            return (Py_intptr_t) (((((Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(Py_intptr_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(Py_intptr_t) >= 3 * PyLong_SHIFT) {
                            return (Py_intptr_t) (((((((Py_intptr_t)digits[2]) << PyLong_SHIFT) | (Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(Py_intptr_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(Py_intptr_t) >= 4 * PyLong_SHIFT) {
                            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]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (Py_intptr_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(Py_intptr_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(Py_intptr_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(Py_intptr_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(Py_intptr_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (Py_intptr_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(Py_intptr_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(Py_intptr_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(Py_intptr_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(Py_intptr_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(Py_intptr_t) - 1 > 2 * PyLong_SHIFT) {
                            return (Py_intptr_t) (((Py_intptr_t)-1)*(((((Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(Py_intptr_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(Py_intptr_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(Py_intptr_t) - 1 > 2 * PyLong_SHIFT) {
                            return (Py_intptr_t) ((((((Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(Py_intptr_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(Py_intptr_t) - 1 > 3 * PyLong_SHIFT) {
                            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])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(Py_intptr_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(Py_intptr_t) - 1 > 3 * PyLong_SHIFT) {
                            return (Py_intptr_t) ((((((((Py_intptr_t)digits[2]) << PyLong_SHIFT) | (Py_intptr_t)digits[1]) << PyLong_SHIFT) | (Py_intptr_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(Py_intptr_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(Py_intptr_t) - 1 > 4 * PyLong_SHIFT) {
                            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])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(Py_intptr_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __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])))
                        } else if (8 * sizeof(Py_intptr_t) - 1 > 4 * PyLong_SHIFT) {
                            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])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(Py_intptr_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(Py_intptr_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(Py_intptr_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(Py_intptr_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            Py_intptr_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (Py_intptr_t) -1;
        }
    } else {
        Py_intptr_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (Py_intptr_t) -1;
        val = __Pyx_PyInt_As_Py_intptr_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to Py_intptr_t");
    return (Py_intptr_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to Py_intptr_t");
    return (Py_intptr_t) -1;
}

/* FastTypeChecks */
  #if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = a->tp_base;
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
#if PY_MAJOR_VERSION == 2
static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
    PyObject *exception, *value, *tb;
    int res;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&exception, &value, &tb);
    res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
    if (unlikely(res == -1)) {
        PyErr_WriteUnraisable(err);
        res = 0;
    }
    if (!res) {
        res = PyObject_IsSubclass(err, exc_type2);
        if (unlikely(res == -1)) {
            PyErr_WriteUnraisable(err);
            res = 0;
        }
    }
    __Pyx_ErrRestore(exception, value, tb);
    return res;
}
#else
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
    if (!res) {
        res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
    return res;
}
#endif
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        #if PY_MAJOR_VERSION < 3
        if (likely(exc_type == t)) return 1;
        #endif
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* CheckBinaryVersion */
  static int __Pyx_check_binary_version(void) {
    char ctversion[4], rtversion[4];
    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compiletime version %s of module '%.100s' "
                      "does not match runtime version %s",
                      ctversion, __Pyx_MODULE_NAME, rtversion);
        return PyErr_WarnEx(NULL, message, 1);
    }
    return 0;
}

/* FunctionExport */
  static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__");
    if (!d) {
        PyErr_Clear();
        d = PyDict_New();
        if (!d)
            goto bad;
        Py_INCREF(d);
        if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0)
            goto bad;
    }
    tmp.fp = f;
#if PY_VERSION_HEX >= 0x02070000
    cobj = PyCapsule_New(tmp.p, sig, 0);
#else
    cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0);
#endif
    if (!cobj)
        goto bad;
    if (PyDict_SetItemString(d, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(cobj);
    Py_XDECREF(d);
    return -1;
}

/* InitStrings */
  static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        #else
        if (t->is_unicode | t->is_str) {
            if (t->intern) {
                *t->p = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
            } else {
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        if (PyObject_Hash(*t->p) == -1)
            return -1;
        ++t;
    }
    return 0;
}

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#if !CYTHON_PEP393_ENABLED
static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    char* defenc_c;
    PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
    if (!defenc) return NULL;
    defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    {
        char* end = defenc_c + PyBytes_GET_SIZE(defenc);
        char* c;
        for (c = defenc_c; c < end; c++) {
            if ((unsigned char) (*c) >= 128) {
                PyUnicode_AsASCIIString(o);
                return NULL;
            }
        }
    }
#endif
    *length = PyBytes_GET_SIZE(defenc);
    return defenc_c;
}
#else
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
}
#endif
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
#if PY_MAJOR_VERSION >= 3
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type %.200s).  "
                "The ability to return an instance of a strict subclass of int "
                "is deprecated, and may be removed in a future version of Python.",
                Py_TYPE(result)->tp_name)) {
            Py_DECREF(result);
            return NULL;
        }
        return result;
    }
#endif
    PyErr_Format(PyExc_TypeError,
                 "__%.4s__ returned non-%.4s (type %.200s)",
                 type_name, type_name, Py_TYPE(result)->tp_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_Check(x) || PyLong_Check(x)))
#else
  if (likely(PyLong_Check(x)))
#endif
    return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  #if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = m->nb_int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = m->nb_long(x);
  }
  #else
  if (likely(m && m->nb_int)) {
    name = "int";
    res = m->nb_int(x);
  }
  #endif
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
    res = PyNumber_Int(x);
  }
#endif
  if (likely(res)) {
#if PY_MAJOR_VERSION < 3
    if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
#else
    if (unlikely(!PyLong_CheckExact(res))) {
#endif
        return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b))) {
    if (sizeof(Py_ssize_t) >= sizeof(long))
        return PyInt_AS_LONG(b);
    else
        return PyInt_AsSsize_t(b);
  }
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    const digit* digits = ((PyLongObject*)b)->ob_digit;
    const Py_ssize_t size = Py_SIZE(b);
    if (likely(__Pyx_sst_abs(size) <= 1)) {
        ival = likely(size) ? digits[0] : 0;
        if (size == -1) ival = -ival;
        return ival;
    } else {
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             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]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             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]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


#endif /* Py_PYTHON_H */
